<?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>44920</bug_id>
          
          <creation_ts>2010-08-30 18:33:31 -0700</creation_ts>
          <short_desc>Add layout tests for FileSystem API</short_desc>
          <delta_ts>2010-10-07 14:10:28 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42903</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dumi</cc>
    
    <cc>ericu</cc>
    
    <cc>fishd</cc>
    
    <cc>levin</cc>
    
    <cc>michaeln</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>271844</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-30 18:33:31 -0700</bug_when>
    <thetext>FileSystem API needs layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280470</commentid>
    <comment_count>1</comment_count>
      <attachid>67866</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-16 17:22:35 -0700</bug_when>
    <thetext>Created attachment 67866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280545</commentid>
    <comment_count>2</comment_count>
      <attachid>67866</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-09-16 22:56:30 -0700</bug_when>
    <thetext>Comment on attachment 67866
Patch

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

&gt; LayoutTests/fast/filesystem/op-copy.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

don&apos;t think we need this line. most layout tests i&apos;ve seen don&apos;t have it.

&gt; LayoutTests/fast/filesystem/op-copy.html:11
&gt; +&lt;script type=&quot;application/file-system-test-shell&quot; id=&quot;file-system-test-script&quot;&gt;

i&apos;m not familiar with this type/format. can you please point me to some relevant docs/classes/descriptions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280564</commentid>
    <comment_count>3</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-17 00:36:06 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 67866 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67866&amp;action=prettypatch
&gt; 
&gt; &gt; LayoutTests/fast/filesystem/op-copy.html:1
&gt; &gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt; 
&gt; don&apos;t think we need this line. most layout tests i&apos;ve seen don&apos;t have it.

Will remove.

&gt; &gt; LayoutTests/fast/filesystem/op-copy.html:11
&gt; &gt; +&lt;script type=&quot;application/file-system-test-shell&quot; id=&quot;file-system-test-script&quot;&gt;
&gt; 
&gt; i&apos;m not familiar with this type/format. can you please point me to some relevant docs/classes/descriptions?

(Ah I forgot to prefix it with &quot;x-&quot;...)  It&apos;s just one of &quot;application/x-our-own-format&quot; types.
The intention was: to have the test script (fs-test-shell.js) read the content of a given element and executes line by line for testing.  (I can replace &lt;script&gt; tag with &lt;pre&gt; or something looking more innocent if it could be better.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281048</commentid>
    <comment_count>4</comment_count>
      <attachid>67986</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-17 18:17:24 -0700</bug_when>
    <thetext>Created attachment 67986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281050</commentid>
    <comment_count>5</comment_count>
      <attachid>67987</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-17 18:20:35 -0700</bug_when>
    <thetext>Created attachment 67987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281053</commentid>
    <comment_count>6</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-17 18:26:00 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 67866 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67866&amp;action=prettypatch
&gt; 
&gt; &gt; LayoutTests/fast/filesystem/op-copy.html:1
&gt; &gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt; 
&gt; don&apos;t think we need this line. most layout tests i&apos;ve seen don&apos;t have it.

Deleted.

&gt; &gt; LayoutTests/fast/filesystem/op-copy.html:11
&gt; &gt; +&lt;script type=&quot;application/file-system-test-shell&quot; id=&quot;file-system-test-script&quot;&gt;
&gt; 
&gt; i&apos;m not familiar with this type/format. can you please point me to some relevant docs/classes/descriptions?

As in my previous comment it&apos;s a custom type just for testing.
Changed the type to &quot;application/x-file-system-test-shell&quot; hoping it makes less confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282579</commentid>
    <comment_count>7</comment_count>
      <attachid>67987</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-09-21 15:06:03 -0700</bug_when>
    <thetext>Comment on attachment 67987
Patch

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

All the results generally look like &quot;8&quot; is &quot;8&quot;... can these have a little more context in them. right now they&apos;re impossible for a human to parse

tests should be as such

shouldBe(&quot;controller.operation.result&quot;, &quot;true&quot;);

so the results are understandable when something breaks

&gt; LayoutTests/fast/filesystem/script-tests/simple-persistent.js:13
&gt; +    shouldBeTrue(&quot;true&quot;);

this looks meaningless

&gt; LayoutTests/fast/filesystem/simple-temporary-expected.txt:7
&gt; +WARN: shouldBe() expects string arguments

this looks wrong</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287098</commentid>
    <comment_count>8</comment_count>
      <attachid>69245</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-29 13:42:41 -0700</bug_when>
    <thetext>Created attachment 69245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287101</commentid>
    <comment_count>9</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-29 13:46:12 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 67987 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67987&amp;action=review
&gt; 
&gt; All the results generally look like &quot;8&quot; is &quot;8&quot;... can these have a little more context in them. right now they&apos;re impossible for a human to parse
&gt; tests should be as such
&gt; shouldBe(&quot;controller.operation.result&quot;, &quot;true&quot;);
&gt; so the results are understandable when something breaks

Updated the tests and expectations to make them contain more informative messages.

&gt; &gt; LayoutTests/fast/filesystem/script-tests/simple-persistent.js:13
&gt; &gt; +    shouldBeTrue(&quot;true&quot;);
&gt; this looks meaningless

Fixed.

&gt; &gt; LayoutTests/fast/filesystem/simple-temporary-expected.txt:7
&gt; &gt; +WARN: shouldBe() expects string arguments
&gt; this looks wrong

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287348</commentid>
    <comment_count>10</comment_count>
      <attachid>69304</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-29 20:15:50 -0700</bug_when>
    <thetext>Created attachment 69304
Patch

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287354</commentid>
    <comment_count>11</comment_count>
      <attachid>69306</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-09-29 20:21:59 -0700</bug_when>
    <thetext>Created attachment 69306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288444</commentid>
    <comment_count>12</comment_count>
      <attachid>69306</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-01 13:27:06 -0700</bug_when>
    <thetext>Comment on attachment 69306
Patch

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

&gt; LayoutTests/fast/filesystem/resources/fs-test-shell.js:1
&gt; +/*

You&apos;re defining a whole new scripting language here in order to write filesystem tests.
1) Is this absolutely necessary?  The language looks very much like JavaScript...could it go more in that direction?  Can it be a JS library instead of an interpreter, as with e.g. http://jsmock.sourceforge.net/examples/, http://pivotal.github.com/jasmine/?  Even if it&apos;s just a set of JavaScript functions that do the same thing as your script functions, at least other folks editing the tests don&apos;t have to learn a new syntax, and can mix in new JS code without having to extend your interpreter.
2) Can we just use an existing library?
3) If we decide to go with a new domain-specific language, it should really be of general utility, and not buried down under the filesystem tests.  Lots of tests could make use of it.
4) There&apos;s enough code here in your interpreter that it really needs its own unit tests.

&gt; LayoutTests/fast/filesystem/resources/fs-test-shell.js:19
&gt; +    entry3 = ROOT.getFile(&apos;foo/nonexistent&apos;) raises 8

Is it raise or raises?

&gt; LayoutTests/fast/filesystem/resources/fs-test-shell.js:220
&gt; +        this.log(&apos;Reseting the filesystem...&apos;);

typo: Resetting [affects expectations].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288508</commentid>
    <comment_count>13</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-01 15:08:54 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 69306 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69306&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/filesystem/resources/fs-test-shell.js:1
&gt; &gt; +/*
&gt; 
&gt; You&apos;re defining a whole new scripting language here in order to write filesystem tests.
&gt; 1) Is this absolutely necessary?  The language looks very much like JavaScript...could it go more in that direction?  Can it be a JS library instead of an interpreter, as with e.g. http://jsmock.sourceforge.net/examples/, http://pivotal.github.com/jasmine/?  Even if it&apos;s just a set of JavaScript functions that do the same thing as your script functions, at least other folks editing the tests don&apos;t have to learn a new syntax, and can mix in new JS code without having to extend your interpreter.

Thanks very much for your comments.
Let me think about it, but to me this was the most straightforward way to write and debug so many test cases in short time.  And I wanted have something that can be easily extended for Sync cases.

(Of course we can do the same set of tests in pure JS code.  I wrote some tests in that way.)

&gt; 2) Can we just use an existing library?
&gt; 3) If we decide to go with a new domain-specific language, it should really be of general utility, and not buried down under the filesystem tests.  Lots of tests could make use of it.
&gt; 4) There&apos;s enough code here in your interpreter that it really needs its own unit tests.

I don&apos;t think we want to do 2) or 3) because of the reason 4).  (And it&apos;s DSL because it&apos;s specific to FileSystem.)  Btw the interpreter part is basically just regexp&apos;s and it&apos;s less than 100 lines.

&gt; &gt; LayoutTests/fast/filesystem/resources/fs-test-shell.js:19
&gt; &gt; +    entry3 = ROOT.getFile(&apos;foo/nonexistent&apos;) raises 8
&gt; 
&gt; Is it raise or raises?

Both work...

&gt; &gt; LayoutTests/fast/filesystem/resources/fs-test-shell.js:220
&gt; &gt; +        this.log(&apos;Reseting the filesystem...&apos;);
&gt; 
&gt; typo: Resetting [affects expectations].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288567</commentid>
    <comment_count>14</comment_count>
      <attachid>69306</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-01 16:27:01 -0700</bug_when>
    <thetext>Comment on attachment 69306
Patch

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

&gt; LayoutTests/fast/filesystem/op-get-entry.html:37
&gt; +    ASSERT_EQ(&apos;/a/c&apos;, dir1_file3.fullPath)

Why hard-code the strings here, when you&apos;re using variables for the names?
My reflex would be to construct the result strings via concatenation of the names, but you could also just pass the raw strings into getDirectory and getFile instead, so you could see at a glance that the inputs + outputs match.

&gt; LayoutTests/fast/filesystem/op-get-entry.html:69
&gt; +    dir = ROOT.getDirectory(&apos;/parent/a/a&apos;, create_flag)

By this point in the code I&apos;ve forgotten that &quot;name1&quot; means &quot;a&quot; ;&apos;&gt;.

&gt; LayoutTests/fast/filesystem/op-get-entry.html:74
&gt; +    # The entry&apos;s path must not be used if the given path is a full path.

I&apos;m not sure what this comment means.

&gt; LayoutTests/fast/filesystem/op-get-entry.html:80
&gt; +    print(&apos;* Getting files/directories with relative paths.&apos;)

Add some relative path tests with &quot;.&quot; and &quot;..&quot;, e.g. &quot;/parent/a/a/../../a/d&quot;, &quot;/parent/a/./././../././a/d&quot;.
Also make sure that we can&apos;t reach out of the sandbox by verifying that e.g. &quot;/../../../../../../../a&quot; == &quot;/a&quot;.

&gt; LayoutTests/fast/filesystem/op-move.html:35
&gt; +    parent.getDirectory(name3)

What&apos;s this last getDirectory(name3) for?  Should that be getFile(name4)?

&gt; LayoutTests/fast/filesystem/resources/fs-test-shell-temporary.js:1
&gt; +function endTest() {

Is this wrapper function needed?

&gt; LayoutTests/fast/filesystem/restricted-chars.html:13
&gt; +

You need to pass in the create flag for all of these.  Also, it would be nice to add one creating &apos;ab&apos; that succeeds.

&gt; LayoutTests/fast/filesystem/restricted-chars.html:14
&gt; +    ROOT.getFile(&apos;a\\b&apos;) raises 13

Also try getFile(&apos;a/b&apos;), since there&apos;s no directory &apos;a&apos;.

&gt; LayoutTests/fast/filesystem/restricted-names.html:58
&gt; +    file.copyTo(dir, &apos;foo.&apos;) raises 13

Test moveTo as well.

&gt; LayoutTests/fast/filesystem/script-tests/parallel-operations.js:53
&gt; +    helper.run(function() { b.moveTo(fileSystem.root, &apos;b2&apos;, done, errorCallback); });

You&apos;re copying a to b, but you&apos;re also moving b.  Is that a race condition?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288581</commentid>
    <comment_count>15</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-01 16:46:58 -0700</bug_when>
    <thetext>Great thanks.

(In reply to comment #14)
&gt; (From update of attachment 69306 [details])
&gt; &gt; LayoutTests/fast/filesystem/op-get-entry.html:74
&gt; &gt; +    # The entry&apos;s path must not be used if the given path is a full path.
&gt; 
&gt; I&apos;m not sure what this comment means.

If the given path is a relative path we construct a new path by concatenating entry.fullPath, the given path and the new name.  Otherwise (== the given path is an absolute path) we&apos;ll just use the given path.

... is what it&apos;s trying to say.

&gt; &gt; LayoutTests/fast/filesystem/restricted-chars.html:14
&gt; &gt; +    ROOT.getFile(&apos;a\\b&apos;) raises 13
&gt; 
&gt; Also try getFile(&apos;a/b&apos;), since there&apos;s no directory &apos;a&apos;.

I think that&apos;s the test for getFile but not for restricted chars/names.

&gt; &gt; LayoutTests/fast/filesystem/restricted-names.html:58
&gt; &gt; +    file.copyTo(dir, &apos;foo.&apos;) raises 13
&gt; 
&gt; Test moveTo as well.
&gt; 
&gt; &gt; LayoutTests/fast/filesystem/script-tests/parallel-operations.js:53
&gt; &gt; +    helper.run(function() { b.moveTo(fileSystem.root, &apos;b2&apos;, done, errorCallback); });
&gt; 
&gt; You&apos;re copying a to b, but you&apos;re also moving b.  Is that a race condition?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288582</commentid>
    <comment_count>16</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-01 16:50:11 -0700</bug_when>
    <thetext>Oops wrongly hit &apos;commit&apos; while writing the response... anyway.  (I wanted to send it out when I update the patch)

&gt; You&apos;re copying a to b, but you&apos;re also moving b.  Is that a race condition?

This should be ok in our implementation (as they&apos;re executed in a serialized way), but could be problematic in other ports... well I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288584</commentid>
    <comment_count>17</comment_count>
      <attachid>69306</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-01 16:58:22 -0700</bug_when>
    <thetext>Comment on attachment 69306
Patch

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

&gt;&gt;&gt; LayoutTests/fast/filesystem/op-get-entry.html:74
&gt;&gt;&gt; +    # The entry&apos;s path must not be used if the given path is a full path.
&gt;&gt; 
&gt;&gt; I&apos;m not sure what this comment means.
&gt; 
&gt; If the given path is a relative path we construct a new path by concatenating entry.fullPath, the given path and the new name.  Otherwise (== the given path is an absolute path) we&apos;ll just use the given path.
&gt; 
&gt; ... is what it&apos;s trying to say.

Ah, how about something like &quot;Test that relative paths are relative to the DirectoryEntry to which they&apos;re supplied.&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288837</commentid>
    <comment_count>18</comment_count>
      <attachid>69606</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-04 01:48:44 -0700</bug_when>
    <thetext>Created attachment 69606
Patch

Rewrote the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288839</commentid>
    <comment_count>19</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-04 01:51:25 -0700</bug_when>
    <thetext>Have rewritten in pure JS.

(In reply to comment #14)
&gt; (From update of attachment 69306 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69306&amp;action=review
&gt; Add some relative path tests with &quot;.&quot; and &quot;..&quot;, e.g. &quot;/parent/a/a/../../a/d&quot;, &quot;/parent/a/./././../././a/d&quot;.
&gt; Also make sure that we can&apos;t reach out of the sandbox by verifying that e.g. &quot;/../../../../../../../a&quot; == &quot;/a&quot;.

Currently all of them throw INVALID_MODIFICATION_ERR since the implementation performs path/validity check before cleaning up those relative components.  I put FIXME comment in the test for now.

&gt; &gt; LayoutTests/fast/filesystem/script-tests/parallel-operations.js:53
&gt; &gt; +    helper.run(function() { b.moveTo(fileSystem.root, &apos;b2&apos;, done, errorCallback); });
&gt; 
&gt; You&apos;re copying a to b, but you&apos;re also moving b.  Is that a race condition?

Fixed... and this test is moved to another patch (with a different name: async-operations.js):
https://bugs.webkit.org/show_bug.cgi?id=47044</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290484</commentid>
    <comment_count>20</comment_count>
      <attachid>69606</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-06 11:37:15 -0700</bug_when>
    <thetext>Comment on attachment 69606
Patch

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

&gt; LayoutTests/fast/filesystem/resources/op-get-entry.js:51
&gt; +            // FIXME: For now they throw an error because they fail the check for restricted-names: &apos;a path component should not end with period&apos;.

Is there a bug logged for that?

&gt; LayoutTests/fast/filesystem/resources/op-get-parent.js:10
&gt; +            function(helper) { helper.getParent(&apos;/&apos;); },

How do we verify the results of the getParent?

&gt; LayoutTests/fast/filesystem/resources/op-read-directory.js:20
&gt; +            function(helper) { helper.readDirectory(&apos;/&apos;); }

How are the results of the readDirectory call specified and verified?  Is it just by comparison against the golden results, or is there some way to self-check?

&gt; LayoutTests/fast/filesystem/resources/op-tests-helper.js:15
&gt; +            return obj;

Perhaps obj + &quot;&quot; here and below?  Otherwise you haven&apos;t done the string conversion.

&gt; LayoutTests/fast/filesystem/resources/op-tests-helper.js:161
&gt; +                shouldBe.apply(this, [&apos;this.environment[this.entry.fullPath].fullPath&apos;, &apos;&quot;&apos; + entry.fullPath + &apos;&quot;&apos;]);

Could you point me to where this.entry gets set?

&gt; LayoutTests/fast/filesystem/resources/op-tests-helper.js:252
&gt; +        this.getMetadata = function(entry, expectedErrorCode)

I don&apos;t see a test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290630</commentid>
    <comment_count>21</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-06 15:49:53 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 69606 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69606&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/filesystem/resources/op-get-entry.js:51
&gt; &gt; +            // FIXME: For now they throw an error because they fail the check for restricted-names: &apos;a path component should not end with period&apos;.
&gt; 
&gt; Is there a bug logged for that?

Just filed - bug 47309.

&gt; &gt; LayoutTests/fast/filesystem/resources/op-get-parent.js:10
&gt; &gt; +            function(helper) { helper.getParent(&apos;/&apos;); },
&gt; 
&gt; How do we verify the results of the getParent?

Currently they don&apos;t have explicit assertions.  At least the helper explicitly prints out the parent path so that we can match the actual results with expections (and it&apos;s not throwing an error).

&gt; &gt; LayoutTests/fast/filesystem/resources/op-read-directory.js:20
&gt; &gt; +            function(helper) { helper.readDirectory(&apos;/&apos;); }
&gt; 
&gt; How are the results of the readDirectory call specified and verified?  Is it just by comparison against the golden results, or is there some way to self-check?

Ditto.  No self-check for now.

&gt; &gt; LayoutTests/fast/filesystem/resources/op-tests-helper.js:15
&gt; &gt; +            return obj;
&gt; 
&gt; Perhaps obj + &quot;&quot; here and below?  Otherwise you haven&apos;t done the string conversion.

Will fix.

&gt; &gt; LayoutTests/fast/filesystem/resources/op-tests-helper.js:161
&gt; &gt; +                shouldBe.apply(this, [&apos;this.environment[this.entry.fullPath].fullPath&apos;, &apos;&quot;&apos; + entry.fullPath + &apos;&quot;&apos;]);
&gt; 
&gt; Could you point me to where this.entry gets set?

Right before the line.
LayoutTests/fast/filesystem/resources/op-tests-helper.js:161
+                 this.entry = entry;

&gt; &gt; LayoutTests/fast/filesystem/resources/op-tests-helper.js:252
&gt; &gt; +        this.getMetadata = function(entry, expectedErrorCode)
&gt; 
&gt; I don&apos;t see a test for this.

For getMetadata I wasn&apos;t able to make self-assertive one very quickly (and the patch was already big so I stopped adding it).  I&apos;ll separately make it.  Filed a new bug 47311.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290677</commentid>
    <comment_count>22</comment_count>
      <attachid>69606</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-10-06 16:50:13 -0700</bug_when>
    <thetext>Comment on attachment 69606
Patch

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

&gt;&gt;&gt; LayoutTests/fast/filesystem/resources/op-tests-helper.js:161
&gt;&gt;&gt; +                shouldBe.apply(this, [&apos;this.environment[this.entry.fullPath].fullPath&apos;, &apos;&quot;&apos; + entry.fullPath + &apos;&quot;&apos;]);
&gt;&gt; 
&gt;&gt; Could you point me to where this.entry gets set?
&gt; 
&gt; Right before the line.
&gt; LayoutTests/fast/filesystem/resources/op-tests-helper.js:161
&gt; +                 this.entry = entry;

Ha!  OK, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290825</commentid>
    <comment_count>23</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-10-06 23:24:38 -0700</bug_when>
    <thetext>r=me 

Please address Eric&apos;s concern on landing:
&gt; Perhaps obj + &quot;&quot; here and below?  Otherwise you haven&apos;t done the string conversion.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291246</commentid>
    <comment_count>24</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-10-07 14:10:28 -0700</bug_when>
    <thetext>Committed r69339: &lt;http://trac.webkit.org/changeset/69339&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67866</attachid>
            <date>2010-09-16 17:22:35 -0700</date>
            <delta_ts>2010-09-17 18:17:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44920-20100916172233.patch</filename>
            <type>text/plain</type>
            <size>71881</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NzE5MWNhMTIxMGMzNGZkZmEyZTQ0MzYyMjBiNTE5Mzc0NjE0NzQwLi4zODI0OTQx
YjZiYzQ4ZGQxNjc4MzI5OTcxZTRmMjdmNGU4NmY4ZmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAK
KzIwMTAtMDktMTYgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVz
dHMgZm9yIEZpbGVTeXN0ZW0gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDkyMAorCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWNvcHkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRh
ZGF0YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1nZXQt
cGFyZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLW1vdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGly
ZWN0b3J5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3Zl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRp
b25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3BhcmFs
bGVsLW9wZXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jl
cXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3RlbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMt
dHdpY2UtdGVtcG9yYXJ5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9y
ZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanM6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwuanM6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLWNoYXJzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtY2hhcnMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1uYW1lcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL1RFTVBM
QVRFLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMv
cGFyYWxsZWwtb3BlcmF0aW9ucy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVt
L3NjcmlwdC10ZXN0cy9zaW1wbGUtcGVyc2lzdGVudC5qczogQWRkZWQuCisgICAgICAgICogZmFz
dC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9zaW1wbGUtdGVtcG9yYXJ5LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3NpbXBsZS10ZW1wb3JhcnktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFy
eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogTm90IHN1cHBv
cnRlZCBvbiBndGsgeWV0LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBOb3Qgc3Vw
cG9ydGVkIG9uIG1hYyB5ZXQuCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDogTm90IHN1
cHBvcnRlZCBvbiBxdCB5ZXQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IE5vdCBz
dXBwb3J0ZWQgb24gd2luIHlldC4KKwogMjAxMC0wOS0xNiAgWmhlbnlhbyBNbyAgPHptb0Bnb29n
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtY29weS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vb3AtY29weS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmVjY2U3MGEyMmQzMzc1
Yjk2YWM4NDAzYTc1ZTM4MWJhZDNkZDAwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1jb3B5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMxIEBACitH
b3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisqIENvcHlpbmcgYW4gZW50cnkgdG8gdGhlIHNh
bWUgZGlyZWN0b3J5CisqIENvcHlpbmcgZW50cmllcyB0byBhIGRpZmZlcmVudCBkaXJlY3RvcnkK
KyogQ29weWluZyBlbnRyaWVzIHRvIHdpdGggZW1wdHkgbmFtZXMKKyogQ29weWluZyBlbnRyaWVz
IHRvIHRoZSBzYW1lIGRpcmVjdG9yeSB3aXRoIHRoZSBzYW1lIG5hbWUKK1BBU1MgIjEzIiBpcyAi
MTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAi
MTMiCisqIFRyeWluZyB0byBjb3B5IG5vbi1leGlzdGVudCBlbnRyaWVzCitQQVNTICI4IiBpcyAi
OCIKK1BBU1MgIjgiIGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKKyog
Q29weWluZyBlbnRyaWVzIHRvIGEgbm9uLWV4aXN0ZW50IGRpcmVjdG9yeQorUEFTUyAiOCIgaXMg
IjgiCitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorKiBDb3B5aW5nIGVudHJpZXMg
dG8gaXRzIGNoaWxkCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKKyogQ29w
eWluZyBhIGRpcmVjdG9yeSB3aXRoIGNoaWxkcmVuCitQQVNTICIyIiBpcyAiMiIKK1BBU1MgIjIi
IGlzICIyIgorUEFTUyAiMiIgaXMgIjIiCitQQVNTICIyIiBpcyAiMiIKK1NjcmlwdCBleGVjdXRp
b24gZmluaXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9v
cC1jb3B5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFjMDg4OGY2YTllOWVkN2RlZGFlYjJkYzMyMzdkODcyMWI5YjZmOWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5odG1sCkBA
IC0wLDAgKzEsMTQ1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Zz
LXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qt
c2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIg
aWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKyAgICByZXNldCgpCisKKyAgICBuYW1lMSA9
ICdhJworICAgIG5hbWUyID0gJ2InCisgICAgbmFtZTMgPSAnYycKKyAgICBuYW1lNCA9ICdkJwor
ICAgIGNyZWF0ZV9mbGFnID0ge2NyZWF0ZTp0cnVlfQorCisgICAgcHJpbnQoJyogQ29weWluZyBh
biBlbnRyeSB0byB0aGUgc2FtZSBkaXJlY3RvcnknKQorCisgICAgIyBSZXNldAorICAgIHJlc2V0
KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcp
CisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAg
IGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBEaXJl
Y3RvcnkKKyAgICBjb3BpZWQgPSBkaXIxLmNvcHlUbyhwYXJlbnQsIG5hbWUzKQorICAgIHBhcmVu
dC5nZXREaXJlY3RvcnkobmFtZTEpCisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMykKKwor
ICAgICMgRmlsZQorICAgIGNvcGllZCA9IGZpbGUyLmNvcHlUbyhwYXJlbnQsIG5hbWU0KQorICAg
IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpCisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1l
MykKKworICAgIHByaW50KCcqIENvcHlpbmcgZW50cmllcyB0byBhIGRpZmZlcmVudCBkaXJlY3Rv
cnknKQorCisgICAgIyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJl
Y3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIgPSBST09ULmdldERpcmVjdG9yeShu
YW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQzID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTMs
IGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2Zs
YWcpCisKKyAgICAjIERpcmVjdG9yeQorICAgIGNvcGllZCA9IGNoaWxkMy5jb3B5VG8oZGlyMiwg
bmFtZTEpCisgICAgZGlyMS5nZXREaXJlY3RvcnkobmFtZTMpCisgICAgZGlyMi5nZXREaXJlY3Rv
cnkobmFtZTEpCisKKyAgICAjIEZpbGUKKyAgICBjb3BpZWQgPSBjaGlsZDQuY29weVRvKGRpcjIs
IG5hbWUyKQorICAgIGRpcjEuZ2V0RmlsZShuYW1lNCkKKyAgICBkaXIyLmdldEZpbGUobmFtZTIp
CisKKyAgICBwcmludCgnKiBDb3B5aW5nIGVudHJpZXMgdG8gd2l0aCBlbXB0eSBuYW1lcycpCisK
KyAgICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAgIGRpcjEgPSBST09ULmdldERpcmVjdG9yeShu
YW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyMiA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUyLCBj
cmVhdGVfZmxhZykKKyAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRl
X2ZsYWcpCisgICAgY2hpbGQ0ID0gZGlyMS5nZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKKwor
ICAgICMgRGlyZWN0b3J5CisgICAgY29waWVkID0gY2hpbGQzLmNvcHlUbyhkaXIyLCBudWxsKQor
ICAgIGRpcjEuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorICAgIGRpcjIuZ2V0RGlyZWN0b3J5
KGNoaWxkMy5uYW1lKQorCisgICAgIyBGaWxlCisgICAgY29waWVkID0gY2hpbGQ0LmNvcHlUbyhk
aXIyLCBudWxsKQorICAgIGRpcjEuZ2V0RmlsZShjaGlsZDQubmFtZSkKKyAgICBkaXIyLmdldEZp
bGUoY2hpbGQ0Lm5hbWUpCisKKyAgICBwcmludCgnKiBDb3B5aW5nIGVudHJpZXMgdG8gdGhlIHNh
bWUgZGlyZWN0b3J5IHdpdGggdGhlIHNhbWUgbmFtZScpCisKKyAgICAjIFJlc2V0CisgICAgcmVz
ZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxh
ZykKKyAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisg
ICAgZmlsZTIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBkaXIx
LmNvcHlUbyhwYXJlbnQsIG51bGwpIHJhaXNlcyAxMworICAgIGRpcjEuY29weVRvKHBhcmVudCwg
bmFtZTEpIHJhaXNlcyAxMworICAgIGZpbGUyLmNvcHlUbyhwYXJlbnQsIG51bGwpIHJhaXNlcyAx
MworICAgIGZpbGUyLmNvcHlUbyhwYXJlbnQsIG5hbWUyKSByYWlzZXMgMTMKKworICAgIHByaW50
KCcqIFRyeWluZyB0byBjb3B5IG5vbi1leGlzdGVudCBlbnRyaWVzJykKKworICAgIG5vbmV4aXN0
X2RpciA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0ZV9mbGFnKQorICAgIG5vbmV4
aXN0X2ZpbGUgPSBwYXJlbnQuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcpCisgICAgbm9uZXhp
c3RfZGlyLnJlbW92ZSgpCisgICAgbm9uZXhpc3RfZmlsZS5yZW1vdmUoKQorCisgICAgUk9PVC5n
ZXREaXJlY3Rvcnkobm9uZXhpc3RfZGlyLmZ1bGxQYXRoKSByYWlzZXMgOAorICAgIFJPT1QuZ2V0
RmlsZShub25leGlzdF9maWxlLmZ1bGxQYXRoKSByYWlzZXMgOAorCisgICAgbm9uZXhpc3RfZGly
LmNvcHlUbyhkaXIxLCBuYW1lMikgcmFpc2VzIDgKKyAgICBub25leGlzdF9maWxlLmNvcHlUbyhk
aXIyLCBuYW1lMSkgcmFpc2VzIDgKKworICAgIHByaW50KCcqIENvcHlpbmcgZW50cmllcyB0byBh
IG5vbi1leGlzdGVudCBkaXJlY3RvcnknKQorCisgICAgUk9PVC5nZXREaXJlY3Rvcnkobm9uZXhp
c3RfZGlyLmZ1bGxQYXRoKSByYWlzZXMgOAorICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpcjEuZnVs
bFBhdGgpCisgICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRoKQorCisgICAgZGlyMS5jb3B5
VG8obm9uZXhpc3RfZGlyLCBuYW1lMSkgcmFpc2VzIDgKKyAgICBmaWxlMi5jb3B5VG8obm9uZXhp
c3RfZGlyLCBuYW1lMykgcmFpc2VzIDgKKworICAgIHByaW50KCcqIENvcHlpbmcgZW50cmllcyB0
byBpdHMgY2hpbGQnKQorCisgICAgUk9PVC5jb3B5VG8oZGlyMSkgcmFpc2VzIDEzCisgICAgcGFy
ZW50LmNvcHlUbyhkaXIxKSByYWlzZXMgMTMKKworICAgIHByaW50KCcqIENvcHlpbmcgYSBkaXJl
Y3Rvcnkgd2l0aCBjaGlsZHJlbicpCisKKyAgICBkaXI0ID0gcGFyZW50LmdldERpcmVjdG9yeShu
YW1lNCwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQxID0gZGlyNC5nZXRGaWxlKG5hbWUxLCBjcmVh
dGVfZmxhZykKKyAgICBjaGlsZDIgPSBkaXI0LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2Zs
YWcpCisgICAgY2hpbGQzID0gY2hpbGQyLmdldEZpbGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorICAg
IGNoaWxkNCA9IGNoaWxkMi5nZXREaXJlY3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAg
ZW50cmllczEgPSBkaXI0LnJlYWREaXJlY3RvcnkoKQorICAgIGVudHJpZXMyID0gY2hpbGQyLnJl
YWREaXJlY3RvcnkoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMS5sZW5ndGgpCisgICAgQVNT
RVJUX0VRKDIsIGVudHJpZXMyLmxlbmd0aCkKKworICAgIGRpcjRfY29weSA9IGRpcjQuY29weVRv
KFJPT1QsICdkaXI0X2NvcHknKQorICAgIGNoaWxkMl9jb3B5ID0gZGlyNF9jb3B5LmdldERpcmVj
dG9yeShuYW1lMikKKworICAgIGVudHJpZXMxX2NvcHkgPSBkaXI0X2NvcHkucmVhZERpcmVjdG9y
eSgpCisgICAgZW50cmllczJfY29weSA9IGNoaWxkMl9jb3B5LnJlYWREaXJlY3RvcnkoKQorICAg
IEFTU0VSVF9FUSgyLCBlbnRyaWVzMV9jb3B5Lmxlbmd0aCkKKyAgICBBU1NFUlRfRVEoMiwgZW50
cmllczJfY29weS5sZW5ndGgpCisKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KGRpcjQuZnVsbFBh
dGgpCisgICAgZGlyNC5nZXRGaWxlKG5hbWUxKQorICAgIGRpcjQuZ2V0RGlyZWN0b3J5KG5hbWUy
KQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1w
b3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xY2M0MmIxYTU4N2NkYmJlZGU3ZWRiMzkzOTVjNjAxMTBiZjhlYTRlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzOSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0K
KyogQ3JlYXRpbmcgdG9wLWxldmVsIGRpcmVjdG9yaWVzIGFuZCBmaWxlcworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTICJhIiBpcyAiYSIKK1BB
U1MgImIiIGlzICJiIgorUEFTUyAidHJ1ZSIgaXMgInRydWUiCitQQVNTICJmYWxzZSIgaXMgImZh
bHNlIgorUEFTUyAiZmFsc2UiIGlzICJmYWxzZSIKK1BBU1MgInRydWUiIGlzICJ0cnVlIgorKiBD
cmVhdGluZyBuZXN0ZWQgZGlyZWN0b3JpZXMgYW5kIGZpbGVzCitQQVNTICIvYS9iIiBpcyAiL2Ev
YiIKK1BBU1MgIi9hL2MiIGlzICIvYS9jIgorKiBDcmVhdGluZyBoZWF2aWx5IG5lc3RlZCBlbnRy
aWVzCitQQVNTICIvYS9iL2MvZC9hIiBpcyAiL2EvYi9jL2QvYSIKK1BBU1MgImEiIGlzICJhIgor
KiBHZXR0aW5nIGV4aXN0aW5nIGVudHJpZXMKK1BBU1MgIi9wYXJlbnQvYSIgaXMgIi9wYXJlbnQv
YSIKK1BBU1MgIi9wYXJlbnQvYiIgaXMgIi9wYXJlbnQvYiIKKyogR2V0dGluZyBmaWxlcy9kaXJl
Y3RvcmllcyB3aXRoIGZ1bGwgcGF0aHMuCisqIEdldHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0
aCByZWxhdGl2ZSBwYXRocy4KKyogVHJ5aW5nIHRvIGdldC9jcmVhdGUgZW50cmllcyBhdCBub24t
ZXhpc3RlbnQgcGF0aAorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgi
IGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCisqIENhbGxpbmcgZ2V0RmlsZSBmb3IgYSBkaXJlY3Rv
cnksIGdldERpcmVjdG9yeSBmb3IgYSBmaWxlCitQQVNTICIxMSIgaXMgIjExIgorUEFTUyAiMTEi
IGlzICIxMSIKK1BBU1MgIjExIiBpcyAiMTEiCitQQVNTICIxMSIgaXMgIjExIgorKiBUcnlpbmcg
dG8gY3JlYXRlIGVudHJpZXMgd2l0aCBleGNsdXNpdmUgZmxhZworUEFTUyAiMTMiIGlzICIxMyIK
K1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIK
K1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1nZXQtZW50cnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9vcC1nZXQtZW50cnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWM4NzA3NjViMDQzZWVhNTk4ZDMx
Y2IyMmMxMTg5MzRmN2FlNDI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL29wLWdldC1lbnRyeS5odG1sCkBAIC0wLDAgKzEsMTQ0IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGlj
YXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0
Ij4KKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAgICBuYW1lMyA9ICdjJwor
ICAgIG5hbWU0ID0gJ2QnCisKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKyAgICBl
eGNsdXNpdmVfZmxhZyA9IHtjcmVhdGU6dHJ1ZSwgZXhjbHVzaXZlOnRydWV9CisKKyAgICBwcmlu
dCgnKiBDcmVhdGluZyB0b3AtbGV2ZWwgZGlyZWN0b3JpZXMgYW5kIGZpbGVzJykKKworICAgIHJl
c2V0KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQor
ICAgIGZpbGUyID0gUk9PVC5nZXRGaWxlKG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBBU1NFUlRf
RVEobmFtZTEsIGRpcjEubmFtZSkKKyAgICBBU1NFUlRfRVEobmFtZTIsIGZpbGUyLm5hbWUpCisg
ICAgQVNTRVJUX0VRKHRydWUsIGRpcjEuaXNEaXJlY3RvcnkpCisgICAgQVNTRVJUX0VRKGZhbHNl
LCBkaXIxLmlzRmlsZSkKKyAgICBBU1NFUlRfRVEoZmFsc2UsIGZpbGUyLmlzRGlyZWN0b3J5KQor
ICAgIEFTU0VSVF9FUSh0cnVlLCBmaWxlMi5pc0ZpbGUpCisKKyAgICBwcmludCgnKiBDcmVhdGlu
ZyBuZXN0ZWQgZGlyZWN0b3JpZXMgYW5kIGZpbGVzJykKKworICAgIGRpcjFfZGlyMiA9IGRpcjEu
Z2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBkaXIxX2ZpbGUzID0gZGlyMS5n
ZXRGaWxlKG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBBU1NFUlRfRVEoJy9hL2InLCBkaXIxX2Rp
cjIuZnVsbFBhdGgpCisgICAgQVNTRVJUX0VRKCcvYS9jJywgZGlyMV9maWxlMy5mdWxsUGF0aCkK
KworICAgIHByaW50KCcqIENyZWF0aW5nIGhlYXZpbHkgbmVzdGVkIGVudHJpZXMnKQorCisgICAg
cmVzZXQoKQorICAgIG5lc3RlZDEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2Zs
YWcpCisgICAgbmVzdGVkMiA9IG5lc3RlZDEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxh
ZykKKyAgICBuZXN0ZWQzID0gbmVzdGVkMi5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0ZV9mbGFn
KQorICAgIG5lc3RlZDQgPSBuZXN0ZWQzLmdldERpcmVjdG9yeShuYW1lNCwgY3JlYXRlX2ZsYWcp
CisgICAgbmVzdGVkNSA9IG5lc3RlZDQuZ2V0RmlsZShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAg
QVNTRVJUX0VRKCcvYS9iL2MvZC9hJywgbmVzdGVkNS5mdWxsUGF0aCkKKyAgICBBU1NFUlRfRVEo
bmFtZTEsIG5lc3RlZDUubmFtZSkKKworICAgIHByaW50KCcqIEdldHRpbmcgZXhpc3RpbmcgZW50
cmllcycpCisKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3Bh
cmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUx
LCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUyLCBjcmVhdGVf
ZmxhZykKKworICAgIGRpcjFfMiA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpCisgICAgZmls
ZTJfMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUyKQorICAgIEFTU0VSVF9FUShkaXIxLmZ1bGxQYXRo
LCBkaXIxXzIuZnVsbFBhdGgpCisgICAgQVNTRVJUX0VRKGZpbGUyLmZ1bGxQYXRoLCBmaWxlMl8y
LmZ1bGxQYXRoKQorCisgICAgcHJpbnQoJyogR2V0dGluZyBmaWxlcy9kaXJlY3RvcmllcyB3aXRo
IGZ1bGwgcGF0aHMuJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVj
dG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3Rv
cnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5h
bWUyLCBjcmVhdGVfZmxhZykKKworICAgIGRpciA9IFJPT1QuZ2V0RGlyZWN0b3J5KCcvcGFyZW50
L2EvYScsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUgPSBST09ULmdldEZpbGUoJy9wYXJlbnQvYS9i
JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMS5nZXREaXJlY3RvcnkoJ2EnKQorICAgIGRpcjEuZ2V0
RmlsZSgnYicpCisKKyAgICAjIFRoZSBlbnRyeSdzIHBhdGggbXVzdCBub3QgYmUgdXNlZCBpZiB0
aGUgZ2l2ZW4gcGF0aCBpcyBhIGZ1bGwgcGF0aC4KKyAgICBkaXIgPSBkaXIyLmdldERpcmVjdG9y
eSgnL3BhcmVudC9hL2MnLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlID0gZGlyMi5nZXRGaWxlKCcv
cGFyZW50L2EvZCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEuZ2V0RGlyZWN0b3J5KCdjJykKKyAg
ICBkaXIxLmdldEZpbGUoJ2QnKQorCisgICAgcHJpbnQoJyogR2V0dGluZyBmaWxlcy9kaXJlY3Rv
cmllcyB3aXRoIHJlbGF0aXZlIHBhdGhzLicpCisKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0g
Uk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJl
bnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBkaXIyID0gZGlyMS5nZXRE
aXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAgZGlyID0gZGlyMS5nZXREaXJlY3Rv
cnkoJ2IvYScsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUgPSBkaXIxLmdldEZpbGUoJ2IvYicsIGNy
ZWF0ZV9mbGFnKQorICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCcvcGFyZW50L2EvYi9hJykKKyAgICBS
T09ULmdldEZpbGUoJy9wYXJlbnQvYS9iL2InKQorICAgIHBhcmVudC5nZXREaXJlY3RvcnkoJ2Ev
Yi9hJykKKyAgICBwYXJlbnQuZ2V0RmlsZSgnYS9iL2InKQorCisgICAgcHJpbnQoJyogVHJ5aW5n
IHRvIGdldC9jcmVhdGUgZW50cmllcyBhdCBub24tZXhpc3RlbnQgcGF0aCcpCisKKyAgICBkaXIx
LmdldEZpbGUoJ25vbmV4aXN0ZW50JykgcmFpc2VzIDgKKyAgICBkaXIxLmdldERpcmVjdG9yeSgn
bm9uZXhpc3RlbnQnKSByYWlzZXMgOAorICAgIGRpcjEuZ2V0RmlsZSgnbm9uZXhpc3RlbnQvZCcs
IGNyZWF0ZV9mbGFnKSByYWlzZXMgOAorICAgIGRpcjEuZ2V0RGlyZWN0b3J5KCdub25leGlzdGVu
dC9kJywgY3JlYXRlX2ZsYWcpIHJhaXNlcyA4CisKKyAgICBwcmludCgnKiBDYWxsaW5nIGdldEZp
bGUgZm9yIGEgZGlyZWN0b3J5LCBnZXREaXJlY3RvcnkgZm9yIGEgZmlsZScpCisKKyAgICByZXNl
dCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQor
ICAgIGRpciA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGZp
bGUgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisKKyAgICBST09ULmdldERp
cmVjdG9yeShmaWxlLmZ1bGxQYXRoKSByYWlzZXMgMTEKKyAgICBST09ULmdldEZpbGUoZGlyLmZ1
bGxQYXRoKSByYWlzZXMgMTEKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KGZpbGUubmFtZSkgcmFp
c2VzIDExCisgICAgcGFyZW50LmdldEZpbGUoZGlyLm5hbWUpIHJhaXNlcyAxMQorCisgICAgcHJp
bnQoJyogVHJ5aW5nIHRvIGNyZWF0ZSBlbnRyaWVzIHdpdGggZXhjbHVzaXZlIGZsYWcnKQorCisg
ICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVf
ZmxhZykKKyAgICBkaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykK
KyAgICBmaWxlID0gcGFyZW50LmdldEZpbGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorCisgICAgUk9P
VC5nZXREaXJlY3RvcnkoZGlyLmZ1bGxQYXRoLCBleGNsdXNpdmVfZmxhZykgcmFpc2VzIDEzCisg
ICAgUk9PVC5nZXRGaWxlKGZpbGUuZnVsbFBhdGgsIGV4Y2x1c2l2ZV9mbGFnKSByYWlzZXMgMTMK
KyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KGRpci5uYW1lLCBleGNsdXNpdmVfZmxhZykgcmFpc2Vz
IDEzCisgICAgcGFyZW50LmdldEZpbGUoZmlsZS5uYW1lLCBleGNsdXNpdmVfZmxhZykgcmFpc2Vz
IDEzCisKKyAgICBkaXIucmVtb3ZlKCkKKyAgICBmaWxlLnJlbW92ZSgpCisKKyAgICAjIE5vdyB0
aGlzIHNob3VsZCBzdWNjZWVkLgorICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpci5mdWxsUGF0aCwg
ZXhjbHVzaXZlX2ZsYWcpCisgICAgUk9PVC5nZXRGaWxlKGZpbGUuZnVsbFBhdGgsIGV4Y2x1c2l2
ZV9mbGFnKQorCisgICAgZGlyLnJlbW92ZSgpCisgICAgZmlsZS5yZW1vdmUoKQorCisgICAgIyBO
b3cgdGhpcyBzaG91bGQgc3VjY2VlZC4KKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KGRpci5uYW1l
LCBleGNsdXNpdmVfZmxhZykKKyAgICBwYXJlbnQuZ2V0RmlsZShmaWxlLm5hbWUsIGV4Y2x1c2l2
ZV9mbGFnKQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVs
bC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRhZGF0YS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wYmE1NzI3N2FmMmI4MjExNDgyZjM1NjllMjY2NjFmMDc0NWI0OWQzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRh
ZGF0YS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitHb3QgRmlsZVN5c3RlbTogVGVzdFNo
ZWxsRmlsZVN5c3RlbQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisqIEdldCBtZXRhZGF0YSBmb3IgZGlyZWN0b3JpZXMKKyogR2V0IG1ldGFkYXRhIGZv
ciBmaWxlcworUEFTUyAiW29iamVjdCBNZXRhZGF0YV0iIGlzID49ICJbb2JqZWN0IE1ldGFkYXRh
XSIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTQ4NjY1ZjRkNWU1
Yzc4NThiNDAzMGE5NDU4ZGM2ODA3MzdlOGE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRhZGF0YS5odG1sCkBAIC0wLDAgKzEsNDEgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0
eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0t
dGVzdC1zY3JpcHQiPgorCisgICAgc3RhcnQgPSBST09ULmdldE1ldGFkYXRhKCk7CisgICAgcmVz
ZXQoKQorCisgICAgbmFtZTEgPSAnYScKKyAgICBuYW1lMiA9ICdiJworICAgIGNyZWF0ZV9mbGFn
ID0ge2NyZWF0ZTp0cnVlfQorCisgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBj
cmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IFJPT1QuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcp
CisgICAgZGlyMV9maWxlMSA9IGRpcjEuZ2V0RmlsZShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAg
ZGlyMV9kaXIyID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAg
cHJpbnQoJyogR2V0IG1ldGFkYXRhIGZvciBkaXJlY3RvcmllcycpCisgICAgbWV0YWRhdGEgPSBk
aXIxLmdldE1ldGFkYXRhKCkKKyAgICBtZXRhZGF0YSA9IGRpcjFfZGlyMi5nZXRNZXRhZGF0YSgp
CisKKyAgICBwcmludCgnKiBHZXQgbWV0YWRhdGEgZm9yIGZpbGVzJykKKyAgICBtZXRhZGF0YSA9
IGZpbGUyLmdldE1ldGFkYXRhKCkKKyAgICBtZXRhZGF0YSA9IGRpcjFfZmlsZTEuZ2V0TWV0YWRh
dGEoKQorCisgICAgIyBNYWtlIHN1cmUgd2UgZ2V0IHRoZSBuZXdlciB0aW1lc3RhbXAuCisgICAg
ZW5kID0gZGlyMV9maWxlMS5nZXRNZXRhZGF0YSgpCisgICAgQVNTRVJUX0dFKGVuZCwgc3RhcnQp
CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBv
cmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDA1ZGQxYjFiYTE0NjAzZmQyNDgzMjhjODkxNDBmZjY0ODIxZmJjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3Rl
bQorKiBHZXR0aW5nIGEgcGFyZW50IG9mIGVudHJpZXMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgIi9hL2IiIGlzICIvYS9iIgorUEFTUyAi
L2EiIGlzICIvYSIKK1BBU1MgIi8iIGlzICIvIgorUEFTUyAiLyIgaXMgIi8iCitTY3JpcHQgZXhl
Y3V0aW9uIGZpbmlzaGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vb3AtZ2V0LXBhcmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdl
dC1wYXJlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzlmODQ5M2I3YTc5MDg4ZDg0NGY3NjE4MDk5OGNm
ZmM0ODRkYzk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLWdldC1wYXJlbnQuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmls
ZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAg
IG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAgICBuYW1lMyA9ICdjJworCisgICAgY3Jl
YXRlX2ZsYWcgPSB7Y3JlYXRlOnRydWV9CisKKyAgICBwcmludCgnKiBHZXR0aW5nIGEgcGFyZW50
IG9mIGVudHJpZXMuJykKKworICAgIHJlc2V0KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJlY3Rv
cnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIgPSBkaXIxLmdldERpcmVjdG9yeShuYW1l
MiwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTMgPSBkaXIyLmdldEZpbGUobmFtZTMsIGNyZWF0ZV9m
bGFnKQorCisgICAgcGFyZW50ID0gZmlsZTMuZ2V0UGFyZW50KCkKKyAgICBBU1NFUlRfRVEocGFy
ZW50LmZ1bGxQYXRoLCBkaXIyLmZ1bGxQYXRoKQorCisgICAgcGFyZW50ID0gZGlyMi5nZXRQYXJl
bnQoKQorICAgIEFTU0VSVF9FUShwYXJlbnQuZnVsbFBhdGgsIGRpcjEuZnVsbFBhdGgpCisKKyAg
ICBwYXJlbnQgPSBkaXIxLmdldFBhcmVudCgpCisgICAgQVNTRVJUX0VRKHBhcmVudC5mdWxsUGF0
aCwgUk9PVC5mdWxsUGF0aCkKKworICAgIHBhcmVudCA9IFJPT1QuZ2V0UGFyZW50KCkKKyAgICBB
U1NFUlRfRVEocGFyZW50LmZ1bGxQYXRoLCBST09ULmZ1bGxQYXRoKQorCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9vcC1tb3ZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9vcC1tb3ZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmVmYTJiMzE4ZWI5ZWYxNjVjNGM4
ODNhMzQ2YWVjZGYzNTBlNmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL29wLW1vdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK0dvdCBGaWxl
U3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKyogTW92aW5nIGFuIGVudHJ5IHRvIHRoZSBzYW1lIGRpcmVj
dG9yeQorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKKyogTW92aW5nIGVudHJpZXMg
dG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5CitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4
IgorKiBNb3ZpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzCitQQVNTICI4IiBpcyAiOCIK
K1BBU1MgIjgiIGlzICI4IgorKiBNb3ZpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJlY3Rvcnkg
d2l0aCB0aGUgc2FtZSBuYW1lCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIK
K1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorKiBUcnlpbmcgdG8gbW92ZSBu
b24tZXhpc3RlbnQgZW50cmllcworUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKK1BB
U1MgIjgiIGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCisqIE1vdmluZyBlbnRyaWVzIHRvIGEgbm9u
LWV4aXN0ZW50IGRpcmVjdG9yeQorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKK1BB
U1MgIjgiIGlzICI4IgorKiBNb3ZpbmcgZW50cmllcyB0byBpdHMgY2hpbGQKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorKiBNb3ZpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGls
ZHJlbgorUEFTUyAiMiIgaXMgIjIiCitQQVNTICIyIiBpcyAiMiIKK1BBU1MgIjIiIGlzICIyIgor
UEFTUyAiMiIgaXMgIjIiCitQQVNTICI4IiBpcyAiOCIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNo
ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhjZWI5NmEwODVlNzA2ODBiNGM1MzFmNDgzOGEzN2ZmOWJhNzRiZDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS5odG1sCkBAIC0wLDAgKzEs
MTQzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUt
c3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKyAgICByZXNldCgpCisKKyAgICBuYW1lMSA9ICdhJworICAg
IG5hbWUyID0gJ2InCisgICAgbmFtZTMgPSAnYycKKyAgICBuYW1lNCA9ICdkJworICAgIGNyZWF0
ZV9mbGFnID0ge2NyZWF0ZTp0cnVlfQorCisgICAgcHJpbnQoJyogTW92aW5nIGFuIGVudHJ5IHRv
IHRoZSBzYW1lIGRpcmVjdG9yeScpCisKKyAgICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAgIHBh
cmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIx
ID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBw
YXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICAjIERpcmVjdG9yeQorICAg
IG1vdmVkID0gZGlyMS5tb3ZlVG8ocGFyZW50LCBuYW1lMykKKyAgICBwYXJlbnQuZ2V0RGlyZWN0
b3J5KG5hbWUxKSByYWlzZXMgOAorICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTMpCisKKyAg
ICAjIEZpbGUKKyAgICBtb3ZlZCA9IGZpbGUyLm1vdmVUbyhwYXJlbnQsIG5hbWU0KQorICAgIHBh
cmVudC5nZXREaXJlY3RvcnkobmFtZTEpIHJhaXNlcyA4CisgICAgcGFyZW50LmdldERpcmVjdG9y
eShuYW1lMykKKworICAgIHByaW50KCcqIE1vdmluZyBlbnRyaWVzIHRvIGEgZGlmZmVyZW50IGRp
cmVjdG9yeScpCisKKyAgICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAgIGRpcjEgPSBST09ULmdl
dERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyMiA9IFJPT1QuZ2V0RGlyZWN0
b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShu
YW1lMywgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQ0ID0gZGlyMS5nZXRGaWxlKG5hbWU0LCBjcmVh
dGVfZmxhZykKKworICAgICMgRGlyZWN0b3J5CisgICAgbW92ZWQgPSBjaGlsZDMubW92ZVRvKGRp
cjIsIG5hbWUxKQorICAgIGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzKSByYWlzZXMgOAorICAgIGRp
cjIuZ2V0RGlyZWN0b3J5KG5hbWUxKQorCisgICAgIyBGaWxlCisgICAgbW92ZWQgPSBjaGlsZDQu
bW92ZVRvKGRpcjIsIG5hbWUyKQorICAgIGRpcjEuZ2V0RmlsZShuYW1lNCkgcmFpc2VzIDgKKyAg
ICBkaXIyLmdldEZpbGUobmFtZTIpCisKKyAgICBwcmludCgnKiBNb3ZpbmcgZW50cmllcyB0byB3
aXRoIGVtcHR5IG5hbWVzJykKKworICAgICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgZGlyMSA9
IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBkaXIyID0gUk9PVC5n
ZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMyA9IGRpcjEuZ2V0RGly
ZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDQgPSBkaXIxLmdldEZpbGUobmFt
ZTQsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBEaXJlY3RvcnkKKyAgICBtb3ZlZCA9IGNoaWxkMy5t
b3ZlVG8oZGlyMiwgbnVsbCkKKyAgICBkaXIxLmdldERpcmVjdG9yeShjaGlsZDMubmFtZSkgcmFp
c2VzIDgKKyAgICBkaXIyLmdldERpcmVjdG9yeShjaGlsZDMubmFtZSkKKworICAgICMgRmlsZQor
ICAgIG1vdmVkID0gY2hpbGQ0Lm1vdmVUbyhkaXIyLCBudWxsKQorICAgIGRpcjEuZ2V0RmlsZShj
aGlsZDQubmFtZSkgcmFpc2VzIDgKKyAgICBkaXIyLmdldEZpbGUoY2hpbGQ0Lm5hbWUpCisKKyAg
ICBwcmludCgnKiBNb3ZpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJlY3Rvcnkgd2l0aCB0aGUg
c2FtZSBuYW1lJykKKworICAgICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9P
VC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQu
Z2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRG
aWxlKG5hbWUyLCBjcmVhdGVfZmxhZykKKworICAgIGRpcjEubW92ZVRvKHBhcmVudCwgbnVsbCkg
cmFpc2VzIDEzCisgICAgZGlyMS5tb3ZlVG8ocGFyZW50LCBuYW1lMSkgcmFpc2VzIDEzCisgICAg
ZmlsZTIubW92ZVRvKHBhcmVudCwgbnVsbCkgcmFpc2VzIDEzCisgICAgZmlsZTIubW92ZVRvKHBh
cmVudCwgbmFtZTIpIHJhaXNlcyAxMworCisgICAgcHJpbnQoJyogVHJ5aW5nIHRvIG1vdmUgbm9u
LWV4aXN0ZW50IGVudHJpZXMnKQorCisgICAgbm9uZXhpc3RfZGlyID0gcGFyZW50LmdldERpcmVj
dG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgbm9uZXhpc3RfZmlsZSA9IHBhcmVudC5nZXRG
aWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKKyAgICBub25leGlzdF9kaXIucmVtb3ZlKCkKKyAgICBu
b25leGlzdF9maWxlLnJlbW92ZSgpCisKKyAgICBST09ULmdldERpcmVjdG9yeShub25leGlzdF9k
aXIuZnVsbFBhdGgpIHJhaXNlcyA4CisgICAgUk9PVC5nZXRGaWxlKG5vbmV4aXN0X2ZpbGUuZnVs
bFBhdGgpIHJhaXNlcyA4CisKKyAgICBub25leGlzdF9kaXIubW92ZVRvKGRpcjEsIG5hbWUyKSBy
YWlzZXMgOAorICAgIG5vbmV4aXN0X2ZpbGUubW92ZVRvKGRpcjIsIG5hbWUxKSByYWlzZXMgOAor
CisgICAgcHJpbnQoJyogTW92aW5nIGVudHJpZXMgdG8gYSBub24tZXhpc3RlbnQgZGlyZWN0b3J5
JykKKworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KG5vbmV4aXN0X2Rpci5mdWxsUGF0aCkgcmFpc2Vz
IDgKKyAgICBST09ULmdldERpcmVjdG9yeShkaXIxLmZ1bGxQYXRoKQorICAgIFJPT1QuZ2V0Rmls
ZShmaWxlMi5mdWxsUGF0aCkKKworICAgIGRpcjEubW92ZVRvKG5vbmV4aXN0X2RpciwgbmFtZTEp
IHJhaXNlcyA4CisgICAgZmlsZTIubW92ZVRvKG5vbmV4aXN0X2RpciwgbmFtZTMpIHJhaXNlcyA4
CisKKyAgICBwcmludCgnKiBNb3ZpbmcgZW50cmllcyB0byBpdHMgY2hpbGQnKQorCisgICAgUk9P
VC5tb3ZlVG8oZGlyMSkgcmFpc2VzIDEzCisgICAgcGFyZW50Lm1vdmVUbyhkaXIxKSByYWlzZXMg
MTMKKworICAgIHByaW50KCcqIE1vdmluZyBhIGRpcmVjdG9yeSB3aXRoIGNoaWxkcmVuJykKKwor
ICAgIGRpcjQgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykKKyAgICBj
aGlsZDEgPSBkaXI0LmdldEZpbGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMiA9IGRp
cjQuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDMgPSBjaGlsZDIu
Z2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQ0ID0gY2hpbGQyLmdldERpcmVj
dG9yeShuYW1lNCwgY3JlYXRlX2ZsYWcpCisKKyAgICBlbnRyaWVzMSA9IGRpcjQucmVhZERpcmVj
dG9yeSgpCisgICAgZW50cmllczIgPSBjaGlsZDIucmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJU
X0VRKDIsIGVudHJpZXMxLmxlbmd0aCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczIubGVuZ3Ro
KQorCisgICAgZGlyNF9uZXcgPSBkaXI0Lm1vdmVUbyhST09ULCAnZGlyNF9uZXcnKQorICAgIGNo
aWxkMl9uZXcgPSBkaXI0X25ldy5nZXREaXJlY3RvcnkobmFtZTIpCisKKyAgICBlbnRyaWVzMV9u
ZXcgPSBkaXI0X25ldy5yZWFkRGlyZWN0b3J5KCkKKyAgICBlbnRyaWVzMl9uZXcgPSBjaGlsZDJf
bmV3LnJlYWREaXJlY3RvcnkoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMV9uZXcubGVuZ3Ro
KQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMl9uZXcubGVuZ3RoKQorCisgICAgcGFyZW50Lmdl
dERpcmVjdG9yeShkaXI0LmZ1bGxQYXRoKSByYWlzZXMgOAorCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29w
LXJlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9vcC1yZWFkLWRpcmVjdG9yeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQwYmRiMzE5ZjRk
OGE2ZDNmZjQ5NmI4NmY1YmVjZjI3ZTE3NGM1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRpcmVjdG9yeS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyMiBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyAiMCIgaXMgIjAi
CitQQVNTICIxIiBpcyAiMSIKK1BBU1MgIjciIGlzICI3IgorW0VOVFJZIHtwYXRoOi9wYXJlbnQv
YSBuYW1lOmEgdHlwZTpESVJFQ1RPUll9LAorIEVOVFJZIHtwYXRoOi9wYXJlbnQvYiBuYW1lOmIg
dHlwZTpESVJFQ1RPUll9LAorIEVOVFJZIHtwYXRoOi9wYXJlbnQvYyBuYW1lOmMgdHlwZTpESVJF
Q1RPUll9LAorIEVOVFJZIHtwYXRoOi9wYXJlbnQvZCBuYW1lOmQgdHlwZTpGSUxFfSwKKyBFTlRS
WSB7cGF0aDovcGFyZW50L2UgbmFtZTplIHR5cGU6RklMRX0sCisgRU5UUlkge3BhdGg6L3BhcmVu
dC9mIG5hbWU6ZiB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9nIG5hbWU6
ZyB0eXBlOkZJTEV9XQorUEFTUyAiNSIgaXMgIjUiCitbRU5UUlkge3BhdGg6L3BhcmVudC9hIG5h
bWU6YSB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9jIG5hbWU6YyB0eXBl
OkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9kIG5hbWU6ZCB0eXBlOkZJTEV9LAor
IEVOVFJZIHtwYXRoOi9wYXJlbnQvZSBuYW1lOmUgdHlwZTpGSUxFfSwKKyBFTlRSWSB7cGF0aDov
cGFyZW50L2YgbmFtZTpmIHR5cGU6RElSRUNUT1JZfV0KK1NjcmlwdCBleGVjdXRpb24gZmluaXNo
ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRp
cmVjdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0
b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDY1YTBlNGEzMzAzMTJkNmZhODQ5NjY2ZGFlMWIyZjMxZjYw
MDRkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1y
ZWFkLWRpcmVjdG9yeS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9maWxl
LXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorCisgICAg
bmFtZTEgPSAnYScKKyAgICBuYW1lMiA9ICdiJworICAgIG5hbWUzID0gJ2MnCisgICAgbmFtZTQg
PSAnZCcKKworICAgIGNyZWF0ZV9mbGFnID0ge2NyZWF0ZTp0cnVlfQorCisgICAgcmVzZXQoKQor
CisgICAgZW50cmllcyA9IFJPT1QucmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDAsIGVu
dHJpZXMubGVuZ3RoKQorCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcs
IGNyZWF0ZV9mbGFnKQorICAgIGEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KCdhJywgY3JlYXRlX2Zs
YWcpCisgICAgYiA9IHBhcmVudC5nZXREaXJlY3RvcnkoJ2InLCBjcmVhdGVfZmxhZykKKyAgICBj
ID0gcGFyZW50LmdldERpcmVjdG9yeSgnYycsIGNyZWF0ZV9mbGFnKQorICAgIGQgPSBwYXJlbnQu
Z2V0RmlsZSgnZCcsIGNyZWF0ZV9mbGFnKQorICAgIGUgPSBwYXJlbnQuZ2V0RmlsZSgnZScsIGNy
ZWF0ZV9mbGFnKQorICAgIGYgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KCdmJywgY3JlYXRlX2ZsYWcp
CisgICAgZyA9IHBhcmVudC5nZXRGaWxlKCdnJywgY3JlYXRlX2ZsYWcpCisKKyAgICBjLmdldEZp
bGUoJ2gnLCBjcmVhdGVfZmxhZykKKyAgICBjLmdldERpcmVjdG9yeSgnaScsIGNyZWF0ZV9mbGFn
KQorICAgIGYuZ2V0RmlsZSgnaicsIGNyZWF0ZV9mbGFnKQorCisgICAgZW50cmllcyA9IFJPT1Qu
cmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDEsIGVudHJpZXMubGVuZ3RoKQorCisgICAg
ZW50cmllcyA9IHBhcmVudC5yZWFkRGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoNywgZW50cmll
cy5sZW5ndGgpCisgICAgcHJpbnQoZW50cmllcykKKworICAgIGcucmVtb3ZlKCkKKyAgICBiLnJl
bW92ZSgpCisgICAgZW50cmllcyA9IHBhcmVudC5yZWFkRGlyZWN0b3J5KCkKKyAgICBBU1NFUlRf
RVEoNSwgZW50cmllcy5sZW5ndGgpCisgICAgcHJpbnQoZW50cmllcykKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9vcC1yZW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLXJlbW92ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY4MjQ4ZGY0MDM1MWU0YmI2MWQx
NTI3NTU4ZmQwODBkNDVmNjY2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9vcC1yZW1vdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0dvdCBG
aWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCisqIFJlbW92aW5nIGZpbGVzIGFuZCBkaXJl
Y3RvcmllcworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorKiBSZW1vdmluZyBub24tZXhpc3Rl
bnQgZmlsZSBvciBkaXJlY3RvcnkKK1BBU1MgIjgiIGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCisq
IFJlbW92aW5nIGEgZGlyZWN0b3J5IHdpdGggY2hpbGRyZW4KK1BBU1MgIjEzIiBpcyAiMTMiCitT
Y3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
b3AtcmVtb3ZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTZkMGIwMGM2Y2QwMmUwNzE5MDVlZDUxMWU1YWYy
ZWFjYWQ3ZmY0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9vcC1yZW1vdmUuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1z
eXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIG5h
bWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKworICAgIGNyZWF0ZV9mbGFnID0ge2NyZWF0ZTp0
cnVlfQorCisgICAgcHJpbnQoJyogUmVtb3ZpbmcgZmlsZXMgYW5kIGRpcmVjdG9yaWVzJykKKwor
ICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3Jl
YXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9m
bGFnKQorICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisg
ICAgIyBNYWtlIHN1cmUgdGhlIGVudHJpZXMgZXhpc3QKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5
KG5hbWUxKQorICAgIHBhcmVudC5nZXRGaWxlKG5hbWUyKQorCisgICAgZGlyMS5yZW1vdmUoKQor
ICAgIGZpbGUyLnJlbW92ZSgpCisKKyAgICAjIE5vdyB0aGV5IHNob3VsZCBiZSBnb25lIGF3YXkK
KyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKSByYWlzZXMgOAorICAgIHBhcmVudC5nZXRG
aWxlKG5hbWUyKSByYWlzZXMgOAorCisgICAgcHJpbnQoJyogUmVtb3Zpbmcgbm9uLWV4aXN0ZW50
IGZpbGUgb3IgZGlyZWN0b3J5JykKKworICAgIGRpcjEucmVtb3ZlKCkgcmFpc2VzIDgKKyAgICBm
aWxlMi5yZW1vdmUoKSByYWlzZXMgOAorCisgICAgcHJpbnQoJyogUmVtb3ZpbmcgYSBkaXJlY3Rv
cnkgd2l0aCBjaGlsZHJlbicpCisKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXRE
aXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5h
bWUyLCBjcmVhdGVfZmxhZykKKworICAgIHBhcmVudC5yZW1vdmUoKSByYWlzZXMgMTMKKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNhMjhlNzYxNWZjZWE5ZTZlMTM0YjFhMzBlOGU3NWNhNWYwZTM2MGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcGFyYWxsZWwtb3BlcmF0
aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdCBtYWtpbmcgbXVsdGlwbGUg
RmlsZVN5c3RlbSBvcGVyYXRpb25zIGluIHBhcmFsbGVsLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworR290IEZpbGVTeXN0ZW06VGVzdFNoZWxsRmlsZVN5c3RlbQorcmVxdWVzdGVk
IEZpbGVTeXN0ZW0uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1N0YXJ0aW5nIHBhcmFsbGVsIHRlc3Qgc3RhZ2UgMS4KK1N0YXJ0aW5nIHBhcmFsbGVs
IHRlc3Qgc3RhZ2UgMi4KK1ZlcmlmeWluZyB0aGUgRmlsZVN5c3RlbSBzdGF0dXMuCitQQVNTICIv
YSwvYjIsL2MsL2QsL2UiIGlzICIvYSwvYjIsL2MsL2QsL2UiCitEb25lLgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcGFyYWxsZWwtb3BlcmF0aW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlvbnMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kODRkZDBmNWM0OGYzNWY1YmFkMzQ0MjM1NzNmOGRjNTcwOTliZDAxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlv
bnMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL3BhcmFsbGVsLW9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVl
c3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43ZDAwNGJlMjVhNjRlYzk1NTE5YWNmNGI0NGQ0OTY0NDE4ODNlNjIzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVy
c2lzdGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorR290IEZpbGVTeXN0ZW06IFRl
c3RTaGVsbEZpbGVTeXN0ZW0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK0dvdCBGaWxlU3lzdGVtOiBU
ZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTICIxIiBpcyAiMSIKK1BBU1MgIi9hYSIgaXMgIi9hYSIK
K1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3RlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3RlbnQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mN2Y0MWQzNjE0ZDAzMmFmODU2NDRiMmRhNjM0Y2MwNWY0ZDJhZjgyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2Ut
cGVyc2lzdGVudC5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5
c3RlbS10ZXN0LXNoZWxsIiBpZD0ic2NyaXB0MSI+CisgICAgcmVzZXQoKTsKKyAgICBST09ULmdl
dERpcmVjdG9yeSgnYWEnLCB7Y3JlYXRlOnRydWV9KTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0ic2NyaXB0MiI+CisgICAg
IyBTZWUgaWYgd2UgZ2V0IHRoZSBzYW1lIGZpbGUgc3lzdGVtLgorICAgIGVudHJpZXMgPSBST09U
LnJlYWREaXJlY3RvcnkoKTsKKyAgICBlbnRyeSA9IGVudHJpZXNbMF0KKyAgICBBU1NFUlRfRVEo
MSwgZW50cmllcy5sZW5ndGgpOworICAgIEFTU0VSVF9FUSgnL2FhJywgZW50cnkuZnVsbFBhdGgp
OworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuU2Vjb25kVGVzdCgpIHsKKyAgICB2
YXIgc2hlbGwgPSBuZXcgRmlsZVN5c3RlbVRlc3RTaGVsbChQRVJTSVNURU5ULCAxMDAsIGRlYnVn
LCBmdW5jdGlvbigpeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSk7CisgICAg
c2hlbGwucnVuU2NyaXB0cygnc2NyaXB0MicpOworfQorCitpZiAod2luZG93LnJlcXVlc3RGaWxl
U3lzdGVtKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgdmFyIHNoZWxsID0g
bmV3IEZpbGVTeXN0ZW1UZXN0U2hlbGwoUEVSU0lTVEVOVCwgMTAwLCBkZWJ1ZywgcnVuU2Vjb25k
VGVzdCk7CisgICAgc2hlbGwucnVuU2NyaXB0cygnc2NyaXB0MScpOworfSBlbHNlCisgICAgZGVi
dWcoIlRoaXMgdGVzdCByZXF1aXJlcyBGaWxlU3lzdGVtIEFQSSBzdXBwb3J0LiIpOworCitzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS10ZW1w
b3JhcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3Qt
ZnMtdHdpY2UtdGVtcG9yYXJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDAwNGJlMjVhNjRl
Yzk1NTE5YWNmNGI0NGQ0OTY0NDE4ODNlNjIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitTY3JpcHQg
ZXhlY3V0aW9uIGZpbmlzaGVkLgorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0K
K1BBU1MgIjEiIGlzICIxIgorUEFTUyAiL2FhIiBpcyAiL2FhIgorU2NyaXB0IGV4ZWN1dGlvbiBm
aW5pc2hlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVl
c3QtZnMtdHdpY2UtdGVtcG9yYXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
cmVxdWVzdC1mcy10d2ljZS10ZW1wb3JhcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjFlMGZmMWYwMDcy
NzdjMzJkYWI1Y2VkMzM4ZTEwOGYxOGQyNzE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5Lmh0bWwKQEAgLTAs
MCArMSw0MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0
LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxs
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJz
Y3JpcHQxIj4KKyAgICByZXNldCgpOworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdhYScsIHtjcmVh
dGU6dHJ1ZX0pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lz
dGVtLXRlc3Qtc2hlbGwiIGlkPSJzY3JpcHQyIj4KKyAgICAjIFNlZSBpZiB3ZSBnZXQgdGhlIHNh
bWUgZmlsZSBzeXN0ZW0uCisgICAgZW50cmllcyA9IFJPT1QucmVhZERpcmVjdG9yeSgpOworICAg
IGVudHJ5ID0gZW50cmllc1swXQorICAgIEFTU0VSVF9FUSgxLCBlbnRyaWVzLmxlbmd0aCk7Cisg
ICAgQVNTRVJUX0VRKCcvYWEnLCBlbnRyeS5mdWxsUGF0aCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQ+
CitmdW5jdGlvbiBydW5TZWNvbmRUZXN0KCkgeworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lz
dGVtVGVzdFNoZWxsKFRFTVBPUkFSWSwgMTAwLCBkZWJ1ZywgZnVuY3Rpb24oKXsKKyAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0pOworICAgIHNoZWxsLnJ1blNjcmlwdHMoJ3Njcmlw
dDInKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgeworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxs
KFRFTVBPUkFSWSwgMTAwLCBkZWJ1ZywgcnVuU2Vjb25kVGVzdCk7CisgICAgc2hlbGwucnVuU2Ny
aXB0cygnc2NyaXB0MScpOworfSBlbHNlCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBG
aWxlU3lzdGVtIEFQSSBzdXBwb3J0LiIpOworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjM3YjNhOTQ4YTkwMWNhYmExYTgyZDlkN2YxNDFhNDE4OTRjY2RjZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMt
dGVzdC1zaGVsbC10ZW1wb3JhcnkuanMKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gZW5kVGVz
dCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2lmICh3aW5kb3cucmVxdWVzdEZp
bGVTeXN0ZW0pIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICB2YXIgc2hlbGwg
PSBuZXcgRmlsZVN5c3RlbVRlc3RTaGVsbChURU1QT1JBUlksIDEwMCwgZGVidWcsIGVuZFRlc3Qp
OworICAgIHNoZWxsLnJ1blNjcmlwdHMoJ2ZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Jyk7Cit9IGVs
c2UKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVTeXN0ZW0gQVBJIHN1cHBvcnQu
Iik7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzY0OTliYzg1Y2IzOTI4Y2M2MjU1ZDhlMWU5NjBhMGNhZjdmZWQ5OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5q
cwpAQCAtMCwwICsxLDM1NyBAQAorLyoKKyAgIEF2YWlsYWJsZSB2YXJpYWJsZXMgYW5kIGZ1bmN0
aW9uczoKKyAgICAgPGVudHJ5Pi48ZW50cnlNZXRob2Q+KC4uLikgW3JhaXNlIDxjb2RlPl0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4gQ2FsbHMgdGhlIGVudHJ5IG1ldGhvZCBz
eW5jaHJvbm91c2x5LiBJdCBkb2VzIG5vdCBlcnJvciBvdXQgaWYgInJhaXNlIDxjb2RlPiIgaXMg
Z2l2ZW4gYW5kIGl0IGhhcyB0aHJvd24gdGhlIGVycm9yIGNvZGUgPGNvZGU+LgorICAgICByZXNl
dCgpICAgICAgICAgICAgICAgICAgIC4uLiBSZW1vdmVzIGFsbCBlbnRyaWVzIGluIHRoZSBmaWxl
IHN5c3RlbS4KKyAgICAgcHJpbnQoPGFyZz4pICAgICAgICAgICAgICAuLi4gUHJpbnRzIG91dCB0
aGUgZ2l2ZW4gYXJnLgorICAgICBBU1NFUlRfRVEoPGFyZzE+LCA8YXJnMj4pIC4uLiBBc3NlcnRz
IHRoYXQgPGFyZzE+IGFuZCA8YXJnMj4gYXJlIGVxdWFsLgorICAgICBBU1NFUlRfR0UoPGFyZzE+
LCA8YXJnMj4pIC4uLiBBc3NlcnRzIHRoYXQgPGFyZzE+IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVh
bHMgdG8gPGFyZzI+LgorICAgICBST09UICAgICAgICAgICAgICAgICAgICAgIC4uLiBUaGUgZmls
ZSBzeXN0ZW0ncyByb290IGVudHJ5LgorCisgICBFeGFtcGxlOgorICAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKyAgICA8ZGl2IGlkPSJmaWxlLXN5c3RlbS10ZXN0LXNjcmlwdCI+CisgICAgcmVzZXQoKQor
CisgICAgIyBjb21tZW50CisgICAgZW50cnkxID0gUk9PVC5nZXRGaWxlKCdmb28vYS50eHQnKQor
ICAgIGVudHJ5MiA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdmb28vYmFyJywge0NSRUFURTp0cnVlfSkK
KyAgICBlbnRyeTMgPSBST09ULmdldEZpbGUoJ2Zvby9ub25leGlzdGVudCcpIHJhaXNlcyA4Cisg
ICAgZW50cmllcyA9IFJPT1QucmVhZERpcmVjdG9yeSgpCisgICAgcHJpbnQoZW50cmllcykKKyAg
ICBlbnRyeTEuY29weVRvKGVudHJ5MiwgJ2IudHh0JykKKyAgICBtZXRhZGF0YSA9IGVudHJ5MS5n
ZXRNZXRhZGF0YSgpCisgICAgcHJpbnQobWV0YWRhdGEpCisgICAgQVNTRVJUX0dUKG1ldGFkYXRh
LCAwKQorICAgIDwvZGl2PgorCisgICAgdmFyIHNoZWxsID0gbmV3IEZpbGVTeXN0ZW1UZXN0U2hl
bGwoVEVNUE9SQVJZLCAxMDApOworICAgIHNoZWxsLnJ1blNjcmlwdHMoImZpbGUtc3lzdGVtLXRl
c3Qtc2NyaXB0Iik7CisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKK3ZhciBGaWxlU3lzdGVt
VGVzdFNoZWxsID0gZnVuY3Rpb24odHlwZSwgc2l6ZSwgb3B0X2xvZ0Z1bmMsIG9wdF9lbmRUZXN0
Q2FsbGJhY2spCit7CisgICAgdGhpcy5maWxlU3lzdGVtID0gbnVsbDsKKyAgICB0aGlzLmZpbGVT
eXN0ZW1UeXBlID0gdHlwZTsKKyAgICB0aGlzLmZpbGVTeXN0ZW1TaXplID0gc2l6ZTsKKworICAg
IHRoaXMubG9nID0gb3B0X2xvZ0Z1bmM7CisgICAgdGhpcy5lbmRUZXN0Q2FsbGJhY2sgPSBvcHRf
ZW5kVGVzdENhbGxiYWNrOworCisgICAgdGhpcy5saW5lcyA9IFtdOworICAgIHRoaXMubGluZUNv
dW50ZXIgPSAtMTsKKyAgICB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlID0gMDsKKyAgICB0aGlzLmRl
c3RpbmF0aW9uU3ltYm9sID0gbnVsbDsKKworICAgIHRoaXMudmFycyA9IHsgJ3RydWUnOiB0cnVl
LCAnZmFsc2UnOiBmYWxzZSB9OworCisgICAgdGhpcy5ydW5TY3JpcHRzID0gZnVuY3Rpb24oZWxl
bWVudElkKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmVuZFRlc3RDYWxsYmFjaykKKyAgICAg
ICAgICAgIHRoaXMuZW5kVGVzdENhbGxiYWNrID0gZnVuY3Rpb24oKSB7IH07CisKKyAgICAgICAg
aWYgKCF0aGlzLmxvZykKKyAgICAgICAgICAgIHRoaXMubG9nID0gdGhpcy5kZWZhdWx0TG9nRnVu
YzsKKworICAgICAgICB2YXIgZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7CisgICAgICAgIGlmICghZWxlbSkgeworICAgICAgICAgICAgdGhpcy5lcnJvcignRWxlbWVu
dCBub3QgZm91bmQ6ICcgKyBlbGVtZW50SWQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIHRoaXMubGluZXMgPSBlbGVtLmlubmVySFRNTC5zcGxpdCgvXHI/XG4rLyk7
CisgICAgICAgIGlmICghdGhpcy5saW5lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRoaXMuZXJy
b3IoIk5vIHNjcmlwdHMgdG8gcnVuISIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgdGhpcy5saW5lQ291bnRlciA9IDA7CisgICAgICAgIHJlcXVlc3RGaWxlU3lz
dGVtKHRoaXMuZmlsZVN5c3RlbVR5cGUsIHRoaXMuZmlsZVN5c3RlbVNpemUsIHRoaXMuYmluZCh0
aGlzLmZpbGVTeXN0ZW1DYWxsYmFjayksIHRoaXMuYmluZCh0aGlzLmVycm9yQ2FsbGJhY2spKTsK
KyAgICB9CisKKyAgICAvLyBDYWxsYmFja3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICB0aGlzLmJpbmQgPSBmdW5jdGlv
bihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIHZhciBvYmogPSB0aGlzOworICAgICAgICByZXR1
cm4gZnVuY3Rpb24oYXJnKSB7CisgICAgICAgICAgICBjYWxsYmFjayhvYmosIGFyZyk7CisgICAg
ICAgIH07CisgICAgfQorCisgICAgdGhpcy5lcnJvckNhbGxiYWNrID0gZnVuY3Rpb24oc2hlbGws
IGVycm9yKQorICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5zaG91bGRCZSkKKyAgICAgICAgICAg
IHNob3VsZEJlKCciJyArIHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlICsgJyInLCAnIicgKyBlcnJv
ci5jb2RlICsgJyInKTsKKyAgICAgICAgaWYgKHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlICYmIGVy
cm9yLmNvZGUgPT0gc2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUpIHsKKyAgICAgICAgICAgIHNoZWxs
LnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNoZWxs
LmVycm9yKCdHb3QgZXJyb3I6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHRoaXMuc3VjY2Vzc0NhbGxiYWNrID0gZnVuY3Rpb24oc2hlbGwsIHJldHVyblZhbHVlKQor
ICAgIHsKKyAgICAgICAgaWYgKHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlKSB7CisgICAgICAgICAg
ICBzaGVsbC5lcnJvcignT3BlcmF0aW9uIHVuZXhwZWN0ZWRseSBzdWNjZWVkZWQnKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2hlbGwuZGVzdGluYXRpb25T
eW1ib2wpCisgICAgICAgICAgICBzaGVsbC52YXJzW3NoZWxsLmRlc3RpbmF0aW9uU3ltYm9sXSA9
IHJldHVyblZhbHVlOworICAgICAgICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgfQor
CisgICAgdGhpcy5lbnRyaWVzQ2FsbGJhY2sgPSBmdW5jdGlvbihzaGVsbCwgZW50cmllcykKKyAg
ICB7CisgICAgICAgIGlmIChzaGVsbC5kZXN0aW5hdGlvblN5bWJvbCkgeworICAgICAgICAgICAg
aWYgKCFzaGVsbC52YXJzW3NoZWxsLmRlc3RpbmF0aW9uU3ltYm9sXSkKKyAgICAgICAgICAgICAg
ICBzaGVsbC52YXJzW3NoZWxsLmRlc3RpbmF0aW9uU3ltYm9sXSA9IFtdOworICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAg
IHNoZWxsLnZhcnNbc2hlbGwuZGVzdGluYXRpb25TeW1ib2xdLnB1c2goZW50cmllc1tpXSk7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKGVudHJpZXMubGVuZ3RoID09IDApCisgICAgICAgICAgICBz
aGVsbC5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgfQorCisgICAgdGhpcy5maWxlU3lzdGVtQ2Fs
bGJhY2sgPSBmdW5jdGlvbihzaGVsbCwgZnMpCisgICAgeworICAgICAgICBzaGVsbC5sb2coJ0dv
dCBGaWxlU3lzdGVtOiAnICsgZnMubmFtZSk7CisgICAgICAgIHNoZWxsLmZpbGVTeXN0ZW0gPSBm
czsKKyAgICAgICAgc2hlbGwudmFyc1snUk9PVCddID0gZnMucm9vdDsKKyAgICAgICAgc2hlbGwu
cnVuTmV4dFN0YXRlbWVudCgpOworICAgIH0KKworICAgIC8vIEhlbHBlciBtZXRob2RzIGZvciBj
YWxsaW5nIGVudHJ5IG1ldGhvZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAg
IHZhciBjYWxsRW50cnlNZXRob2QwID0gZnVuY3Rpb24oc2hlbGwsIGVudHJ5LCBtZXRob2QsIGFy
Z3MpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW50cnlbbWV0aG9kXShzaGVs
bC5iaW5kKHNoZWxsLnN1Y2Nlc3NDYWxsYmFjayksIHNoZWxsLmJpbmQoc2hlbGwuZXJyb3JDYWxs
YmFjaykpOworICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGlmIChz
aGVsbC5leHBlY3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09IHNoZWxsLmV4cGVjdGVkRXJy
b3JDb2RlKSB7CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdHb3QgZXhjZXB0aW9uIChleHBl
Y3RlZCk6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAgICBzaGVsbC5ydW5OZXh0U3Rh
dGVtZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNoZWxsLmVy
cm9yKCdHb3QgZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICB2YXIgY2FsbEVudHJ5TWV0aG9kMiA9IGZ1bmN0aW9uKHNoZWxs
LCBlbnRyeSwgbWV0aG9kLCBhcmdzKQorICAgIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAg
IGVudHJ5W21ldGhvZF0oYXJnc1swXSwgYXJnc1sxXSwgc2hlbGwuYmluZChzaGVsbC5zdWNjZXNz
Q2FsbGJhY2spLCBzaGVsbC5iaW5kKHNoZWxsLmVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAgfSBj
YXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICBpZiAoc2hlbGwuZXhwZWN0ZWRFcnJvckNv
ZGUgJiYgZXJyb3IuY29kZSA9PSBzaGVsbC5leHBlY3RlZEVycm9yQ29kZSkgeworICAgICAgICAg
ICAgICAgIHNoZWxsLmxvZygnR290IGV4Y2VwdGlvbiAoZXhwZWN0ZWQpOiAnICsgZXJyb3IuY29k
ZSk7CisgICAgICAgICAgICAgICAgc2hlbGwucnVuTmV4dFN0YXRlbWVudCgpOworICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzaGVsbC5lcnJvcignR290IGV4Y2VwdGlvbjog
JyArIGVycm9yLmNvZGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAg
dmFyIGNhbGxSZWFkRGlyZWN0b3J5ID0gZnVuY3Rpb24oc2hlbGwsIGVudHJ5LCBtZXRob2QsIGFy
Z3MpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZGlyZWN0b3J5UmVhZGVyID0g
ZW50cnkuY3JlYXRlUmVhZGVyKCk7CisgICAgICAgICAgICBkaXJlY3RvcnlSZWFkZXIucmVhZEVu
dHJpZXMoc2hlbGwuYmluZChzaGVsbC5lbnRyaWVzQ2FsbGJhY2spLCBzaGVsbC5iaW5kKHNoZWxs
LmVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAg
ICAgICBpZiAoc2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUgJiYgZXJyb3IuY29kZSA9PSBzaGVsbC5l
eHBlY3RlZEVycm9yQ29kZSkgeworICAgICAgICAgICAgICAgIHNoZWxsLmxvZygnR290IGV4Y2Vw
dGlvbiAoZXhwZWN0ZWQpOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAgICAgICAgc2hlbGwu
cnVuTmV4dFN0YXRlbWVudCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICBzaGVsbC5lcnJvcignR290IGV4Y2VwdGlvbjogJyArIGVycm9yLmNvZGUpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdmFyIGVudHJ5TWV0aG9kc1RhYmxlID0gewor
ICAgICAgICAnZ2V0TWV0YWRhdGEnOiBjYWxsRW50cnlNZXRob2QwLAorICAgICAgICAnY29weVRv
JzogY2FsbEVudHJ5TWV0aG9kMiwKKyAgICAgICAgJ21vdmVUbyc6IGNhbGxFbnRyeU1ldGhvZDIs
CisgICAgICAgICdyZW1vdmUnOiBjYWxsRW50cnlNZXRob2QwLAorICAgICAgICAnZ2V0UGFyZW50
JzogY2FsbEVudHJ5TWV0aG9kMCwKKyAgICAgICAgJ2dldEZpbGUnOiBjYWxsRW50cnlNZXRob2Qy
LAorICAgICAgICAnZ2V0RGlyZWN0b3J5JzogY2FsbEVudHJ5TWV0aG9kMiwKKyAgICAgICAgJ3Jl
YWREaXJlY3RvcnknOiBjYWxsUmVhZERpcmVjdG9yeSwKKyAgICB9OworCisgICAgLy8gQnVpbHQt
aW4gZnVuY2l0b25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisgICAgdmFyIHRvU3RyaW5nID0gZnVuY3Rpb24ob2JqKQorICAgIHsKKyAgICAg
ICAgaWYgKG9iaiA9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIHJldHVybiAidW5kZWZpbmVk
IjsKKyAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqID09ICdvYmplY3QnKSB7CisgICAgICAg
ICAgICBpZiAob2JqLmxlbmd0aCAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgICB2YXIg
c3RyaW5nQXJyYXkgPSBbXTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9i
ai5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nQXJyYXkucHVzaCh0b1N0
cmluZyhvYmpbaV0pKTsKKyAgICAgICAgICAgICAgICBzdHJpbmdBcnJheS5zb3J0KCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuICdbJyArIHN0cmluZ0FycmF5LmpvaW4oJyxcbiAnKSArICddJzsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAob2JqLmlzRmlsZSB8fCBvYmouaXNEaXJlY3RvcnkpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gJ0VOVFJZIHtwYXRoOicgKyBvYmouZnVsbFBhdGggKyAn
IG5hbWU6JyArIG9iai5uYW1lICsgKG9iai5pc0ZpbGUgPyAnIHR5cGU6RklMRScgOiAnIHR5cGU6
RElSRUNUT1JZJykgKyAnfSc7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IHJldHVybiBvYmo7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
cmV0dXJuIG9iajsKKyAgICB9CisKKyAgICB0aGlzLkJVSUxUSU5fcHJpbnQgPSBmdW5jdGlvbihh
cmdzKQorICAgIHsKKyAgICAgICAgdGhpcy5sb2codG9TdHJpbmcoYXJnc1swXSkpOworICAgICAg
ICB0aGlzLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICB9CisKKyAgICB0aGlzLkJVSUxUSU5fcmVz
ZXQgPSBmdW5jdGlvbihhcmdzKQorICAgIHsKKyAgICAgICAgdmFyIHNoZWxsID0gdGhpczsKKyAg
ICAgICAgcmVtb3ZlUmVjdXJzaXZlbHkodGhpcy5maWxlU3lzdGVtLnJvb3QsIGZ1bmN0aW9uKCkg
eyBzaGVsbC5ydW5OZXh0U3RhdGVtZW50KCk7IH0sIHRoaXMuYmluZCh0aGlzLmVycm9yQ2FsbGJh
Y2spKTsKKyAgICB9CisKKyAgICB0aGlzLkJVSUxUSU5fQVNTRVJUID0gZnVuY3Rpb24oYXJncykK
KyAgICB7CisgICAgICAgIHZhciBvYmogPSBhcmdzWzBdOworICAgICAgICBpZiAod2luZG93LnNo
b3VsZEJlTm9uTnVsbCkKKyAgICAgICAgICAgIHdpbmRvdy5zaG91bGRCZU5vbk51bGwoJyInICsg
b2JqICsgJyInKTsKKyAgICAgICAgaWYgKCFvYmopCisgICAgICAgICAgICB0aGlzLmVycm9yKCdB
c3NlcnRpb24gZXJyb3I6JyArIG9iaik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
cnVuTmV4dFN0YXRlbWVudCgpOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9BU1NFUlRfR0Ug
PSBmdW5jdGlvbihhcmdzKQorICAgIHsKKyAgICAgICAgdmFyIHZhbHVlMSA9IChhcmdzWzBdIGlu
c3RhbmNlb2YgRGF0ZSkgPyBhcmdzWzBdLmdldFRpbWUoKSA6IGFyZ3NbMF07CisgICAgICAgIHZh
ciB2YWx1ZTIgPSAoYXJnc1sxXSBpbnN0YW5jZW9mIERhdGUpID8gYXJnc1sxXS5nZXRUaW1lKCkg
OiBhcmdzWzFdOworICAgICAgICBpZiAod2luZG93LnNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFs
KQorICAgICAgICAgICAgd2luZG93LnNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCciJyArIHZh
bHVlMSArICciJywgJyInICsgdmFsdWUyICsgJyInKTsKKyAgICAgICAgaWYgKHZhbHVlMSA8IHZh
bHVlMikgeworICAgICAgICAgICAgdGhpcy5lcnJvcignQXNzZXJ0aW9uIGVycm9yOicgKyBhcmdz
WzBdICsgJyA+PSAnICsgYXJnc1sxXSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgfQorCisgICAgdGhpcy5CVUlM
VElOX0FTU0VSVF9FUSA9IGZ1bmN0aW9uKGFyZ3MpCisgICAgeworICAgICAgICB2YXIgdmFsdWUx
ID0gKGFyZ3NbMF0gaW5zdGFuY2VvZiBEYXRlKSA/IGFyZ3NbMF0uZ2V0VGltZSgpIDogYXJnc1sw
XTsKKyAgICAgICAgdmFyIHZhbHVlMiA9IChhcmdzWzFdIGluc3RhbmNlb2YgRGF0ZSkgPyBhcmdz
WzFdLmdldFRpbWUoKSA6IGFyZ3NbMV07CisgICAgICAgIGlmICh3aW5kb3cuc2hvdWxkQmUpCisg
ICAgICAgICAgICB3aW5kb3cuc2hvdWxkQmUoJyInICsgdmFsdWUxICsgJyInLCAnIicgKyB2YWx1
ZTIgKyAnIicpOworICAgICAgICBpZiAodmFsdWUxICE9IHZhbHVlMikgeworICAgICAgICAgICAg
dGhpcy5lcnJvcignQXNzZXJ0aW9uIGVycm9yOicgKyBhcmdzWzBdICsgJyA9PSAnICsgYXJnc1sx
XSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5ydW5OZXh0
U3RhdGVtZW50KCk7CisgICAgfQorCisgICAgLy8gUGFyc2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdGhpcy5F
TlRSWV9NRVRIT0RfUkUgPSAvXlxzKihbQS1aYS16X11cdyopXC4oZ2V0TWV0YWRhdGF8bW92ZVRv
fGNvcHlUb3xyZW1vdmV8Z2V0UGFyZW50fGdldEZpbGV8Z2V0RGlyZWN0b3J5fHJlYWREaXJlY3Rv
cnkpXCgoLiopXCkoPzpccytyYWlzZXM/XHMqXCg/KFxkKylcKT98KS87CisgICAgdGhpcy5BU1NJ
R05NRU5UX1JFID0gL15ccyooW0EtWmEtel9dXHcqKVxzKj1ccyooLiopLzsKKworICAgIHRoaXMu
cGFyc2VBcmdzID0gZnVuY3Rpb24odGV4dCkgeworICAgICAgICB2YXIgYXJncyA9IFtdOworICAg
ICAgICB2YXIgc2hlbGwgPSB0aGlzOworICAgICAgICB2YXIgdmFycyA9IHRoaXMudmFyczsKKyAg
ICAgICAgdGV4dC5yZXBsYWNlKC8oPzooe1tefV0qfSl8KFxkK3wiW14iXSoifCdbXiddKicpfChb
YS16QS1aX11cdyopKD86XFsoXGQrfFsnIl1cdytbJyJdKVxdfFwuKFx3Kyl8KSkoLHwkKVxzKi9n
LCBmdW5jdGlvbihtYXRjaCwgaGFzaCwgaW1tZWRpYXRlLCBzeW1ib2wsIGZpZWxkMSwgZmllbGQy
KSB7CisgICAgICAgICAgICB2YXIgZmllbGQgPSBmaWVsZDEgIT0gdW5kZWZpbmVkID8gZmllbGQx
IDogZmllbGQyOworICAgICAgICAgICAgdmFyIG9iaiA9IHNoZWxsLnZhcnNbc3ltYm9sXTsKKyAg
ICAgICAgICAgIGlmIChzeW1ib2wgJiYgb2JqID09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAg
ICAgIGlmIChzeW1ib2wgPT0gJ251bGwnIHx8IHN5bWJvbCA9PSAndW5kZWZpbmVkJykgeworICAg
ICAgICAgICAgICAgICAgICBvYmogPSBudWxsOworICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIHNoZWxsLmVycm9yKCdVbmRlZmluZWQgc3ltYm9sOicgKyBzeW1i
b2wpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYXJncy5wdXNoKGhhc2ggPyBldmFsKCdvPScgKyBoYXNo
KQorICAgICAgICAgICAgICAgIDogaW1tZWRpYXRlID8gZXZhbChpbW1lZGlhdGUpCisgICAgICAg
ICAgICAgICAgOiBzeW1ib2wgPyAoZmllbGQgIT0gdW5kZWZpbmVkID8gb2JqW2ZpZWxkXSA6IG9i
aikKKyAgICAgICAgICAgICAgICA6IG51bGwpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJu
IGFyZ3M7CisgICAgfQorCisgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50ID0gZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMubGluZUNvdW50ZXIgPCAwIHx8IHRoaXMubGluZUNvdW50
ZXIgPj0gdGhpcy5saW5lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRoaXMubG9nKCdTY3JpcHQg
ZXhlY3V0aW9uIGZpbmlzaGVkLicpOworICAgICAgICAgICAgdGhpcy5lbmRUZXN0Q2FsbGJhY2so
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB2YXIgc3RhdGVtZW50
ID0gdGhpcy5saW5lc1t0aGlzLmxpbmVDb3VudGVyKytdOworICAgICAgICBpZiAoc3RhdGVtZW50
LnNlYXJjaCgvXlxzKigjLip8KSQvKSA9PSAwKSB7CisgICAgICAgICAgICB0aGlzLnJ1bk5leHRT
dGF0ZW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB2YXIg
ZXhwID0gc3RhdGVtZW50OworICAgICAgICB0aGlzLmRlc3RpbmF0aW9uU3ltYm9sID0gbnVsbDsK
KyAgICAgICAgdGhpcy5leHBlY3RlZEVycm9yQ29kZSA9IDA7CisgICAgICAgIHZhciBtYXRjaGVz
ID0gc3RhdGVtZW50Lm1hdGNoKHRoaXMuQVNTSUdOTUVOVF9SRSk7CisgICAgICAgIGlmIChtYXRj
aGVzKSB7CisgICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uU3ltYm9sID0gbWF0Y2hlc1sxXTsK
KyAgICAgICAgICAgIHRoaXMudmFyc1t0aGlzLmRlc3RpbmF0aW9uU3ltYm9sXSA9IG51bGw7Cisg
ICAgICAgICAgICBleHAgPSBtYXRjaGVzWzJdOworICAgICAgICB9CisgICAgICAgIG1hdGNoZXMg
PSBleHAubWF0Y2godGhpcy5FTlRSWV9NRVRIT0RfUkUpOworICAgICAgICBpZiAobWF0Y2hlcykg
eworICAgICAgICAgICAgdmFyIGVudHJ5ID0gc2hlbGwudmFyc1ttYXRjaGVzWzFdXTsKKyAgICAg
ICAgICAgIHZhciBtZXRob2QgPSBtYXRjaGVzWzJdOworICAgICAgICAgICAgaWYgKCFlbnRyeSkg
eworICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IoJ05vIHN1Y2ggc3ltYm9sOicgKyBtYXRjaGVz
WzFdKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlID0gbWF0Y2hlc1s0XTsKKyAgICAgICAgICAgIGVudHJ5
TWV0aG9kc1RhYmxlW21ldGhvZF0odGhpcywgZW50cnksIG1ldGhvZCwgdGhpcy5wYXJzZUFyZ3Mo
bWF0Y2hlc1szXSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1h
dGNoZXMgPSBleHAubWF0Y2goL15ccyooW0EtWmEtel9dXHcrKVwoKC4qKVwpLyk7CisgICAgICAg
IGlmIChtYXRjaGVzICYmIHRoaXNbJ0JVSUxUSU5fJyArIG1hdGNoZXNbMV1dKSB7CisgICAgICAg
ICAgICB0aGlzWydCVUlMVElOXycgKyBtYXRjaGVzWzFdXSh0aGlzLnBhcnNlQXJncyhtYXRjaGVz
WzJdKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdmFyIHZhbHVl
cyA9IHRoaXMucGFyc2VBcmdzKGV4cCk7CisgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09IDEp
IHsKKyAgICAgICAgICAgIGlmICh0aGlzLmRlc3RpbmF0aW9uU3ltYm9sKQorICAgICAgICAgICAg
ICAgIHRoaXMudmFyc1t0aGlzLmRlc3RpbmF0aW9uU3ltYm9sXSA9IHZhbHVlc1swXTsKKyAgICAg
ICAgICAgIHRoaXMucnVuTmV4dFN0YXRlbWVudCgpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIHRoaXMuZXJyb3IoJ1N5bnRheCBlcnJvcjonICsgc3RhdGVtZW50KTsK
KyAgICB9CisKKyAgICAvLyBNaXNjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICB0aGlzLmR1bXBWYXJzID0gZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMudmFycykKKyAgICAg
ICAgICAgIHRoaXMubG9nKCcqKiAnICsga2V5ICsgJzonICsgdGhpcy52YXJzW2tleV0pOworICAg
IH0KKworICAgIHRoaXMuZXJyb3IgPSBmdW5jdGlvbihtc2cpCisgICAgeworICAgICAgICBpZiAo
dGhpcy5saW5lQ291bnRlciA+IDAgJiYgdGhpcy5saW5lQ291bnRlciA8IHRoaXMubGluZXMubGVu
Z3RoKSB7CisgICAgICAgICAgICB0aGlzLmxvZygnRVJST1I6JyArIG1zZyArICcgYXQgbGluZSAn
ICsgdGhpcy5saW5lQ291bnRlcik7CisgICAgICAgICAgICB0aGlzLmxvZygnID4gJyArIHRoaXMu
bGluZXNbdGhpcy5saW5lQ291bnRlciAtIDFdKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICB0aGlzLmxvZygnRVJST1I6JyArIG1zZyk7CisgICAgICAgIHRoaXMuZW5kVGVzdENhbGxiYWNr
KCk7CisgICAgfQorCisgICAgdGhpcy5kZWZhdWx0TG9nRnVuYyA9IGZ1bmN0aW9uKG1zZykKKyAg
ICB7CisgICAgICAgIHZhciBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUn
KTsKKyAgICAgICAgaWYgKCFlbGVtKSB7CisgICAgICAgICAgICBlbGVtID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICBlbGVtLmlkID0gJ2NvbnNvbGUnOworICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtKTsKKyAgICAgICAgfQorICAg
ICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChzcGFuKTsKKyAg
ICAgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsKKyAgICB9Cit9OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42OTA4ZGNiMzQ3NWJhMDExYWYyNzgzZDhkOTVjYzI5NzFmODM3NmNiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9m
cy10ZXN0LXV0aWwuanMKQEAgLTAsMCArMSwxMTEgQEAKK3ZhciBKb2luID0gZnVuY3Rpb24oY2Fs
bGJhY2spCit7CisgICAgdGhpcy5wZW5kaW5nT3BlcmF0aW9ucyA9IDA7CisgICAgdGhpcy5jYWxs
YmFjayA9IGNhbGxiYWNrOworCisgICAgdGhpcy5jYWxsID0gZnVuY3Rpb24oKSB7CisgICAgICAg
IHRoaXMucGVuZGluZ09wZXJhdGlvbnMrKzsKKyAgICB9OworCisgICAgdGhpcy5kb25lID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgIHRoaXMucGVuZGluZ09wZXJhdGlvbnMtLTsKKyAgICAgICAgaWYg
KHRoaXMucGVuZGluZ09wZXJhdGlvbnMgPT0gMCkKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgfTsKK307CisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyB3aGVuIGJvdGggc3BlYyBhbmQgaW1w
bGVtZW50YXRpb24gc3VwcG9ydHMgcmVjdXJzaXZlIHJlbW92ZS4KK2Z1bmN0aW9uIHJlbW92ZVJl
Y3Vyc2l2ZWx5KGRpcmVjdG9yeSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKQorewor
CisgICAgdmFyIFJlbW92ZVJlY3Vyc2l2ZUhlbHBlciA9IGZ1bmN0aW9uKHN1Y2Nlc3NDYWxsYmFj
aywgZXJyb3JDYWxsYmFjaykKKyAgICB7CisgICAgICAgIHRoaXMucmVtb3ZlRGlyTWFwID0ge307
CisgICAgICAgIHRoaXMuc3VjY2Vzc0NhbGxiYWNrID0gc3VjY2Vzc0NhbGxiYWNrOworICAgICAg
ICB0aGlzLmVycm9yQ2FsbGJhY2sgPSBlcnJvckNhbGxiYWNrOworCisgICAgICAgIHRoaXMucmVt
b3ZlUmVjdXJzaXZlbHkgPSBmdW5jdGlvbihkaXJlY3RvcnkpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHRoaXMucmVtb3ZlUmVjdXJzaXZlbHlJbnRlcm5hbChkaXJlY3RvcnkpOworICAgICAgICB9
OworCisgICAgICAgIHRoaXMuaGFzTW9yZUVudHJpZXMgPSBmdW5jdGlvbihoYXNoKQorICAgICAg
ICB7CisgICAgICAgICAgICBmb3IgKGsgaW4gaGFzaCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfTsKKworICAgICAgICB0
aGlzLmJpbmQgPSBmdW5jdGlvbihjYWxsYmFjaykKKyAgICAgICAgeworICAgICAgICAgICAgdmFy
IG9iaiA9IHRoaXM7CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oYXJnKSB7CisgICAgICAg
ICAgICAgICAgY2FsbGJhY2sob2JqLCBhcmcpOworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsK
KworICAgICAgICB0aGlzLnJlbW92ZURpcmVjdG9yeSA9IGZ1bmN0aW9uKGRpcmVjdG9yeSwgcGFy
ZW50RGlyZWN0b3J5KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZGlyZWN0b3J5LmZ1bGxQ
YXRoICE9ICcvJykgeworICAgICAgICAgICAgICAgIC8vIE9rIHRvIHJlbW92ZSB0aGUgcGFyZW50
IGRpcmVjdG9yeS4KKyAgICAgICAgICAgICAgICB2YXIgaGVscGVyID0gdGhpczsKKyAgICAgICAg
ICAgICAgICBkaXJlY3RvcnkucmVtb3ZlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBoZWxwZXIuZW50cnlSZW1vdmVkQ2FsbGJhY2soaGVscGVyLCBwYXJlbnREaXJlY3RvcnksIGRp
cmVjdG9yeSk7CisgICAgICAgICAgICAgICAgfSwgdGhpcy5iaW5kKHRoaXMuRXJyb3JDYWxsYmFj
aykpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVt
b3ZlRGlyTWFwW2RpcmVjdG9yeS5mdWxsUGF0aF07CisgICAgICAgICAgICBpZiAoIXRoaXMuaGFz
TW9yZUVudHJpZXModGhpcy5yZW1vdmVEaXJNYXApICYmIHRoaXMuc3VjY2Vzc0NhbGxiYWNrKQor
ICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzc0NhbGxiYWNrKCk7CisgICAgICAgIH07CisKKyAg
ICAgICAgdGhpcy5lbnRyeVJlbW92ZWRDYWxsYmFjayA9IGZ1bmN0aW9uKGhlbHBlciwgZGlyZWN0
b3J5LCBlbnRyeSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVudHJ5LmlzRGlyZWN0b3J5
KQorICAgICAgICAgICAgICAgIGRlbGV0ZSBoZWxwZXIucmVtb3ZlRGlyTWFwW2VudHJ5LmZ1bGxQ
YXRoXTsKKworICAgICAgICAgICAgaWYgKGRpcmVjdG9yeSkgeworICAgICAgICAgICAgICAgIHZh
ciBkaXJJbmZvID0gaGVscGVyLnJlbW92ZURpck1hcFtkaXJlY3RvcnkuZnVsbFBhdGhdOworICAg
ICAgICAgICAgICAgIGlmICgtLWRpckluZm8uZW50cmllcyA9PSAwICYmIGRpckluZm8uaGFzTW9y
ZSA9PSBmYWxzZSkKKyAgICAgICAgICAgICAgICAgICAgaGVscGVyLnJlbW92ZURpcmVjdG9yeShk
aXJlY3RvcnksIGRpckluZm8ucGFyZW50RGlyZWN0b3J5KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfTsKKworICAgICAgICB0aGlzLnJlbW92ZVJlY3Vyc2l2ZWx5Q2FsbGJhY2sgPSBmdW5jdGlv
bihoZWxwZXIsIGRpcmVjdG9yeSwgZW50cmllcykKKyAgICAgICAgeworICAgICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAg
aGVscGVyLnJlbW92ZURpck1hcFtkaXJlY3RvcnkuZnVsbFBhdGhdLmVudHJpZXMrKzsKKyAgICAg
ICAgICAgICAgICBpZiAoZW50cmllc1tpXS5pc0RpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICAg
ICAgaGVscGVyLnJlbW92ZVJlY3Vyc2l2ZWx5SW50ZXJuYWwoZW50cmllc1tpXSwgZGlyZWN0b3J5
KTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGVudHJ5
ID0gZW50cmllc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgZW50cnkucmVtb3ZlKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGVscGVyLmVudHJ5UmVtb3ZlZENhbGxiYWNr
KGhlbHBlciwgZGlyZWN0b3J5LCBlbnRyeSk7CisgICAgICAgICAgICAgICAgICAgIH0sIGhlbHBl
ci5iaW5kKGhlbHBlci5lcnJvckNhbGxiYWNrKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKGVudHJpZXMubGVuZ3RoID09IDApIHsKKyAgICAgICAg
ICAgICAgICB2YXIgZGlySW5mbyA9IGhlbHBlci5yZW1vdmVEaXJNYXBbZGlyZWN0b3J5LmZ1bGxQ
YXRoXTsKKyAgICAgICAgICAgICAgICBkaXJJbmZvLmhhc01vcmUgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICBpZiAoZGlySW5mby5lbnRyaWVzID09IDApCisgICAgICAgICAgICAgICAgICAgIGhl
bHBlci5yZW1vdmVEaXJlY3RvcnkoZGlyZWN0b3J5LCBkaXJJbmZvLnBhcmVudERpcmVjdG9yeSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgdGhpcy5yZW1vdmVSZWN1cnNp
dmVseUludGVybmFsID0gZnVuY3Rpb24oZGlyZWN0b3J5LCBwYXJlbnREaXJlY3RvcnkpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHRoaXMucmVtb3ZlRGlyTWFwW2RpcmVjdG9yeS5mdWxsUGF0aF0g
PSB7CisgICAgICAgICAgICAgICAgaGFzTW9yZTogdHJ1ZSwKKyAgICAgICAgICAgICAgICBwYXJl
bnREaXJlY3Rvcnk6IHBhcmVudERpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICBlbnRyaWVzOiAw
LAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHZhciBoZWxwZXIgPSB0aGlzOworICAgICAg
ICAgICAgZGlyZWN0b3J5UmVhZGVyID0gZGlyZWN0b3J5LmNyZWF0ZVJlYWRlcigpOworICAgICAg
ICAgICAgZGlyZWN0b3J5UmVhZGVyLnJlYWRFbnRyaWVzKGZ1bmN0aW9uKGVudHJpZXMpIHsKKyAg
ICAgICAgICAgICAgICBoZWxwZXIucmVtb3ZlUmVjdXJzaXZlbHlDYWxsYmFjayhoZWxwZXIsIGRp
cmVjdG9yeSwgZW50cmllcyk7CisgICAgICAgICAgICB9LCB0aGlzLmJpbmQodGhpcy5lcnJvckNh
bGxiYWNrKSk7CisgICAgICAgIH07CisgICAgfTsKKworICAgIHZhciBoZWxwZXIgPSBuZXcgUmVt
b3ZlUmVjdXJzaXZlSGVscGVyKHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAg
aGVscGVyLnJlbW92ZVJlY3Vyc2l2ZWx5KGRpcmVjdG9yeSk7Cit9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTFhYmJiNWQ1OWIyMGJmOGM0MjdmYzdjOTQ3YjkyMDdlNDZkNjJmYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLWNo
YXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM5IEBACitHb3QgRmlsZVN5c3RlbTogVGVzdFNo
ZWxsRmlsZVN5c3RlbQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtY2hhcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYWIzZDQ2
ODI1ZGUxNDZhZDZkOTJmMGQzNWFjNTQ5OWEyOThiNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtY2hhcnMuaHRtbApAQCAtMCwwICsx
LDU5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUt
c3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIHJlc2V0KCkKKworICAgIFJPT1QuZ2V0RmlsZSgn
YVxcYicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYTxiJykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXRGaWxlKCdhPmInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2E6YicpIHJh
aXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYT9iJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRG
aWxlKCdhKmInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2EiYicpIHJhaXNlcyAxMwor
ICAgIFJPT1QuZ2V0RmlsZSgnYXxiJykgcmFpc2VzIDEzCisKKyAgICBST09ULmdldEZpbGUoJ1xc
YWInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJzxhYicpIHJhaXNlcyAxMworICAgIFJP
T1QuZ2V0RmlsZSgnPmFiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCc6YWInKSByYWlz
ZXMgMTMKKyAgICBST09ULmdldEZpbGUoJz9hYicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0Rmls
ZSgnKmFiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCciYWInKSByYWlzZXMgMTMKKyAg
ICBST09ULmdldEZpbGUoJ3xhYicpIHJhaXNlcyAxMworCisgICAgUk9PVC5nZXRGaWxlKCdhYlxc
JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYjwnKSByYWlzZXMgMTMKKyAgICBST09U
LmdldEZpbGUoJ2FiPicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYWI6JykgcmFpc2Vz
IDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYj8nKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUo
J2FiKicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYWIiJykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXRGaWxlKCdhYnwnKSByYWlzZXMgMTMKKworICAgIGFiID0gUk9PVC5nZXRGaWxlKCdh
YicsIHtjcmVhdGU6dHJ1ZX0pCisgICAgYWIuY29weVRvKFJPT1QsICdhXFxiJykgcmFpc2VzIDEz
CisgICAgYWIuY29weVRvKFJPT1QsICdhPGInKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5VG8oUk9P
VCwgJ2E+YicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhST09ULCAnYTpiJykgcmFpc2VzIDEz
CisgICAgYWIuY29weVRvKFJPT1QsICdhP2InKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5VG8oUk9P
VCwgJ2EqYicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhST09ULCAnYSJiJykgcmFpc2VzIDEz
CisgICAgYWIuY29weVRvKFJPT1QsICdhfGInKSByYWlzZXMgMTMKKworICAgICMgTmFtZSBzaG91
bGQgbm90IGNvbnRhaW4gJy8nCisgICAgYWIuY29weVRvKFJPT1QsICdhL2InKSByYWlzZXMgMTMK
KworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwtdGVtcG9y
YXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLW5hbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLW5hbWVzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hODBhNTM4ZTc2YWUxNzgzNDFjMmI1Mjg0ZjNiOTA3YzYzZmI5ZjA3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtbmFtZXMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDIgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxG
aWxlU3lzdGVtCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLW5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1uYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1NmI3M2M5ZTM5
NDRmOWUxOTYxM2I1NTYxZmY2ZmY1NzJlNWUwNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1uYW1lcy5odG1sCkBAIC0wLDAgKzEsNjUg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCB0eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0
ZW0tdGVzdC1zY3JpcHQiPgorCisgICAgcmVzZXQoKQorICAgIGZpbGUgPSBST09ULmdldEZpbGUo
J2FhYScsIHtjcmVhdGU6dHJ1ZX0pCisgICAgZGlyID0gUk9PVC5nZXRGaWxlKCdiYmInLCB7Y3Jl
YXRlOnRydWV9KQorCisgICAgUk9PVC5nZXRGaWxlKCdjb24nKSByYWlzZXMgMTMKKyAgICBST09U
LmdldEZpbGUoJ0NPTicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQ29uJykgcmFpc2Vz
IDEzCisgICAgUk9PVC5nZXRGaWxlKCdjT24udHh0JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRE
aXJlY3RvcnkoJ2JiYi9jb04nKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgncHJuJykg
cmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdQUk4nKSByYWlzZXMgMTMKKyAgICBST09ULmdl
dEZpbGUoJ1BybicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgncFJuLnR4dCcpIHJhaXNl
cyAxMworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdiYmIvcHJOJykgcmFpc2VzIDEzCisKKyAgICBS
T09ULmdldEZpbGUoJ2F1eCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQVVYJykgcmFp
c2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdBdXgnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZp
bGUoJ2FVeC50eHQnKSByYWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgnYmJiL2F1WCcp
IHJhaXNlcyAxMworCisgICAgUk9PVC5nZXRGaWxlKCdudWwnKSByYWlzZXMgMTMKKyAgICBST09U
LmdldEZpbGUoJ05VTCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnTnVsJykgcmFpc2Vz
IDEzCisgICAgUk9PVC5nZXRGaWxlKCduVWwudHh0JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRE
aXJlY3RvcnkoJ2JiYi9udUwnKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgnY29tMScp
IHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQ09NMicpIHJhaXNlcyAxMworICAgIFJPT1Qu
Z2V0RmlsZSgnQ29tNCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnY09NNy5mb28nKSBy
YWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgnYmJiL2NvTTknKSByYWlzZXMgMTMKKwor
ICAgIFJPT1QuZ2V0RmlsZSgnbHB0MScpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnTFBU
MicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnTHB0NCcpIHJhaXNlcyAxMworICAgIFJP
T1QuZ2V0RmlsZSgnbFBUNy5mb28nKSByYWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgn
YmJiL2xwVDknKSByYWlzZXMgMTMKKworICAgICMgTmFtZXMgc2hvdWxkIG5vdCBlbmQgd2l0aCBw
ZXJpb2Qgb3Igd2hpdGVzcGFjZS4KKyAgICBST09ULmdldEZpbGUoJ2ZvbyAnKSByYWlzZXMgMTMK
KyAgICBST09ULmdldEZpbGUoJ2Zvb1xuJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdm
b28uJykgcmFpc2VzIDEzCisgICAgZmlsZS5jb3B5VG8oZGlyLCAnZm9vICcpIHJhaXNlcyAxMwor
ICAgIGZpbGUuY29weVRvKGRpciwgJ2Zvb1x0JykgcmFpc2VzIDEzCisgICAgZmlsZS5jb3B5VG8o
ZGlyLCAnZm9vLicpIHJhaXNlcyAxMworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9U
RU1QTEFURS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9U
RU1QTEFURS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2ZDRhNDIyZTI5NjIwNGZmYjQyZDY4ZmJkNzA5YTg0
NTA3MGQyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
c2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3Jp
cHQtdGVzdHMvcGFyYWxsZWwtb3BlcmF0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9zY3JpcHQtdGVzdHMvcGFyYWxsZWwtb3BlcmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTI5
YmQwNTE0YzcyZjVmM2UxZWUwM2RiZGViMWY2MzUxODkyNTczCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9wYXJhbGxlbC1vcGVyYXRp
b25zLmpzCkBAIC0wLDAgKzEsMTE0IEBACitkZXNjcmlwdGlvbigiVGVzdCBtYWtpbmcgbXVsdGlw
bGUgRmlsZVN5c3RlbSBvcGVyYXRpb25zIGluIHBhcmFsbGVsLiIpOworCit2YXIgZmlsZVN5c3Rl
bSA9IG51bGw7CisKK3ZhciBhOwordmFyIGI7Cit2YXIgYzsKKworZnVuY3Rpb24gZW5kVGVzdCgp
IHsKKyAgICBkZWJ1ZygiRG9uZS4iKTsKKyAgICByZW1vdmVSZWN1cnNpdmVseShmaWxlU3lzdGVt
LnJvb3QpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gZXJyb3JDYWxs
YmFjayhlcnJvcikgeworICAgIGRlYnVnKCJHb3QgZXJyb3I6ICIgKyBlcnJvci5jb2RlKTsKKyAg
ICByZW1vdmVSZWN1cnNpdmVseShmaWxlU3lzdGVtLnJvb3QpOworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKK30KKwordmFyIHBhdGhzID0gW107Cit2YXIgZGlycyA9IDA7CisKK2Z1bmN0aW9uIGVu
dHJpZXNDYWxsYmFjayhlbnRyaWVzKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIHBhdGhzLnB1c2goZW50cmllc1tpXS5mdWxsUGF0aCk7
CisgICAgICAgIGlmIChlbnRyaWVzW2ldLmlzRGlyZWN0b3J5KQorICAgICAgICAgICAgZGlycysr
OworICAgIH0KKyAgICBpZiAoZW50cmllcy5sZW5ndGggPT0gMCkgeworICAgICAgICBwYXRocy5z
b3J0KCk7CisgICAgICAgIHNob3VsZEJlKCciJyArIHBhdGhzLmpvaW4oJywnKSArICciJywgJyIv
YSwvYjIsL2MsL2QsL2UiJyk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9Cit9CisKK2Z1bmN0
aW9uIHZlcmlmeSgpIHsKKyAgICBkZWJ1ZygiVmVyaWZ5aW5nIHRoZSBGaWxlU3lzdGVtIHN0YXR1
cy4iKTsKKyAgICB2YXIgcmVhZGVyID0gZmlsZVN5c3RlbS5yb290LmNyZWF0ZVJlYWRlcigpOwor
ICAgIHJlYWRlci5yZWFkRW50cmllcyhlbnRyaWVzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwor
fQorCitmdW5jdGlvbiBwYXJhbGxlbFRlc3QyKCkgeworICAgIGRlYnVnKCJTdGFydGluZyBwYXJh
bGxlbCB0ZXN0IHN0YWdlIDIuIik7CisKKyAgICB2YXIgam9pbiA9IG5ldyBKb2luKHZlcmlmeSk7
CisgICAgdmFyIGRvbmUgPSBmdW5jdGlvbigpIHsgam9pbi5kb25lKCk7IH07CisKKyAgICBqb2lu
LmNhbGwoKTsKKyAgICBhLmNvcHlUbyhiLCAndG1wJywgZG9uZSwgZXJyb3JDYWxsYmFjayk7CisK
KyAgICBqb2luLmNhbGwoKTsKKyAgICBhLmdldE1ldGFkYXRhKGRvbmUsIGVycm9yQ2FsbGJhY2sp
OworCisgICAgam9pbi5jYWxsKCk7CisgICAgYi5nZXRQYXJlbnQoZG9uZSwgZXJyb3JDYWxsYmFj
ayk7CisKKyAgICBqb2luLmNhbGwoKTsKKyAgICBiLm1vdmVUbyhmaWxlU3lzdGVtLnJvb3QsICdi
MicsIGRvbmUsIGVycm9yQ2FsbGJhY2spOworCisgICAgam9pbi5jYWxsKCk7CisgICAgYy5jb3B5
VG8oZmlsZVN5c3RlbS5yb290LCAnZCcsIGRvbmUsIGVycm9yQ2FsbGJhY2spOworCisgICAgam9p
bi5jYWxsKCk7CisgICAgZmlsZVN5c3RlbS5yb290LmdldEZpbGUoJ2UnLCB7Y3JlYXRlOnRydWV9
LCBkb25lLCBlcnJvckNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gcGFyYWxsZWxUZXN0MSgpIHsK
KyAgICBkZWJ1ZygiU3RhcnRpbmcgcGFyYWxsZWwgdGVzdCBzdGFnZSAxLiIpOworCisgICAgdmFy
IGpvaW4gPSBuZXcgSm9pbihwYXJhbGxlbFRlc3QyKTsKKyAgICB2YXIgcm9vdCA9IGZpbGVTeXN0
ZW0ucm9vdDsKKworICAgIGpvaW4uY2FsbCgpOworICAgIHJvb3QuZ2V0RmlsZSgnYScsIHtjcmVh
dGU6dHJ1ZX0sIGZ1bmN0aW9uKGVudHJ5KSB7CisgICAgICAgIGEgPSBlbnRyeTsKKyAgICAgICAg
am9pbi5kb25lKCk7CisgICAgfSwgZXJyb3JDYWxsYmFjayk7CisKKyAgICBqb2luLmNhbGwoKTsK
KyAgICByb290LmdldERpcmVjdG9yeSgnYicsIHtjcmVhdGU6dHJ1ZX0sIGZ1bmN0aW9uKGVudHJ5
KSB7CisgICAgICAgIGIgPSBlbnRyeTsKKyAgICAgICAgam9pbi5kb25lKCk7CisgICAgfSwgZXJy
b3JDYWxsYmFjayk7CisKKyAgICBqb2luLmNhbGwoKTsKKyAgICByb290LmdldERpcmVjdG9yeSgn
YycsIHtjcmVhdGU6dHJ1ZX0sIGZ1bmN0aW9uKGVudHJ5KSB7CisgICAgICAgIGMgPSBlbnRyeTsK
KyAgICAgICAgam9pbi5kb25lKCk7CisgICAgfSwgZXJyb3JDYWxsYmFjayk7Cit9CisKK2lmICh3
aW5kb3cucmVxdWVzdEZpbGVTeXN0ZW0pIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisK
KyAgICB2YXIgam9pbiA9IG5ldyBKb2luKHBhcmFsbGVsVGVzdDEpOworCisgICAgam9pbi5jYWxs
KCk7CisgICAgdmFyIG9iaiA9IHRoaXM7CisgICAgcmVxdWVzdEZpbGVTeXN0ZW0od2luZG93LlRF
TVBPUkFSWSwgMTAwLCBmdW5jdGlvbihmcykgeworICAgICAgICBkZWJ1ZygiR290IEZpbGVTeXN0
ZW06IiArIGZzLm5hbWUpOworICAgICAgICBmaWxlU3lzdGVtID0gZnM7CisgICAgICAgIHJlbW92
ZVJlY3Vyc2l2ZWx5KGZpbGVTeXN0ZW0ucm9vdCwgZnVuY3Rpb24oKXsgam9pbi5kb25lKCk7IH0s
IGVycm9yQ2FsbGJhY2spOworICAgIH0sIGVycm9yQ2FsbGJhY2spOworCisgICAgZGVidWcoInJl
cXVlc3RlZCBGaWxlU3lzdGVtLiIpOworCit9IGVsc2UKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJl
cXVpcmVzIEZpbGVTeXN0ZW0gQVBJIHN1cHBvcnQuIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Njcmlw
dC10ZXN0cy9zaW1wbGUtcGVyc2lzdGVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9zY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBhZGVjZWE3
YzI3ZWRhNzgwZTE2NDY4NmE5NzVkMmVhMThlMjU4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQuanMK
QEAgLTAsMCArMSwyNyBAQAorZGVzY3JpcHRpb24oIlBlcnNpc3RlbnQgRmlsZVN5c3RlbSBzaW1w
bGUgdGVzdC4iKTsKKworZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhmaWxlU3lzdGVtKSB7CisgICAg
ZGVidWcoIkVycm9yIG9jY3VyZWQgZHVyaW5nIHJlcXVlc3RpbmcgUGVyc2lzdGVudCBGaWxlU3lz
dGVtOiIgKyBmaWxlU3lzdGVtLm5hbWUpOworICAgIHNob3VsZEJlVHJ1ZSgiZmFsc2UiKTsKKwor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrKGZp
bGVTeXN0ZW0pIHsKKyAgICBkZWJ1ZygiU3VjY2Vzc2Z1bGx5IG9idGFpbmVkIFBlcnNpc3RlbnQg
RmlsZVN5c3RlbToiICsgZmlsZVN5c3RlbS5uYW1lKTsKKyAgICBzaG91bGRCZVRydWUoInRydWUi
KTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0Rmls
ZVN5c3RlbSkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIHJlcXVlc3RGaWxl
U3lzdGVtKHdpbmRvdy5URU1QT1JBUlksIDEwMCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxi
YWNrKTsKK30gZWxzZQorICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBB
UEkgc3VwcG9ydC4iKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS10ZW1w
b3JhcnkuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBs
ZS10ZW1wb3JhcnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY1ZTUwNmE1NWQ1YjAwNTg3YzBiNjMwMmEzNTE3
MWM4NDI5OGUwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9zY3JpcHQtdGVzdHMvc2ltcGxlLXRlbXBvcmFyeS5qcwpAQCAtMCwwICsxLDI4IEBACitkZXNj
cmlwdGlvbigiVGVtcG9yYXJ5IEZpbGVTeXN0ZW0gc2ltcGxlIHRlc3QuIik7CisKK2Z1bmN0aW9u
IGVycm9yQ2FsbGJhY2soZmlsZVN5c3RlbSkgeworICAgIGRlYnVnKCJFcnJvciBvY2N1cmVkIGR1
cmluZyByZXF1ZXN0aW5nIFRlbXBvcmFyeSBGaWxlU3lzdGVtOiIgKyBmaWxlU3lzdGVtLm5hbWUp
OworICAgIHNob3VsZEJlVHJ1ZShmYWxzZSk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9
CisKK2Z1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjayhmaWxlU3lzdGVtKSB7CisgICAgZGVidWcoIlN1
Y2Nlc3NmdWxseSBvYnRhaW5lZCBUZW1wb3JhcnkgRmlsZVN5c3RlbToiICsgZmlsZVN5c3RlbS5u
YW1lKTsKKyAgICBzaG91bGRCZVRydWUodHJ1ZSk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
Cit9CisKK2lmICh3aW5kb3cucmVxdWVzdEZpbGVTeXN0ZW0pIHsKKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisKKyAgICByZXF1ZXN0RmlsZVN5c3RlbSh3aW5kb3cuUEVSU0lTVEVOVCwgMTAw
LCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworfSBlbHNlCisgICAgZGVidWcoIlRo
aXMgdGVzdCByZXF1aXJlcyBGaWxlU3lzdGVtIEFQSSBzdXBwb3J0LiIpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL3NpbXBsZS1wZXJzaXN0ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y4
ZjdmYjhhYzYzZmM0MTlmMGMxNDY4Nzg4NDc5M2Y5MWU0N2E0NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorUGVyc2lzdGVudCBGaWxlU3lzdGVtIHNpbXBsZSB0ZXN0Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3VjY2Vzc2Z1bGx5IG9idGFpbmVkIFBl
cnNpc3RlbnQgRmlsZVN5c3RlbTpUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHRydWUgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1wZXJzaXN0ZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjgyMGJjZmQzYmZlNGY3NjEwYjE4NWZiOWQ0MjRhZTI5ZGQwMWNmNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lz
dGVudC5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBs
ZS10ZW1wb3JhcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Np
bXBsZS10ZW1wb3JhcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjZjY5NDU5YmE3ZDZkODVk
ZmFhNTE2NTE0NDNiZDRhYTIyZTI2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MiBAQAorVGVtcG9yYXJ5IEZpbGVTeXN0ZW0gc2ltcGxlIHRlc3QuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitTdWNjZXNzZnVsbHkgb2J0YWluZWQgVGVtcG9yYXJ5IEZpbGVTeXN0
ZW06VGVzdFNoZWxsRmlsZVN5c3RlbQorV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBh
cmd1bWVudHMKK1BBU1MgdHJ1ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL3NpbXBsZS10ZW1wb3JhcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9zaW1wbGUtdGVtcG9yYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTljYzk4MDFjNDk5Y2RhOGZhYzYy
YThlOTVlOTcxNGM4Y2Q5MDcyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9zaW1wbGUtdGVtcG9yYXJ5Lmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zaW1wbGUtdGVtcG9yYXJ5
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
aW5kZXggYTA4ZTQxZGM5MzMwNTU0YzUyNGYyM2ZjMzVlYjUyOGJkYjM2NjkyNC4uNzAzZTgzOWZi
MGNiYWUxYzliODc3MTUzZWIxNGI1YzVjOWE0YmI0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKQEAgLTU5MjcsMyArNTkyNyw2IEBAIHdlYnNvY2tldC90ZXN0cwogCiAjIHZpZXdwb3J0IG1l
dGEgdGFnIHN1cHBvcnQKIGZhc3Qvdmlld3BvcnQKKworIyBGaWxlU3lzdGVtIEFQSSBpcyBub3Qg
ZW5hYmxlZC4KK2Zhc3QvZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBi
OGNhNTI4MWQxNDA5MmMxY2UzMmU5YjcxOWE5MjRmNDM0ZTZhYTI0Li5hODRiZDIyNTdiNzdlYzJi
NGM0ZGUzMWUwM2JhN2EyYWRmMTIzNmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAt
MzEwLDMgKzMxMCw2IEBAIGZhc3QvZmlsZXMvd29ya2VycwogCiAjIHZpZXdwb3J0IG1ldGEgdGFn
IHN1cHBvcnQKIGZhc3Qvdmlld3BvcnQKKworIyBGaWxlU3lzdGVtIEFQSSBpcyBub3QgZW5hYmxl
ZC4KK2Zhc3QvZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggZjhhYmVlNzEw
MDQ5N2YzM2E4YWJhZjVkNzkxNGI4OTYzOTg2NTk4Yi4uZmM5NmRhNDg3Y2QzN2Q3MTA2MWEzNDcz
N2JiYWZkNjI1YWY0NmVjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC01NDQ4LDMgKzU0
NDgsNiBAQCBmYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTEyNy5odG1sCiBmYXN0L3ZpZXdwb3J0L3Zp
ZXdwb3J0LTYuaHRtbAogZmFzdC92aWV3cG9ydC92aWV3cG9ydC00NS5odG1sCiBmYXN0L3ZpZXdw
b3J0L3ZpZXdwb3J0LTU4Lmh0bWwKKworIyBGaWxlU3lzdGVtIEFQSSBpcyBub3QgZW5hYmxlZC4K
K2Zhc3QvZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA4NDYwY2Y0MDE5
MDcwMzE4ZDYyYjM2NTQyZDU1YWZkMWQ2NDM5OWM4Li45YzVmYjRmN2RhNGFjNWMxNTQwMDJhMjZl
NDgyNzI4MmZhYjQzMjM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTgzLDMgKzk4
Myw2IEBAIGZ1bGxzY3JlZW4vCiAKICMgdmlld3BvcnQgbWV0YSB0YWcgc3VwcG9ydAogZmFzdC92
aWV3cG9ydAorCisjIEZpbGVTeXN0ZW0gQVBJIGlzIG5vdCBlbmFibGVkLgorZmFzdC9maWxlc3lz
dGVtCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67986</attachid>
            <date>2010-09-17 18:17:24 -0700</date>
            <delta_ts>2010-09-17 18:20:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44920-20100917181723.patch</filename>
            <type>text/plain</type>
            <size>71969</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZTQ4NjRkM2ZmNGI4ZTAxZGMzNDU3NzVjMTQwY2I2NDdjNWRmMTRjLi5iNjJkYzBl
YjA0OWQ4M2I3YWZhMGFjYzI4ZTgzNzMzMjVjZjdiMjRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAK
KzIwMTAtMDktMTYgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVz
dHMgZm9yIEZpbGVTeXN0ZW0gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDkyMAorCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWNvcHkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRh
ZGF0YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1nZXQt
cGFyZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLW1vdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGly
ZWN0b3J5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3Zl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRp
b25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3BhcmFs
bGVsLW9wZXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jl
cXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3RlbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMt
dHdpY2UtdGVtcG9yYXJ5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9y
ZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanM6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwuanM6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLWNoYXJzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtY2hhcnMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1uYW1lcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL1RFTVBM
QVRFLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMv
cGFyYWxsZWwtb3BlcmF0aW9ucy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVt
L3NjcmlwdC10ZXN0cy9zaW1wbGUtcGVyc2lzdGVudC5qczogQWRkZWQuCisgICAgICAgICogZmFz
dC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9zaW1wbGUtdGVtcG9yYXJ5LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3NpbXBsZS10ZW1wb3JhcnktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFy
eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogTm90IHN1cHBv
cnRlZCBvbiBndGsgeWV0LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBOb3Qgc3Vw
cG9ydGVkIG9uIG1hYyB5ZXQuCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDogTm90IHN1
cHBvcnRlZCBvbiBxdCB5ZXQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IE5vdCBz
dXBwb3J0ZWQgb24gd2luIHlldC4KKwogMjAxMC0wOS0xNyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJlY2NlNzBhMjJkMzM3NWI5NmFjODQwM2E3NWUzODFiYWQzZGQwMGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzMSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorKiBDb3B5aW5nIGFu
IGVudHJ5IHRvIHRoZSBzYW1lIGRpcmVjdG9yeQorKiBDb3B5aW5nIGVudHJpZXMgdG8gYSBkaWZm
ZXJlbnQgZGlyZWN0b3J5CisqIENvcHlpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzCisq
IENvcHlpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJlY3Rvcnkgd2l0aCB0aGUgc2FtZSBuYW1l
CitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMi
CitQQVNTICIxMyIgaXMgIjEzIgorKiBUcnlpbmcgdG8gY29weSBub24tZXhpc3RlbnQgZW50cmll
cworUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorUEFT
UyAiOCIgaXMgIjgiCisqIENvcHlpbmcgZW50cmllcyB0byBhIG5vbi1leGlzdGVudCBkaXJlY3Rv
cnkKK1BBU1MgIjgiIGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKKyog
Q29weWluZyBlbnRyaWVzIHRvIGl0cyBjaGlsZAorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEz
IiBpcyAiMTMiCisqIENvcHlpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbgorUEFTUyAiMiIg
aXMgIjIiCitQQVNTICIyIiBpcyAiMiIKK1BBU1MgIjIiIGlzICIyIgorUEFTUyAiMiIgaXMgIjIi
CitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLWNvcHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmY1OWRhNWM3Yjg1YzU5OTYxMzU4ZTMzZWQzZjAz
YzVmM2VlZmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLWNvcHkuaHRtbApAQCAtMCwwICsxLDE0NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtZmlsZS1z
eXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKyAgICByZXNl
dCgpCisKKyAgICBuYW1lMSA9ICdhJworICAgIG5hbWUyID0gJ2InCisgICAgbmFtZTMgPSAnYycK
KyAgICBuYW1lNCA9ICdkJworICAgIGNyZWF0ZV9mbGFnID0ge2NyZWF0ZTp0cnVlfQorCisgICAg
cHJpbnQoJyogQ29weWluZyBhbiBlbnRyeSB0byB0aGUgc2FtZSBkaXJlY3RvcnknKQorCisgICAg
IyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFy
ZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEs
IGNyZWF0ZV9mbGFnKQorICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9m
bGFnKQorCisgICAgIyBEaXJlY3RvcnkKKyAgICBjb3BpZWQgPSBkaXIxLmNvcHlUbyhwYXJlbnQs
IG5hbWUzKQorICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpCisgICAgcGFyZW50LmdldERp
cmVjdG9yeShuYW1lMykKKworICAgICMgRmlsZQorICAgIGNvcGllZCA9IGZpbGUyLmNvcHlUbyhw
YXJlbnQsIG5hbWU0KQorICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpCisgICAgcGFyZW50
LmdldERpcmVjdG9yeShuYW1lMykKKworICAgIHByaW50KCcqIENvcHlpbmcgZW50cmllcyB0byBh
IGRpZmZlcmVudCBkaXJlY3RvcnknKQorCisgICAgIyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBk
aXIxID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIgPSBS
T09ULmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQzID0gZGlyMS5n
ZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkNCA9IGRpcjEuZ2V0Rmls
ZShuYW1lNCwgY3JlYXRlX2ZsYWcpCisKKyAgICAjIERpcmVjdG9yeQorICAgIGNvcGllZCA9IGNo
aWxkMy5jb3B5VG8oZGlyMiwgbmFtZTEpCisgICAgZGlyMS5nZXREaXJlY3RvcnkobmFtZTMpCisg
ICAgZGlyMi5nZXREaXJlY3RvcnkobmFtZTEpCisKKyAgICAjIEZpbGUKKyAgICBjb3BpZWQgPSBj
aGlsZDQuY29weVRvKGRpcjIsIG5hbWUyKQorICAgIGRpcjEuZ2V0RmlsZShuYW1lNCkKKyAgICBk
aXIyLmdldEZpbGUobmFtZTIpCisKKyAgICBwcmludCgnKiBDb3B5aW5nIGVudHJpZXMgdG8gd2l0
aCBlbXB0eSBuYW1lcycpCisKKyAgICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAgIGRpcjEgPSBS
T09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyMiA9IFJPT1QuZ2V0
RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVj
dG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQ0ID0gZGlyMS5nZXRGaWxlKG5hbWU0
LCBjcmVhdGVfZmxhZykKKworICAgICMgRGlyZWN0b3J5CisgICAgY29waWVkID0gY2hpbGQzLmNv
cHlUbyhkaXIyLCBudWxsKQorICAgIGRpcjEuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorICAg
IGRpcjIuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorCisgICAgIyBGaWxlCisgICAgY29waWVk
ID0gY2hpbGQ0LmNvcHlUbyhkaXIyLCBudWxsKQorICAgIGRpcjEuZ2V0RmlsZShjaGlsZDQubmFt
ZSkKKyAgICBkaXIyLmdldEZpbGUoY2hpbGQ0Lm5hbWUpCisKKyAgICBwcmludCgnKiBDb3B5aW5n
IGVudHJpZXMgdG8gdGhlIHNhbWUgZGlyZWN0b3J5IHdpdGggdGhlIHNhbWUgbmFtZScpCisKKyAg
ICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdw
YXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1l
MSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRl
X2ZsYWcpCisKKyAgICBkaXIxLmNvcHlUbyhwYXJlbnQsIG51bGwpIHJhaXNlcyAxMworICAgIGRp
cjEuY29weVRvKHBhcmVudCwgbmFtZTEpIHJhaXNlcyAxMworICAgIGZpbGUyLmNvcHlUbyhwYXJl
bnQsIG51bGwpIHJhaXNlcyAxMworICAgIGZpbGUyLmNvcHlUbyhwYXJlbnQsIG5hbWUyKSByYWlz
ZXMgMTMKKworICAgIHByaW50KCcqIFRyeWluZyB0byBjb3B5IG5vbi1leGlzdGVudCBlbnRyaWVz
JykKKworICAgIG5vbmV4aXN0X2RpciA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0
ZV9mbGFnKQorICAgIG5vbmV4aXN0X2ZpbGUgPSBwYXJlbnQuZ2V0RmlsZShuYW1lNCwgY3JlYXRl
X2ZsYWcpCisgICAgbm9uZXhpc3RfZGlyLnJlbW92ZSgpCisgICAgbm9uZXhpc3RfZmlsZS5yZW1v
dmUoKQorCisgICAgUk9PVC5nZXREaXJlY3Rvcnkobm9uZXhpc3RfZGlyLmZ1bGxQYXRoKSByYWlz
ZXMgOAorICAgIFJPT1QuZ2V0RmlsZShub25leGlzdF9maWxlLmZ1bGxQYXRoKSByYWlzZXMgOAor
CisgICAgbm9uZXhpc3RfZGlyLmNvcHlUbyhkaXIxLCBuYW1lMikgcmFpc2VzIDgKKyAgICBub25l
eGlzdF9maWxlLmNvcHlUbyhkaXIyLCBuYW1lMSkgcmFpc2VzIDgKKworICAgIHByaW50KCcqIENv
cHlpbmcgZW50cmllcyB0byBhIG5vbi1leGlzdGVudCBkaXJlY3RvcnknKQorCisgICAgUk9PVC5n
ZXREaXJlY3Rvcnkobm9uZXhpc3RfZGlyLmZ1bGxQYXRoKSByYWlzZXMgOAorICAgIFJPT1QuZ2V0
RGlyZWN0b3J5KGRpcjEuZnVsbFBhdGgpCisgICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRo
KQorCisgICAgZGlyMS5jb3B5VG8obm9uZXhpc3RfZGlyLCBuYW1lMSkgcmFpc2VzIDgKKyAgICBm
aWxlMi5jb3B5VG8obm9uZXhpc3RfZGlyLCBuYW1lMykgcmFpc2VzIDgKKworICAgIHByaW50KCcq
IENvcHlpbmcgZW50cmllcyB0byBpdHMgY2hpbGQnKQorCisgICAgUk9PVC5jb3B5VG8oZGlyMSkg
cmFpc2VzIDEzCisgICAgcGFyZW50LmNvcHlUbyhkaXIxKSByYWlzZXMgMTMKKworICAgIHByaW50
KCcqIENvcHlpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbicpCisKKyAgICBkaXI0ID0gcGFy
ZW50LmdldERpcmVjdG9yeShuYW1lNCwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQxID0gZGlyNC5n
ZXRGaWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDIgPSBkaXI0LmdldERpcmVjdG9y
eShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQzID0gY2hpbGQyLmdldEZpbGUobmFtZTMs
IGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkNCA9IGNoaWxkMi5nZXREaXJlY3RvcnkobmFtZTQsIGNy
ZWF0ZV9mbGFnKQorCisgICAgZW50cmllczEgPSBkaXI0LnJlYWREaXJlY3RvcnkoKQorICAgIGVu
dHJpZXMyID0gY2hpbGQyLnJlYWREaXJlY3RvcnkoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVz
MS5sZW5ndGgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJpZXMyLmxlbmd0aCkKKworICAgIGRpcjRf
Y29weSA9IGRpcjQuY29weVRvKFJPT1QsICdkaXI0X2NvcHknKQorICAgIGNoaWxkMl9jb3B5ID0g
ZGlyNF9jb3B5LmdldERpcmVjdG9yeShuYW1lMikKKworICAgIGVudHJpZXMxX2NvcHkgPSBkaXI0
X2NvcHkucmVhZERpcmVjdG9yeSgpCisgICAgZW50cmllczJfY29weSA9IGNoaWxkMl9jb3B5LnJl
YWREaXJlY3RvcnkoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMV9jb3B5Lmxlbmd0aCkKKyAg
ICBBU1NFUlRfRVEoMiwgZW50cmllczJfY29weS5sZW5ndGgpCisKKyAgICBwYXJlbnQuZ2V0RGly
ZWN0b3J5KGRpcjQuZnVsbFBhdGgpCisgICAgZGlyNC5nZXRGaWxlKG5hbWUxKQorICAgIGRpcjQu
Z2V0RGlyZWN0b3J5KG5hbWUyKQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
ZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xY2M0MmIxYTU4N2NkYmJlZGU3ZWRiMzkzOTVjNjAxMTBiZjhl
YTRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdl
dC1lbnRyeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorR290IEZpbGVTeXN0ZW06IFRl
c3RTaGVsbEZpbGVTeXN0ZW0KKyogQ3JlYXRpbmcgdG9wLWxldmVsIGRpcmVjdG9yaWVzIGFuZCBm
aWxlcworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQ
QVNTICJhIiBpcyAiYSIKK1BBU1MgImIiIGlzICJiIgorUEFTUyAidHJ1ZSIgaXMgInRydWUiCitQ
QVNTICJmYWxzZSIgaXMgImZhbHNlIgorUEFTUyAiZmFsc2UiIGlzICJmYWxzZSIKK1BBU1MgInRy
dWUiIGlzICJ0cnVlIgorKiBDcmVhdGluZyBuZXN0ZWQgZGlyZWN0b3JpZXMgYW5kIGZpbGVzCitQ
QVNTICIvYS9iIiBpcyAiL2EvYiIKK1BBU1MgIi9hL2MiIGlzICIvYS9jIgorKiBDcmVhdGluZyBo
ZWF2aWx5IG5lc3RlZCBlbnRyaWVzCitQQVNTICIvYS9iL2MvZC9hIiBpcyAiL2EvYi9jL2QvYSIK
K1BBU1MgImEiIGlzICJhIgorKiBHZXR0aW5nIGV4aXN0aW5nIGVudHJpZXMKK1BBU1MgIi9wYXJl
bnQvYSIgaXMgIi9wYXJlbnQvYSIKK1BBU1MgIi9wYXJlbnQvYiIgaXMgIi9wYXJlbnQvYiIKKyog
R2V0dGluZyBmaWxlcy9kaXJlY3RvcmllcyB3aXRoIGZ1bGwgcGF0aHMuCisqIEdldHRpbmcgZmls
ZXMvZGlyZWN0b3JpZXMgd2l0aCByZWxhdGl2ZSBwYXRocy4KKyogVHJ5aW5nIHRvIGdldC9jcmVh
dGUgZW50cmllcyBhdCBub24tZXhpc3RlbnQgcGF0aAorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4
IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCisqIENhbGxpbmcgZ2V0
RmlsZSBmb3IgYSBkaXJlY3RvcnksIGdldERpcmVjdG9yeSBmb3IgYSBmaWxlCitQQVNTICIxMSIg
aXMgIjExIgorUEFTUyAiMTEiIGlzICIxMSIKK1BBU1MgIjExIiBpcyAiMTEiCitQQVNTICIxMSIg
aXMgIjExIgorKiBUcnlpbmcgdG8gY3JlYXRlIGVudHJpZXMgd2l0aCBleGNsdXNpdmUgZmxhZwor
UEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgor
UEFTUyAiMTMiIGlzICIxMyIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtZW50cnkuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtZW50cnkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2Nm
MGVjY2FkYTM3NWE5MDhjMGM0ZjcwN2Q0MmU0YmZlZWY4YzVjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5odG1sCkBAIC0wLDAgKzEs
MTQ0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmls
ZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorCisgICAgbmFtZTEgPSAnYScKKyAgICBuYW1lMiA9ICdi
JworICAgIG5hbWUzID0gJ2MnCisgICAgbmFtZTQgPSAnZCcKKworICAgIGNyZWF0ZV9mbGFnID0g
e2NyZWF0ZTp0cnVlfQorICAgIGV4Y2x1c2l2ZV9mbGFnID0ge2NyZWF0ZTp0cnVlLCBleGNsdXNp
dmU6dHJ1ZX0KKworICAgIHByaW50KCcqIENyZWF0aW5nIHRvcC1sZXZlbCBkaXJlY3RvcmllcyBh
bmQgZmlsZXMnKQorCisgICAgcmVzZXQoKQorICAgIGRpcjEgPSBST09ULmdldERpcmVjdG9yeShu
YW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBST09ULmdldEZpbGUobmFtZTIsIGNyZWF0
ZV9mbGFnKQorICAgIEFTU0VSVF9FUShuYW1lMSwgZGlyMS5uYW1lKQorICAgIEFTU0VSVF9FUShu
YW1lMiwgZmlsZTIubmFtZSkKKyAgICBBU1NFUlRfRVEodHJ1ZSwgZGlyMS5pc0RpcmVjdG9yeSkK
KyAgICBBU1NFUlRfRVEoZmFsc2UsIGRpcjEuaXNGaWxlKQorICAgIEFTU0VSVF9FUShmYWxzZSwg
ZmlsZTIuaXNEaXJlY3RvcnkpCisgICAgQVNTRVJUX0VRKHRydWUsIGZpbGUyLmlzRmlsZSkKKwor
ICAgIHByaW50KCcqIENyZWF0aW5nIG5lc3RlZCBkaXJlY3RvcmllcyBhbmQgZmlsZXMnKQorCisg
ICAgZGlyMV9kaXIyID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAg
IGRpcjFfZmlsZTMgPSBkaXIxLmdldEZpbGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorICAgIEFTU0VS
VF9FUSgnL2EvYicsIGRpcjFfZGlyMi5mdWxsUGF0aCkKKyAgICBBU1NFUlRfRVEoJy9hL2MnLCBk
aXIxX2ZpbGUzLmZ1bGxQYXRoKQorCisgICAgcHJpbnQoJyogQ3JlYXRpbmcgaGVhdmlseSBuZXN0
ZWQgZW50cmllcycpCisKKyAgICByZXNldCgpCisgICAgbmVzdGVkMSA9IFJPT1QuZ2V0RGlyZWN0
b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBuZXN0ZWQyID0gbmVzdGVkMS5nZXREaXJlY3Rv
cnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIG5lc3RlZDMgPSBuZXN0ZWQyLmdldERpcmVjdG9y
eShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgbmVzdGVkNCA9IG5lc3RlZDMuZ2V0RGlyZWN0b3J5
KG5hbWU0LCBjcmVhdGVfZmxhZykKKyAgICBuZXN0ZWQ1ID0gbmVzdGVkNC5nZXRGaWxlKG5hbWUx
LCBjcmVhdGVfZmxhZykKKyAgICBBU1NFUlRfRVEoJy9hL2IvYy9kL2EnLCBuZXN0ZWQ1LmZ1bGxQ
YXRoKQorICAgIEFTU0VSVF9FUShuYW1lMSwgbmVzdGVkNS5uYW1lKQorCisgICAgcHJpbnQoJyog
R2V0dGluZyBleGlzdGluZyBlbnRyaWVzJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBS
T09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVu
dC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUyID0gcGFyZW50Lmdl
dEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAgZGlyMV8yID0gcGFyZW50LmdldERpcmVj
dG9yeShuYW1lMSkKKyAgICBmaWxlMl8yID0gcGFyZW50LmdldEZpbGUobmFtZTIpCisgICAgQVNT
RVJUX0VRKGRpcjEuZnVsbFBhdGgsIGRpcjFfMi5mdWxsUGF0aCkKKyAgICBBU1NFUlRfRVEoZmls
ZTIuZnVsbFBhdGgsIGZpbGUyXzIuZnVsbFBhdGgpCisKKyAgICBwcmludCgnKiBHZXR0aW5nIGZp
bGVzL2RpcmVjdG9yaWVzIHdpdGggZnVsbCBwYXRocy4nKQorCisgICAgcmVzZXQoKQorICAgIHBh
cmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIx
ID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyMiA9IHBh
cmVudC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAgZGlyID0gUk9PVC5n
ZXREaXJlY3RvcnkoJy9wYXJlbnQvYS9hJywgY3JlYXRlX2ZsYWcpCisgICAgZmlsZSA9IFJPT1Qu
Z2V0RmlsZSgnL3BhcmVudC9hL2InLCBjcmVhdGVfZmxhZykKKyAgICBkaXIxLmdldERpcmVjdG9y
eSgnYScpCisgICAgZGlyMS5nZXRGaWxlKCdiJykKKworICAgICMgVGhlIGVudHJ5J3MgcGF0aCBt
dXN0IG5vdCBiZSB1c2VkIGlmIHRoZSBnaXZlbiBwYXRoIGlzIGEgZnVsbCBwYXRoLgorICAgIGRp
ciA9IGRpcjIuZ2V0RGlyZWN0b3J5KCcvcGFyZW50L2EvYycsIGNyZWF0ZV9mbGFnKQorICAgIGZp
bGUgPSBkaXIyLmdldEZpbGUoJy9wYXJlbnQvYS9kJywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMS5n
ZXREaXJlY3RvcnkoJ2MnKQorICAgIGRpcjEuZ2V0RmlsZSgnZCcpCisKKyAgICBwcmludCgnKiBH
ZXR0aW5nIGZpbGVzL2RpcmVjdG9yaWVzIHdpdGggcmVsYXRpdmUgcGF0aHMuJykKKworICAgIHJl
c2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2Zs
YWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQor
ICAgIGRpcjIgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBk
aXIgPSBkaXIxLmdldERpcmVjdG9yeSgnYi9hJywgY3JlYXRlX2ZsYWcpCisgICAgZmlsZSA9IGRp
cjEuZ2V0RmlsZSgnYi9iJywgY3JlYXRlX2ZsYWcpCisgICAgUk9PVC5nZXREaXJlY3RvcnkoJy9w
YXJlbnQvYS9iL2EnKQorICAgIFJPT1QuZ2V0RmlsZSgnL3BhcmVudC9hL2IvYicpCisgICAgcGFy
ZW50LmdldERpcmVjdG9yeSgnYS9iL2EnKQorICAgIHBhcmVudC5nZXRGaWxlKCdhL2IvYicpCisK
KyAgICBwcmludCgnKiBUcnlpbmcgdG8gZ2V0L2NyZWF0ZSBlbnRyaWVzIGF0IG5vbi1leGlzdGVu
dCBwYXRoJykKKworICAgIGRpcjEuZ2V0RmlsZSgnbm9uZXhpc3RlbnQnKSByYWlzZXMgOAorICAg
IGRpcjEuZ2V0RGlyZWN0b3J5KCdub25leGlzdGVudCcpIHJhaXNlcyA4CisgICAgZGlyMS5nZXRG
aWxlKCdub25leGlzdGVudC9kJywgY3JlYXRlX2ZsYWcpIHJhaXNlcyA4CisgICAgZGlyMS5nZXRE
aXJlY3RvcnkoJ25vbmV4aXN0ZW50L2QnLCBjcmVhdGVfZmxhZykgcmFpc2VzIDgKKworICAgIHBy
aW50KCcqIENhbGxpbmcgZ2V0RmlsZSBmb3IgYSBkaXJlY3RvcnksIGdldERpcmVjdG9yeSBmb3Ig
YSBmaWxlJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeShu
YW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMiwg
Y3JlYXRlX2ZsYWcpCisgICAgZmlsZSA9IHBhcmVudC5nZXRGaWxlKG5hbWUzLCBjcmVhdGVfZmxh
ZykKKworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGZpbGUuZnVsbFBhdGgpIHJhaXNlcyAxMQorICAg
IFJPT1QuZ2V0RmlsZShkaXIuZnVsbFBhdGgpIHJhaXNlcyAxMQorICAgIHBhcmVudC5nZXREaXJl
Y3RvcnkoZmlsZS5uYW1lKSByYWlzZXMgMTEKKyAgICBwYXJlbnQuZ2V0RmlsZShkaXIubmFtZSkg
cmFpc2VzIDExCisKKyAgICBwcmludCgnKiBUcnlpbmcgdG8gY3JlYXRlIGVudHJpZXMgd2l0aCBl
eGNsdXNpdmUgZmxhZycpCisKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJl
Y3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpciA9IHBhcmVudC5nZXREaXJlY3Rvcnko
bmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMywgY3Jl
YXRlX2ZsYWcpCisKKyAgICBST09ULmdldERpcmVjdG9yeShkaXIuZnVsbFBhdGgsIGV4Y2x1c2l2
ZV9mbGFnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoZmlsZS5mdWxsUGF0aCwgZXhjbHVz
aXZlX2ZsYWcpIHJhaXNlcyAxMworICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyLm5hbWUsIGV4
Y2x1c2l2ZV9mbGFnKSByYWlzZXMgMTMKKyAgICBwYXJlbnQuZ2V0RmlsZShmaWxlLm5hbWUsIGV4
Y2x1c2l2ZV9mbGFnKSByYWlzZXMgMTMKKworICAgIGRpci5yZW1vdmUoKQorICAgIGZpbGUucmVt
b3ZlKCkKKworICAgICMgTm93IHRoaXMgc2hvdWxkIHN1Y2NlZWQuCisgICAgUk9PVC5nZXREaXJl
Y3RvcnkoZGlyLmZ1bGxQYXRoLCBleGNsdXNpdmVfZmxhZykKKyAgICBST09ULmdldEZpbGUoZmls
ZS5mdWxsUGF0aCwgZXhjbHVzaXZlX2ZsYWcpCisKKyAgICBkaXIucmVtb3ZlKCkKKyAgICBmaWxl
LnJlbW92ZSgpCisKKyAgICAjIE5vdyB0aGlzIHNob3VsZCBzdWNjZWVkLgorICAgIHBhcmVudC5n
ZXREaXJlY3RvcnkoZGlyLm5hbWUsIGV4Y2x1c2l2ZV9mbGFnKQorICAgIHBhcmVudC5nZXRGaWxl
KGZpbGUubmFtZSwgZXhjbHVzaXZlX2ZsYWcpCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1l
dGFkYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQt
bWV0YWRhdGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiYTU3Mjc3YWYyYjgyMTE0ODJmMzU2
OWUyNjY2MWYwNzQ1YjQ5ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0dv
dCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyogR2V0IG1ldGFkYXRhIGZvciBkaXJlY3Rvcmll
cworKiBHZXQgbWV0YWRhdGEgZm9yIGZpbGVzCitQQVNTICJbb2JqZWN0IE1ldGFkYXRhXSIgaXMg
Pj0gIltvYmplY3QgTWV0YWRhdGFdIgorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRhZGF0YS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRhZGF0YS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFkYWM5ZWFmZWMxZmEwNWZlNmE4ZDQwMjA4NmMyYTZlODhhNjI2MDQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLmh0
bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10
ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1z
aGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIHN0YXJ0ID0gUk9PVC5n
ZXRNZXRhZGF0YSgpOworICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIg
PSAnYicKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIGRpcjEgPSBST09U
LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBST09ULmdldEZp
bGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZmlsZTEgPSBkaXIxLmdldEZpbGUobmFt
ZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUy
LCBjcmVhdGVfZmxhZykKKworICAgIHByaW50KCcqIEdldCBtZXRhZGF0YSBmb3IgZGlyZWN0b3Jp
ZXMnKQorICAgIG1ldGFkYXRhID0gZGlyMS5nZXRNZXRhZGF0YSgpCisgICAgbWV0YWRhdGEgPSBk
aXIxX2RpcjIuZ2V0TWV0YWRhdGEoKQorCisgICAgcHJpbnQoJyogR2V0IG1ldGFkYXRhIGZvciBm
aWxlcycpCisgICAgbWV0YWRhdGEgPSBmaWxlMi5nZXRNZXRhZGF0YSgpCisgICAgbWV0YWRhdGEg
PSBkaXIxX2ZpbGUxLmdldE1ldGFkYXRhKCkKKworICAgICMgTWFrZSBzdXJlIHdlIGdldCB0aGUg
bmV3ZXIgdGltZXN0YW1wLgorICAgIGVuZCA9IGRpcjFfZmlsZTEuZ2V0TWV0YWRhdGEoKQorICAg
IEFTU0VSVF9HRShlbmQsIHN0YXJ0KQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNWRkMWIxYmExNDYwM2ZkMjQ4MzI4Yzg5MTQwZmY2
NDgyMWZiYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
b3AtZ2V0LXBhcmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorR290IEZpbGVTeXN0
ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KKyogR2V0dGluZyBhIHBhcmVudCBvZiBlbnRyaWVzLgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTICIv
YS9iIiBpcyAiL2EvYiIKK1BBU1MgIi9hIiBpcyAiL2EiCitQQVNTICIvIiBpcyAiLyIKK1BBU1Mg
Ii8iIGlzICIvIgorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdmY2M4Nzlm
ZDA0ZTBkNDYyYjU2M2ZhY2Q2ZjY2OTUyZGUyMWJlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50Lmh0bWwKQEAgLTAsMCArMSw0NCBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUtc3lz
dGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAg
ICBuYW1lMyA9ICdjJworCisgICAgY3JlYXRlX2ZsYWcgPSB7Y3JlYXRlOnRydWV9CisKKyAgICBw
cmludCgnKiBHZXR0aW5nIGEgcGFyZW50IG9mIGVudHJpZXMuJykKKworICAgIHJlc2V0KCkKKyAg
ICBkaXIxID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIg
PSBkaXIxLmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTMgPSBkaXIy
LmdldEZpbGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorCisgICAgcGFyZW50ID0gZmlsZTMuZ2V0UGFy
ZW50KCkKKyAgICBBU1NFUlRfRVEocGFyZW50LmZ1bGxQYXRoLCBkaXIyLmZ1bGxQYXRoKQorCisg
ICAgcGFyZW50ID0gZGlyMi5nZXRQYXJlbnQoKQorICAgIEFTU0VSVF9FUShwYXJlbnQuZnVsbFBh
dGgsIGRpcjEuZnVsbFBhdGgpCisKKyAgICBwYXJlbnQgPSBkaXIxLmdldFBhcmVudCgpCisgICAg
QVNTRVJUX0VRKHBhcmVudC5mdWxsUGF0aCwgUk9PVC5mdWxsUGF0aCkKKworICAgIHBhcmVudCA9
IFJPT1QuZ2V0UGFyZW50KCkKKyAgICBBU1NFUlRfRVEocGFyZW50LmZ1bGxQYXRoLCBST09ULmZ1
bGxQYXRoKQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVs
bC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NmVmYTJiMzE4ZWI5ZWYxNjVjNGM4ODNhMzQ2YWVjZGYzNTBlNmQ4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzggQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyogTW92aW5nIGFu
IGVudHJ5IHRvIHRoZSBzYW1lIGRpcmVjdG9yeQorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBp
cyAiOCIKKyogTW92aW5nIGVudHJpZXMgdG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5CitQQVNTICI4
IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorKiBNb3ZpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5
IG5hbWVzCitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorKiBNb3ZpbmcgZW50cmll
cyB0byB0aGUgc2FtZSBkaXJlY3Rvcnkgd2l0aCB0aGUgc2FtZSBuYW1lCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorKiBUcnlpbmcgdG8gbW92ZSBub24tZXhpc3RlbnQgZW50cmllcworUEFTUyAiOCIgaXMg
IjgiCitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCisq
IE1vdmluZyBlbnRyaWVzIHRvIGEgbm9uLWV4aXN0ZW50IGRpcmVjdG9yeQorUEFTUyAiOCIgaXMg
IjgiCitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorKiBNb3ZpbmcgZW50cmllcyB0
byBpdHMgY2hpbGQKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorKiBNb3Zp
bmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbgorUEFTUyAiMiIgaXMgIjIiCitQQVNTICIyIiBp
cyAiMiIKK1BBU1MgIjIiIGlzICIyIgorUEFTUyAiMiIgaXMgIjIiCitQQVNTICI4IiBpcyAiOCIK
K1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1tb3ZlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
b3AtbW92ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhZTcxZTJlOWVkYmYzY2Y5NGJiNmFkYWRmYzJmYTli
MjZhMjUxNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
b3AtbW92ZS5odG1sCkBAIC0wLDAgKzEsMTQzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1maWxlLXN5
c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorICAgIHJlc2V0
KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAgICBuYW1lMyA9ICdjJwor
ICAgIG5hbWU0ID0gJ2QnCisgICAgY3JlYXRlX2ZsYWcgPSB7Y3JlYXRlOnRydWV9CisKKyAgICBw
cmludCgnKiBNb3ZpbmcgYW4gZW50cnkgdG8gdGhlIHNhbWUgZGlyZWN0b3J5JykKKworICAgICMg
UmVzZXQKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVu
dCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBj
cmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUyLCBjcmVhdGVfZmxh
ZykKKworICAgICMgRGlyZWN0b3J5CisgICAgbW92ZWQgPSBkaXIxLm1vdmVUbyhwYXJlbnQsIG5h
bWUzKQorICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpIHJhaXNlcyA4CisgICAgcGFyZW50
LmdldERpcmVjdG9yeShuYW1lMykKKworICAgICMgRmlsZQorICAgIG1vdmVkID0gZmlsZTIubW92
ZVRvKHBhcmVudCwgbmFtZTQpCisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkgcmFpc2Vz
IDgKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAgcHJpbnQoJyogTW92aW5n
IGVudHJpZXMgdG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5JykKKworICAgICMgUmVzZXQKKyAgICBy
ZXNldCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykK
KyAgICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNo
aWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDQg
PSBkaXIxLmdldEZpbGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBEaXJlY3RvcnkKKyAg
ICBtb3ZlZCA9IGNoaWxkMy5tb3ZlVG8oZGlyMiwgbmFtZTEpCisgICAgZGlyMS5nZXREaXJlY3Rv
cnkobmFtZTMpIHJhaXNlcyA4CisgICAgZGlyMi5nZXREaXJlY3RvcnkobmFtZTEpCisKKyAgICAj
IEZpbGUKKyAgICBtb3ZlZCA9IGNoaWxkNC5tb3ZlVG8oZGlyMiwgbmFtZTIpCisgICAgZGlyMS5n
ZXRGaWxlKG5hbWU0KSByYWlzZXMgOAorICAgIGRpcjIuZ2V0RmlsZShuYW1lMikKKworICAgIHBy
aW50KCcqIE1vdmluZyBlbnRyaWVzIHRvIHdpdGggZW1wdHkgbmFtZXMnKQorCisgICAgIyBSZXNl
dAorICAgIHJlc2V0KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0
ZV9mbGFnKQorICAgIGRpcjIgPSBST09ULmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcp
CisgICAgY2hpbGQzID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0ZV9mbGFnKQorICAg
IGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcpCisKKyAgICAjIERpcmVj
dG9yeQorICAgIG1vdmVkID0gY2hpbGQzLm1vdmVUbyhkaXIyLCBudWxsKQorICAgIGRpcjEuZ2V0
RGlyZWN0b3J5KGNoaWxkMy5uYW1lKSByYWlzZXMgOAorICAgIGRpcjIuZ2V0RGlyZWN0b3J5KGNo
aWxkMy5uYW1lKQorCisgICAgIyBGaWxlCisgICAgbW92ZWQgPSBjaGlsZDQubW92ZVRvKGRpcjIs
IG51bGwpCisgICAgZGlyMS5nZXRGaWxlKGNoaWxkNC5uYW1lKSByYWlzZXMgOAorICAgIGRpcjIu
Z2V0RmlsZShjaGlsZDQubmFtZSkKKworICAgIHByaW50KCcqIE1vdmluZyBlbnRyaWVzIHRvIHRo
ZSBzYW1lIGRpcmVjdG9yeSB3aXRoIHRoZSBzYW1lIG5hbWUnKQorCisgICAgIyBSZXNldAorICAg
IHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRl
X2ZsYWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFn
KQorICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAg
ZGlyMS5tb3ZlVG8ocGFyZW50LCBudWxsKSByYWlzZXMgMTMKKyAgICBkaXIxLm1vdmVUbyhwYXJl
bnQsIG5hbWUxKSByYWlzZXMgMTMKKyAgICBmaWxlMi5tb3ZlVG8ocGFyZW50LCBudWxsKSByYWlz
ZXMgMTMKKyAgICBmaWxlMi5tb3ZlVG8ocGFyZW50LCBuYW1lMikgcmFpc2VzIDEzCisKKyAgICBw
cmludCgnKiBUcnlpbmcgdG8gbW92ZSBub24tZXhpc3RlbnQgZW50cmllcycpCisKKyAgICBub25l
eGlzdF9kaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBu
b25leGlzdF9maWxlID0gcGFyZW50LmdldEZpbGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorICAgIG5v
bmV4aXN0X2Rpci5yZW1vdmUoKQorICAgIG5vbmV4aXN0X2ZpbGUucmVtb3ZlKCkKKworICAgIFJP
T1QuZ2V0RGlyZWN0b3J5KG5vbmV4aXN0X2Rpci5mdWxsUGF0aCkgcmFpc2VzIDgKKyAgICBST09U
LmdldEZpbGUobm9uZXhpc3RfZmlsZS5mdWxsUGF0aCkgcmFpc2VzIDgKKworICAgIG5vbmV4aXN0
X2Rpci5tb3ZlVG8oZGlyMSwgbmFtZTIpIHJhaXNlcyA4CisgICAgbm9uZXhpc3RfZmlsZS5tb3Zl
VG8oZGlyMiwgbmFtZTEpIHJhaXNlcyA4CisKKyAgICBwcmludCgnKiBNb3ZpbmcgZW50cmllcyB0
byBhIG5vbi1leGlzdGVudCBkaXJlY3RvcnknKQorCisgICAgUk9PVC5nZXREaXJlY3Rvcnkobm9u
ZXhpc3RfZGlyLmZ1bGxQYXRoKSByYWlzZXMgOAorICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpcjEu
ZnVsbFBhdGgpCisgICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRoKQorCisgICAgZGlyMS5t
b3ZlVG8obm9uZXhpc3RfZGlyLCBuYW1lMSkgcmFpc2VzIDgKKyAgICBmaWxlMi5tb3ZlVG8obm9u
ZXhpc3RfZGlyLCBuYW1lMykgcmFpc2VzIDgKKworICAgIHByaW50KCcqIE1vdmluZyBlbnRyaWVz
IHRvIGl0cyBjaGlsZCcpCisKKyAgICBST09ULm1vdmVUbyhkaXIxKSByYWlzZXMgMTMKKyAgICBw
YXJlbnQubW92ZVRvKGRpcjEpIHJhaXNlcyAxMworCisgICAgcHJpbnQoJyogTW92aW5nIGEgZGly
ZWN0b3J5IHdpdGggY2hpbGRyZW4nKQorCisgICAgZGlyNCA9IHBhcmVudC5nZXREaXJlY3Rvcnko
bmFtZTQsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMSA9IGRpcjQuZ2V0RmlsZShuYW1lMSwgY3Jl
YXRlX2ZsYWcpCisgICAgY2hpbGQyID0gZGlyNC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9m
bGFnKQorICAgIGNoaWxkMyA9IGNoaWxkMi5nZXRGaWxlKG5hbWUzLCBjcmVhdGVfZmxhZykKKyAg
ICBjaGlsZDQgPSBjaGlsZDIuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykKKworICAg
IGVudHJpZXMxID0gZGlyNC5yZWFkRGlyZWN0b3J5KCkKKyAgICBlbnRyaWVzMiA9IGNoaWxkMi5y
ZWFkRGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczEubGVuZ3RoKQorICAgIEFT
U0VSVF9FUSgyLCBlbnRyaWVzMi5sZW5ndGgpCisKKyAgICBkaXI0X25ldyA9IGRpcjQubW92ZVRv
KFJPT1QsICdkaXI0X25ldycpCisgICAgY2hpbGQyX25ldyA9IGRpcjRfbmV3LmdldERpcmVjdG9y
eShuYW1lMikKKworICAgIGVudHJpZXMxX25ldyA9IGRpcjRfbmV3LnJlYWREaXJlY3RvcnkoKQor
ICAgIGVudHJpZXMyX25ldyA9IGNoaWxkMl9uZXcucmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJU
X0VRKDIsIGVudHJpZXMxX25ldy5sZW5ndGgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJpZXMyX25l
dy5sZW5ndGgpCisKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KGRpcjQuZnVsbFBhdGgpIHJhaXNl
cyA4CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRl
bXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVhZC1kaXJlY3RvcnktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NDBiZGIzMTlmNGQ4YTZkM2ZmNDk2Yjg2ZjViZWNmMjdlMTc0YzU0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGly
ZWN0b3J5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitHb3QgRmlsZVN5c3RlbTogVGVz
dFNoZWxsRmlsZVN5c3RlbQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitQQVNTICIwIiBpcyAiMCIKK1BBU1MgIjEiIGlzICIxIgorUEFTUyAiNyIgaXMg
IjciCitbRU5UUlkge3BhdGg6L3BhcmVudC9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0sCisgRU5U
Ulkge3BhdGg6L3BhcmVudC9iIG5hbWU6YiB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6
L3BhcmVudC9jIG5hbWU6YyB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9k
IG5hbWU6ZCB0eXBlOkZJTEV9LAorIEVOVFJZIHtwYXRoOi9wYXJlbnQvZSBuYW1lOmUgdHlwZTpG
SUxFfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50L2YgbmFtZTpmIHR5cGU6RElSRUNUT1JZfSwKKyBF
TlRSWSB7cGF0aDovcGFyZW50L2cgbmFtZTpnIHR5cGU6RklMRX1dCitQQVNTICI1IiBpcyAiNSIK
K1tFTlRSWSB7cGF0aDovcGFyZW50L2EgbmFtZTphIHR5cGU6RElSRUNUT1JZfSwKKyBFTlRSWSB7
cGF0aDovcGFyZW50L2MgbmFtZTpjIHR5cGU6RElSRUNUT1JZfSwKKyBFTlRSWSB7cGF0aDovcGFy
ZW50L2QgbmFtZTpkIHR5cGU6RklMRX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9lIG5hbWU6ZSB0
eXBlOkZJTEV9LAorIEVOVFJZIHtwYXRoOi9wYXJlbnQvZiBuYW1lOmYgdHlwZTpESVJFQ1RPUll9
XQorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vb3AtcmVhZC1kaXJlY3RvcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MGU0OWI0MGI1
ZTI5NDg1ZTQ3MGUwYmFkN2FhNDg3MjRkNTQ1NjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5Lmh0bWwKQEAgLTAsMCArMSw1
NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUt
c3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicK
KyAgICBuYW1lMyA9ICdjJworICAgIG5hbWU0ID0gJ2QnCisKKyAgICBjcmVhdGVfZmxhZyA9IHtj
cmVhdGU6dHJ1ZX0KKworICAgIHJlc2V0KCkKKworICAgIGVudHJpZXMgPSBST09ULnJlYWREaXJl
Y3RvcnkoKQorICAgIEFTU0VSVF9FUSgwLCBlbnRyaWVzLmxlbmd0aCkKKworICAgIHBhcmVudCA9
IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBhID0gcGFyZW50
LmdldERpcmVjdG9yeSgnYScsIGNyZWF0ZV9mbGFnKQorICAgIGIgPSBwYXJlbnQuZ2V0RGlyZWN0
b3J5KCdiJywgY3JlYXRlX2ZsYWcpCisgICAgYyA9IHBhcmVudC5nZXREaXJlY3RvcnkoJ2MnLCBj
cmVhdGVfZmxhZykKKyAgICBkID0gcGFyZW50LmdldEZpbGUoJ2QnLCBjcmVhdGVfZmxhZykKKyAg
ICBlID0gcGFyZW50LmdldEZpbGUoJ2UnLCBjcmVhdGVfZmxhZykKKyAgICBmID0gcGFyZW50Lmdl
dERpcmVjdG9yeSgnZicsIGNyZWF0ZV9mbGFnKQorICAgIGcgPSBwYXJlbnQuZ2V0RmlsZSgnZycs
IGNyZWF0ZV9mbGFnKQorCisgICAgYy5nZXRGaWxlKCdoJywgY3JlYXRlX2ZsYWcpCisgICAgYy5n
ZXREaXJlY3RvcnkoJ2knLCBjcmVhdGVfZmxhZykKKyAgICBmLmdldEZpbGUoJ2onLCBjcmVhdGVf
ZmxhZykKKworICAgIGVudHJpZXMgPSBST09ULnJlYWREaXJlY3RvcnkoKQorICAgIEFTU0VSVF9F
USgxLCBlbnRyaWVzLmxlbmd0aCkKKworICAgIGVudHJpZXMgPSBwYXJlbnQucmVhZERpcmVjdG9y
eSgpCisgICAgQVNTRVJUX0VRKDcsIGVudHJpZXMubGVuZ3RoKQorICAgIHByaW50KGVudHJpZXMp
CisKKyAgICBnLnJlbW92ZSgpCisgICAgYi5yZW1vdmUoKQorICAgIGVudHJpZXMgPSBwYXJlbnQu
cmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDUsIGVudHJpZXMubGVuZ3RoKQorICAgIHBy
aW50KGVudHJpZXMpCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0
LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJmODI0OGRmNDAzNTFlNGJiNjFkMTUyNzU1OGZkMDgwZDQ1ZjY2NmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE0IEBACitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3Rl
bQorKiBSZW1vdmluZyBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBp
cyAiOCIKKyogUmVtb3Zpbmcgbm9uLWV4aXN0ZW50IGZpbGUgb3IgZGlyZWN0b3J5CitQQVNTICI4
IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorKiBSZW1vdmluZyBhIGRpcmVjdG9yeSB3aXRoIGNo
aWxkcmVuCitQQVNTICIxMyIgaXMgIjEzIgorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRm
ZjU4MWQ1ZDk2ZGIwYTgwYzAxYjRkMmVlMGRiZTQyYjMzYjIyYWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLmh0bWwKQEAgLTAsMCArMSw1
NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUt
c3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicK
KworICAgIGNyZWF0ZV9mbGFnID0ge2NyZWF0ZTp0cnVlfQorCisgICAgcHJpbnQoJyogUmVtb3Zp
bmcgZmlsZXMgYW5kIGRpcmVjdG9yaWVzJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBS
T09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVu
dC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUyID0gcGFyZW50Lmdl
dEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBNYWtlIHN1cmUgdGhlIGVudHJpZXMg
ZXhpc3QKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorICAgIHBhcmVudC5nZXRGaWxl
KG5hbWUyKQorCisgICAgZGlyMS5yZW1vdmUoKQorICAgIGZpbGUyLnJlbW92ZSgpCisKKyAgICAj
IE5vdyB0aGV5IHNob3VsZCBiZSBnb25lIGF3YXkKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5h
bWUxKSByYWlzZXMgOAorICAgIHBhcmVudC5nZXRGaWxlKG5hbWUyKSByYWlzZXMgOAorCisgICAg
cHJpbnQoJyogUmVtb3Zpbmcgbm9uLWV4aXN0ZW50IGZpbGUgb3IgZGlyZWN0b3J5JykKKworICAg
IGRpcjEucmVtb3ZlKCkgcmFpc2VzIDgKKyAgICBmaWxlMi5yZW1vdmUoKSByYWlzZXMgOAorCisg
ICAgcHJpbnQoJyogUmVtb3ZpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbicpCisKKyAgICBy
ZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9m
bGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykK
KyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUyLCBjcmVhdGVfZmxhZykKKworICAgIHBh
cmVudC5yZW1vdmUoKSByYWlzZXMgMTMKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFsbGVsLW9w
ZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFs
bGVsLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjhlNzYxNWZjZWE5ZTZl
MTM0YjFhMzBlOGU3NWNhNWYwZTM2MGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vcGFyYWxsZWwtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNiBAQAorVGVzdCBtYWtpbmcgbXVsdGlwbGUgRmlsZVN5c3RlbSBvcGVyYXRpb25zIGluIHBh
cmFsbGVsLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworR290IEZpbGVTeXN0ZW06
VGVzdFNoZWxsRmlsZVN5c3RlbQorcmVxdWVzdGVkIEZpbGVTeXN0ZW0uCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1N0YXJ0aW5nIHBhcmFsbGVsIHRl
c3Qgc3RhZ2UgMS4KK1N0YXJ0aW5nIHBhcmFsbGVsIHRlc3Qgc3RhZ2UgMi4KK1ZlcmlmeWluZyB0
aGUgRmlsZVN5c3RlbSBzdGF0dXMuCitQQVNTICIvYSwvYjIsL2MsL2QsL2UiIGlzICIvYSwvYjIs
L2MsL2QsL2UiCitEb25lLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vcGFyYWxsZWwtb3BlcmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3BhcmFsbGVsLW9wZXJhdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODRkZDBmNWM0OGYzNWY1YmFk
MzQ0MjM1NzNmOGRjNTcwOTliZDAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlvbnMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BhcmFsbGVsLW9w
ZXJhdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1w
ZXJzaXN0ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDAwNGJlMjVhNjRlYzk1NTE5YWNm
NGI0NGQ0OTY0NDE4ODNlNjIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorU2NyaXB0IGV4ZWN1dGlv
biBmaW5pc2hlZC4KK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTICIx
IiBpcyAiMSIKK1BBU1MgIi9hYSIgaXMgIi9hYSIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3
aWNlLXBlcnNpc3RlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0
LWZzLXR3aWNlLXBlcnNpc3RlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjQzNmU0OWY0YjRhZmViZTBl
NjM5ZWU1ODc5ODI2ODg2YWI0ODcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC5odG1sCkBAIC0wLDAgKzEs
NDQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGls
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJzY3Jp
cHQxIj4KKyAgICByZXNldCgpOworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdhYScsIHtjcmVhdGU6
dHJ1ZX0pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtZmlsZS1zeXN0
ZW0tdGVzdC1zaGVsbCIgaWQ9InNjcmlwdDIiPgorICAgICMgU2VlIGlmIHdlIGdldCB0aGUgc2Ft
ZSBmaWxlIHN5c3RlbS4KKyAgICBlbnRyaWVzID0gUk9PVC5yZWFkRGlyZWN0b3J5KCk7CisgICAg
ZW50cnkgPSBlbnRyaWVzWzBdCisgICAgQVNTRVJUX0VRKDEsIGVudHJpZXMubGVuZ3RoKTsKKyAg
ICBBU1NFUlRfRVEoJy9hYScsIGVudHJ5LmZ1bGxQYXRoKTsKKzwvc2NyaXB0PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIHJ1blNlY29uZFRlc3QoKSB7CisgICAgdmFyIHNoZWxsID0gbmV3IEZpbGVTeXN0
ZW1UZXN0U2hlbGwoUEVSU0lTVEVOVCwgMTAwLCBkZWJ1ZywgZnVuY3Rpb24oKXsKKyAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0pOworICAgIHNoZWxsLnJ1blNjcmlwdHMoJ3Njcmlw
dDInKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgeworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxs
KFBFUlNJU1RFTlQsIDEwMCwgZGVidWcsIHJ1blNlY29uZFRlc3QpOworICAgIHNoZWxsLnJ1blNj
cmlwdHMoJ3NjcmlwdDEnKTsKK30gZWxzZQorICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMg
RmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXRlbXBvcmFyeS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2QwMDRiZTI1YTY0ZWM5NTUxOWFjZjRiNDRkNDk2NDQxODgz
ZTYyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1
ZXN0LWZzLXR3aWNlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorR290
IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK0dv
dCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTICIxIiBpcyAiMSIKK1BBU1Mg
Ii9hYSIgaXMgIi9hYSIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXRlbXBvcmFyeS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9y
YXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY5YjM5ZGE3MjRlNDViNzFmYmFkZTY0MjUwOTUyY2Y2YTY0
NGUzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1
ZXN0LWZzLXR3aWNlLXRlbXBvcmFyeS5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNh
dGlvbi94LWZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJzY3JpcHQxIj4KKyAgICByZXNldCgp
OworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdhYScsIHtjcmVhdGU6dHJ1ZX0pOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9
InNjcmlwdDIiPgorICAgICMgU2VlIGlmIHdlIGdldCB0aGUgc2FtZSBmaWxlIHN5c3RlbS4KKyAg
ICBlbnRyaWVzID0gUk9PVC5yZWFkRGlyZWN0b3J5KCk7CisgICAgZW50cnkgPSBlbnRyaWVzWzBd
CisgICAgQVNTRVJUX0VRKDEsIGVudHJpZXMubGVuZ3RoKTsKKyAgICBBU1NFUlRfRVEoJy9hYScs
IGVudHJ5LmZ1bGxQYXRoKTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blNlY29u
ZFRlc3QoKSB7CisgICAgdmFyIHNoZWxsID0gbmV3IEZpbGVTeXN0ZW1UZXN0U2hlbGwoVEVNUE9S
QVJZLCAxMDAsIGRlYnVnLCBmdW5jdGlvbigpeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
CisgICAgfSk7CisgICAgc2hlbGwucnVuU2NyaXB0cygnc2NyaXB0MicpOworfQorCitpZiAod2lu
ZG93LnJlcXVlc3RGaWxlU3lzdGVtKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisg
ICAgdmFyIHNoZWxsID0gbmV3IEZpbGVTeXN0ZW1UZXN0U2hlbGwoVEVNUE9SQVJZLCAxMDAsIGRl
YnVnLCBydW5TZWNvbmRUZXN0KTsKKyAgICBzaGVsbC5ydW5TY3JpcHRzKCdzY3JpcHQxJyk7Cit9
IGVsc2UKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVTeXN0ZW0gQVBJIHN1cHBv
cnQuIik7CitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2Vz
L2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzdiM2E5
NDhhOTAxY2FiYTFhODJkOWQ3ZjE0MWE0MTg5NGNjZGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFy
eS5qcwpAQCAtMCwwICsxLDE1IEBACitmdW5jdGlvbiBlbmRUZXN0KCkgeworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgeworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVz
dFNoZWxsKFRFTVBPUkFSWSwgMTAwLCBkZWJ1ZywgZW5kVGVzdCk7CisgICAgc2hlbGwucnVuU2Ny
aXB0cygnZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQnKTsKK30gZWxzZQorICAgIGRlYnVnKCJUaGlz
IHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKworc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9y
ZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9y
ZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjQ5OWJjODVjYjM5MjhjYzYy
NTVkOGUxZTk2MGEwY2FmN2ZlZDk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzCkBAIC0wLDAgKzEsMzU3IEBA
CisvKgorICAgQXZhaWxhYmxlIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zOgorICAgICA8ZW50cnk+
LjxlbnRyeU1ldGhvZD4oLi4uKSBbcmFpc2UgPGNvZGU+XQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC4uLiBDYWxscyB0aGUgZW50cnkgbWV0aG9kIHN5bmNocm9ub3VzbHkuIEl0IGRv
ZXMgbm90IGVycm9yIG91dCBpZiAicmFpc2UgPGNvZGU+IiBpcyBnaXZlbiBhbmQgaXQgaGFzIHRo
cm93biB0aGUgZXJyb3IgY29kZSA8Y29kZT4uCisgICAgIHJlc2V0KCkgICAgICAgICAgICAgICAg
ICAgLi4uIFJlbW92ZXMgYWxsIGVudHJpZXMgaW4gdGhlIGZpbGUgc3lzdGVtLgorICAgICBwcmlu
dCg8YXJnPikgICAgICAgICAgICAgIC4uLiBQcmludHMgb3V0IHRoZSBnaXZlbiBhcmcuCisgICAg
IEFTU0VSVF9FUSg8YXJnMT4sIDxhcmcyPikgLi4uIEFzc2VydHMgdGhhdCA8YXJnMT4gYW5kIDxh
cmcyPiBhcmUgZXF1YWwuCisgICAgIEFTU0VSVF9HRSg8YXJnMT4sIDxhcmcyPikgLi4uIEFzc2Vy
dHMgdGhhdCA8YXJnMT4gaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFscyB0byA8YXJnMj4uCisgICAg
IFJPT1QgICAgICAgICAgICAgICAgICAgICAgLi4uIFRoZSBmaWxlIHN5c3RlbSdzIHJvb3QgZW50
cnkuCisKKyAgIEV4YW1wbGU6CisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIDxkaXYgaWQ9ImZp
bGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKyAgICByZXNldCgpCisKKyAgICAjIGNvbW1lbnQKKyAg
ICBlbnRyeTEgPSBST09ULmdldEZpbGUoJ2Zvby9hLnR4dCcpCisgICAgZW50cnkyID0gUk9PVC5n
ZXREaXJlY3RvcnkoJ2Zvby9iYXInLCB7Q1JFQVRFOnRydWV9KQorICAgIGVudHJ5MyA9IFJPT1Qu
Z2V0RmlsZSgnZm9vL25vbmV4aXN0ZW50JykgcmFpc2VzIDgKKyAgICBlbnRyaWVzID0gUk9PVC5y
ZWFkRGlyZWN0b3J5KCkKKyAgICBwcmludChlbnRyaWVzKQorICAgIGVudHJ5MS5jb3B5VG8oZW50
cnkyLCAnYi50eHQnKQorICAgIG1ldGFkYXRhID0gZW50cnkxLmdldE1ldGFkYXRhKCkKKyAgICBw
cmludChtZXRhZGF0YSkKKyAgICBBU1NFUlRfR1QobWV0YWRhdGEsIDApCisgICAgPC9kaXY+CisK
KyAgICB2YXIgc2hlbGwgPSBuZXcgRmlsZVN5c3RlbVRlc3RTaGVsbChURU1QT1JBUlksIDEwMCk7
CisgICAgc2hlbGwucnVuU2NyaXB0cygiZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiKTsKKyAgICAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgKi8KKwordmFyIEZpbGVTeXN0ZW1UZXN0U2hlbGwgPSBmdW5jdGlv
bih0eXBlLCBzaXplLCBvcHRfbG9nRnVuYywgb3B0X2VuZFRlc3RDYWxsYmFjaykKK3sKKyAgICB0
aGlzLmZpbGVTeXN0ZW0gPSBudWxsOworICAgIHRoaXMuZmlsZVN5c3RlbVR5cGUgPSB0eXBlOwor
ICAgIHRoaXMuZmlsZVN5c3RlbVNpemUgPSBzaXplOworCisgICAgdGhpcy5sb2cgPSBvcHRfbG9n
RnVuYzsKKyAgICB0aGlzLmVuZFRlc3RDYWxsYmFjayA9IG9wdF9lbmRUZXN0Q2FsbGJhY2s7CisK
KyAgICB0aGlzLmxpbmVzID0gW107CisgICAgdGhpcy5saW5lQ291bnRlciA9IC0xOworICAgIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgPSAwOworICAgIHRoaXMuZGVzdGluYXRpb25TeW1ib2wgPSBu
dWxsOworCisgICAgdGhpcy52YXJzID0geyAndHJ1ZSc6IHRydWUsICdmYWxzZSc6IGZhbHNlIH07
CisKKyAgICB0aGlzLnJ1blNjcmlwdHMgPSBmdW5jdGlvbihlbGVtZW50SWQpCisgICAgeworICAg
ICAgICBpZiAoIXRoaXMuZW5kVGVzdENhbGxiYWNrKQorICAgICAgICAgICAgdGhpcy5lbmRUZXN0
Q2FsbGJhY2sgPSBmdW5jdGlvbigpIHsgfTsKKworICAgICAgICBpZiAoIXRoaXMubG9nKQorICAg
ICAgICAgICAgdGhpcy5sb2cgPSB0aGlzLmRlZmF1bHRMb2dGdW5jOworCisgICAgICAgIHZhciBl
bGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgaWYgKCFl
bGVtKSB7CisgICAgICAgICAgICB0aGlzLmVycm9yKCdFbGVtZW50IG5vdCBmb3VuZDogJyArIGVs
ZW1lbnRJZCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5s
aW5lcyA9IGVsZW0uaW5uZXJIVE1MLnNwbGl0KC9ccj9cbisvKTsKKyAgICAgICAgaWYgKCF0aGlz
LmxpbmVzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhpcy5lcnJvcigiTm8gc2NyaXB0cyB0byBy
dW4hIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmxp
bmVDb3VudGVyID0gMDsKKyAgICAgICAgcmVxdWVzdEZpbGVTeXN0ZW0odGhpcy5maWxlU3lzdGVt
VHlwZSwgdGhpcy5maWxlU3lzdGVtU2l6ZSwgdGhpcy5iaW5kKHRoaXMuZmlsZVN5c3RlbUNhbGxi
YWNrKSwgdGhpcy5iaW5kKHRoaXMuZXJyb3JDYWxsYmFjaykpOworICAgIH0KKworICAgIC8vIENh
bGxiYWNrcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworICAgIHRoaXMuYmluZCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsK
KyAgICAgICAgdmFyIG9iaiA9IHRoaXM7CisgICAgICAgIHJldHVybiBmdW5jdGlvbihhcmcpIHsK
KyAgICAgICAgICAgIGNhbGxiYWNrKG9iaiwgYXJnKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAg
ICB0aGlzLmVycm9yQ2FsbGJhY2sgPSBmdW5jdGlvbihzaGVsbCwgZXJyb3IpCisgICAgeworICAg
ICAgICBpZiAod2luZG93LnNob3VsZEJlKQorICAgICAgICAgICAgc2hvdWxkQmUoJyInICsgc2hl
bGwuZXhwZWN0ZWRFcnJvckNvZGUgKyAnIicsICciJyArIGVycm9yLmNvZGUgKyAnIicpOworICAg
ICAgICBpZiAoc2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUgJiYgZXJyb3IuY29kZSA9PSBzaGVsbC5l
eHBlY3RlZEVycm9yQ29kZSkgeworICAgICAgICAgICAgc2hlbGwucnVuTmV4dFN0YXRlbWVudCgp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2hlbGwuZXJyb3IoJ0dvdCBlcnJvcjog
JyArIGVycm9yLmNvZGUpOworICAgICAgICB9CisgICAgfQorCisgICAgdGhpcy5zdWNjZXNzQ2Fs
bGJhY2sgPSBmdW5jdGlvbihzaGVsbCwgcmV0dXJuVmFsdWUpCisgICAgeworICAgICAgICBpZiAo
c2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUpIHsKKyAgICAgICAgICAgIHNoZWxsLmVycm9yKCdPcGVy
YXRpb24gdW5leHBlY3RlZGx5IHN1Y2NlZWRlZCcpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIGlmIChzaGVsbC5kZXN0aW5hdGlvblN5bWJvbCkKKyAgICAgICAgICAg
IHNoZWxsLnZhcnNbc2hlbGwuZGVzdGluYXRpb25TeW1ib2xdID0gcmV0dXJuVmFsdWU7CisgICAg
ICAgIHNoZWxsLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICB9CisKKyAgICB0aGlzLmVudHJpZXND
YWxsYmFjayA9IGZ1bmN0aW9uKHNoZWxsLCBlbnRyaWVzKQorICAgIHsKKyAgICAgICAgaWYgKHNo
ZWxsLmRlc3RpbmF0aW9uU3ltYm9sKSB7CisgICAgICAgICAgICBpZiAoIXNoZWxsLnZhcnNbc2hl
bGwuZGVzdGluYXRpb25TeW1ib2xdKQorICAgICAgICAgICAgICAgIHNoZWxsLnZhcnNbc2hlbGwu
ZGVzdGluYXRpb25TeW1ib2xdID0gW107CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGVudHJpZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICAgICAgc2hlbGwudmFyc1tzaGVsbC5k
ZXN0aW5hdGlvblN5bWJvbF0ucHVzaChlbnRyaWVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBp
ZiAoZW50cmllcy5sZW5ndGggPT0gMCkKKyAgICAgICAgICAgIHNoZWxsLnJ1bk5leHRTdGF0ZW1l
bnQoKTsKKyAgICB9CisKKyAgICB0aGlzLmZpbGVTeXN0ZW1DYWxsYmFjayA9IGZ1bmN0aW9uKHNo
ZWxsLCBmcykKKyAgICB7CisgICAgICAgIHNoZWxsLmxvZygnR290IEZpbGVTeXN0ZW06ICcgKyBm
cy5uYW1lKTsKKyAgICAgICAgc2hlbGwuZmlsZVN5c3RlbSA9IGZzOworICAgICAgICBzaGVsbC52
YXJzWydST09UJ10gPSBmcy5yb290OworICAgICAgICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50KCk7
CisgICAgfQorCisgICAgLy8gSGVscGVyIG1ldGhvZHMgZm9yIGNhbGxpbmcgZW50cnkgbWV0aG9k
cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdmFyIGNhbGxFbnRyeU1ldGhv
ZDAgPSBmdW5jdGlvbihzaGVsbCwgZW50cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAg
IHRyeSB7CisgICAgICAgICAgICBlbnRyeVttZXRob2RdKHNoZWxsLmJpbmQoc2hlbGwuc3VjY2Vz
c0NhbGxiYWNrKSwgc2hlbGwuYmluZChzaGVsbC5lcnJvckNhbGxiYWNrKSk7CisgICAgICAgIH0g
Y2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgaWYgKHNoZWxsLmV4cGVjdGVkRXJyb3JD
b2RlICYmIGVycm9yLmNvZGUgPT0gc2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUpIHsKKyAgICAgICAg
ICAgICAgICBzaGVsbC5sb2coJ0dvdCBleGNlcHRpb24gKGV4cGVjdGVkKTogJyArIGVycm9yLmNv
ZGUpOworICAgICAgICAgICAgICAgIHNoZWxsLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc2hlbGwuZXJyb3IoJ0dvdCBleGNlcHRpb246
ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg
IHZhciBjYWxsRW50cnlNZXRob2QyID0gZnVuY3Rpb24oc2hlbGwsIGVudHJ5LCBtZXRob2QsIGFy
Z3MpCisgICAgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW50cnlbbWV0aG9kXShhcmdz
WzBdLCBhcmdzWzFdLCBzaGVsbC5iaW5kKHNoZWxsLnN1Y2Nlc3NDYWxsYmFjayksIHNoZWxsLmJp
bmQoc2hlbGwuZXJyb3JDYWxsYmFjaykpOworICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsK
KyAgICAgICAgICAgIGlmIChzaGVsbC5leHBlY3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09
IHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlKSB7CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdH
b3QgZXhjZXB0aW9uIChleHBlY3RlZCk6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAg
ICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIHNoZWxsLmVycm9yKCdHb3QgZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgY2FsbFJlYWREaXJlY3Rv
cnkgPSBmdW5jdGlvbihzaGVsbCwgZW50cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAg
IHRyeSB7CisgICAgICAgICAgICBkaXJlY3RvcnlSZWFkZXIgPSBlbnRyeS5jcmVhdGVSZWFkZXIo
KTsKKyAgICAgICAgICAgIGRpcmVjdG9yeVJlYWRlci5yZWFkRW50cmllcyhzaGVsbC5iaW5kKHNo
ZWxsLmVudHJpZXNDYWxsYmFjayksIHNoZWxsLmJpbmQoc2hlbGwuZXJyb3JDYWxsYmFjaykpOwor
ICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGlmIChzaGVsbC5leHBl
Y3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09IHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlKSB7
CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdHb3QgZXhjZXB0aW9uIChleHBlY3RlZCk6ICcg
KyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAgICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50KCk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNoZWxsLmVycm9yKCdHb3Qg
ZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICB2YXIgZW50cnlNZXRob2RzVGFibGUgPSB7CisgICAgICAgICdnZXRNZXRhZGF0
YSc6IGNhbGxFbnRyeU1ldGhvZDAsCisgICAgICAgICdjb3B5VG8nOiBjYWxsRW50cnlNZXRob2Qy
LAorICAgICAgICAnbW92ZVRvJzogY2FsbEVudHJ5TWV0aG9kMiwKKyAgICAgICAgJ3JlbW92ZSc6
IGNhbGxFbnRyeU1ldGhvZDAsCisgICAgICAgICdnZXRQYXJlbnQnOiBjYWxsRW50cnlNZXRob2Qw
LAorICAgICAgICAnZ2V0RmlsZSc6IGNhbGxFbnRyeU1ldGhvZDIsCisgICAgICAgICdnZXREaXJl
Y3RvcnknOiBjYWxsRW50cnlNZXRob2QyLAorICAgICAgICAncmVhZERpcmVjdG9yeSc6IGNhbGxS
ZWFkRGlyZWN0b3J5LAorICAgIH07CisKKyAgICAvLyBCdWlsdC1pbiBmdW5jaXRvbnMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICB2YXIg
dG9TdHJpbmcgPSBmdW5jdGlvbihvYmopCisgICAgeworICAgICAgICBpZiAob2JqID09IHVuZGVm
aW5lZCkgeworICAgICAgICAgICAgcmV0dXJuICJ1bmRlZmluZWQiOworICAgICAgICB9IGVsc2Ug
aWYgKHR5cGVvZiBvYmogPT0gJ29iamVjdCcpIHsKKyAgICAgICAgICAgIGlmIChvYmoubGVuZ3Ro
ICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIHZhciBzdHJpbmdBcnJheSA9IFtdOwor
ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgICAgICAgICBzdHJpbmdBcnJheS5wdXNoKHRvU3RyaW5nKG9ialtpXSkpOworICAg
ICAgICAgICAgICAgIHN0cmluZ0FycmF5LnNvcnQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
J1snICsgc3RyaW5nQXJyYXkuam9pbignLFxuICcpICsgJ10nOworICAgICAgICAgICAgfSBlbHNl
IGlmIChvYmouaXNGaWxlIHx8IG9iai5pc0RpcmVjdG9yeSkgeworICAgICAgICAgICAgICAgIHJl
dHVybiAnRU5UUlkge3BhdGg6JyArIG9iai5mdWxsUGF0aCArICcgbmFtZTonICsgb2JqLm5hbWUg
KyAob2JqLmlzRmlsZSA/ICcgdHlwZTpGSUxFJyA6ICcgdHlwZTpESVJFQ1RPUlknKSArICd9JzsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gb2JqOworICAgIH0K
KworICAgIHRoaXMuQlVJTFRJTl9wcmludCA9IGZ1bmN0aW9uKGFyZ3MpCisgICAgeworICAgICAg
ICB0aGlzLmxvZyh0b1N0cmluZyhhcmdzWzBdKSk7CisgICAgICAgIHRoaXMucnVuTmV4dFN0YXRl
bWVudCgpOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9yZXNldCA9IGZ1bmN0aW9uKGFyZ3Mp
CisgICAgeworICAgICAgICB2YXIgc2hlbGwgPSB0aGlzOworICAgICAgICByZW1vdmVSZWN1cnNp
dmVseSh0aGlzLmZpbGVTeXN0ZW0ucm9vdCwgZnVuY3Rpb24oKSB7IHNoZWxsLnJ1bk5leHRTdGF0
ZW1lbnQoKTsgfSwgdGhpcy5iaW5kKHRoaXMuZXJyb3JDYWxsYmFjaykpOworICAgIH0KKworICAg
IHRoaXMuQlVJTFRJTl9BU1NFUlQgPSBmdW5jdGlvbihhcmdzKQorICAgIHsKKyAgICAgICAgdmFy
IG9iaiA9IGFyZ3NbMF07CisgICAgICAgIGlmICh3aW5kb3cuc2hvdWxkQmVOb25OdWxsKQorICAg
ICAgICAgICAgd2luZG93LnNob3VsZEJlTm9uTnVsbCgnIicgKyBvYmogKyAnIicpOworICAgICAg
ICBpZiAoIW9iaikKKyAgICAgICAgICAgIHRoaXMuZXJyb3IoJ0Fzc2VydGlvbiBlcnJvcjonICsg
b2JqKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7
CisgICAgfQorCisgICAgdGhpcy5CVUlMVElOX0FTU0VSVF9HRSA9IGZ1bmN0aW9uKGFyZ3MpCisg
ICAgeworICAgICAgICB2YXIgdmFsdWUxID0gKGFyZ3NbMF0gaW5zdGFuY2VvZiBEYXRlKSA/IGFy
Z3NbMF0uZ2V0VGltZSgpIDogYXJnc1swXTsKKyAgICAgICAgdmFyIHZhbHVlMiA9IChhcmdzWzFd
IGluc3RhbmNlb2YgRGF0ZSkgPyBhcmdzWzFdLmdldFRpbWUoKSA6IGFyZ3NbMV07CisgICAgICAg
IGlmICh3aW5kb3cuc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwpCisgICAgICAgICAgICB3aW5k
b3cuc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJyInICsgdmFsdWUxICsgJyInLCAnIicgKyB2
YWx1ZTIgKyAnIicpOworICAgICAgICBpZiAodmFsdWUxIDwgdmFsdWUyKSB7CisgICAgICAgICAg
ICB0aGlzLmVycm9yKCdBc3NlcnRpb24gZXJyb3I6JyArIGFyZ3NbMF0gKyAnID49ICcgKyBhcmdz
WzFdKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJ1bk5l
eHRTdGF0ZW1lbnQoKTsKKyAgICB9CisKKyAgICB0aGlzLkJVSUxUSU5fQVNTRVJUX0VRID0gZnVu
Y3Rpb24oYXJncykKKyAgICB7CisgICAgICAgIHZhciB2YWx1ZTEgPSAoYXJnc1swXSBpbnN0YW5j
ZW9mIERhdGUpID8gYXJnc1swXS5nZXRUaW1lKCkgOiBhcmdzWzBdOworICAgICAgICB2YXIgdmFs
dWUyID0gKGFyZ3NbMV0gaW5zdGFuY2VvZiBEYXRlKSA/IGFyZ3NbMV0uZ2V0VGltZSgpIDogYXJn
c1sxXTsKKyAgICAgICAgaWYgKHdpbmRvdy5zaG91bGRCZSkKKyAgICAgICAgICAgIHdpbmRvdy5z
aG91bGRCZSgnIicgKyB2YWx1ZTEgKyAnIicsICciJyArIHZhbHVlMiArICciJyk7CisgICAgICAg
IGlmICh2YWx1ZTEgIT0gdmFsdWUyKSB7CisgICAgICAgICAgICB0aGlzLmVycm9yKCdBc3NlcnRp
b24gZXJyb3I6JyArIGFyZ3NbMF0gKyAnID09ICcgKyBhcmdzWzFdKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICB9
CisKKyAgICAvLyBQYXJzZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICB0aGlzLkVOVFJZX01FVEhPRF9SRSA9IC9e
XHMqKFtBLVphLXpfXVx3KilcLihnZXRNZXRhZGF0YXxtb3ZlVG98Y29weVRvfHJlbW92ZXxnZXRQ
YXJlbnR8Z2V0RmlsZXxnZXREaXJlY3Rvcnl8cmVhZERpcmVjdG9yeSlcKCguKilcKSg/OlxzK3Jh
aXNlcz9ccypcKD8oXGQrKVwpP3wpLzsKKyAgICB0aGlzLkFTU0lHTk1FTlRfUkUgPSAvXlxzKihb
QS1aYS16X11cdyopXHMqPVxzKiguKikvOworCisgICAgdGhpcy5wYXJzZUFyZ3MgPSBmdW5jdGlv
bih0ZXh0KSB7CisgICAgICAgIHZhciBhcmdzID0gW107CisgICAgICAgIHZhciBzaGVsbCA9IHRo
aXM7CisgICAgICAgIHZhciB2YXJzID0gdGhpcy52YXJzOworICAgICAgICB0ZXh0LnJlcGxhY2Uo
Lyg/Oih7W159XSp9KXwoXGQrfCJbXiJdKiJ8J1teJ10qJyl8KFthLXpBLVpfXVx3KikoPzpcWyhc
ZCt8WyciXVx3K1snIl0pXF18XC4oXHcrKXwpKSgsfCQpXHMqL2csIGZ1bmN0aW9uKG1hdGNoLCBo
YXNoLCBpbW1lZGlhdGUsIHN5bWJvbCwgZmllbGQxLCBmaWVsZDIpIHsKKyAgICAgICAgICAgIHZh
ciBmaWVsZCA9IGZpZWxkMSAhPSB1bmRlZmluZWQgPyBmaWVsZDEgOiBmaWVsZDI7CisgICAgICAg
ICAgICB2YXIgb2JqID0gc2hlbGwudmFyc1tzeW1ib2xdOworICAgICAgICAgICAgaWYgKHN5bWJv
bCAmJiBvYmogPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgaWYgKHN5bWJvbCA9PSAn
bnVsbCcgfHwgc3ltYm9sID09ICd1bmRlZmluZWQnKSB7CisgICAgICAgICAgICAgICAgICAgIG9i
aiA9IG51bGw7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
c2hlbGwuZXJyb3IoJ1VuZGVmaW5lZCBzeW1ib2w6JyArIHN5bWJvbCk7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBhcmdzLnB1c2goaGFzaCA/IGV2YWwoJ289JyArIGhhc2gpCisgICAgICAgICAgICAgICAg
OiBpbW1lZGlhdGUgPyBldmFsKGltbWVkaWF0ZSkKKyAgICAgICAgICAgICAgICA6IHN5bWJvbCA/
IChmaWVsZCAhPSB1bmRlZmluZWQgPyBvYmpbZmllbGRdIDogb2JqKQorICAgICAgICAgICAgICAg
IDogbnVsbCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gYXJnczsKKyAgICB9CisKKyAg
ICB0aGlzLnJ1bk5leHRTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAo
dGhpcy5saW5lQ291bnRlciA8IDAgfHwgdGhpcy5saW5lQ291bnRlciA+PSB0aGlzLmxpbmVzLmxl
bmd0aCkgeworICAgICAgICAgICAgdGhpcy5sb2coJ1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQu
Jyk7CisgICAgICAgICAgICB0aGlzLmVuZFRlc3RDYWxsYmFjaygpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIHZhciBzdGF0ZW1lbnQgPSB0aGlzLmxpbmVzW3RoaXMu
bGluZUNvdW50ZXIrK107CisgICAgICAgIGlmIChzdGF0ZW1lbnQuc2VhcmNoKC9eXHMqKCMuKnwp
JC8pID09IDApIHsKKyAgICAgICAgICAgIHRoaXMucnVuTmV4dFN0YXRlbWVudCgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHZhciBleHAgPSBzdGF0ZW1lbnQ7Cisg
ICAgICAgIHRoaXMuZGVzdGluYXRpb25TeW1ib2wgPSBudWxsOworICAgICAgICB0aGlzLmV4cGVj
dGVkRXJyb3JDb2RlID0gMDsKKyAgICAgICAgdmFyIG1hdGNoZXMgPSBzdGF0ZW1lbnQubWF0Y2go
dGhpcy5BU1NJR05NRU5UX1JFKTsKKyAgICAgICAgaWYgKG1hdGNoZXMpIHsKKyAgICAgICAgICAg
IHRoaXMuZGVzdGluYXRpb25TeW1ib2wgPSBtYXRjaGVzWzFdOworICAgICAgICAgICAgdGhpcy52
YXJzW3RoaXMuZGVzdGluYXRpb25TeW1ib2xdID0gbnVsbDsKKyAgICAgICAgICAgIGV4cCA9IG1h
dGNoZXNbMl07CisgICAgICAgIH0KKyAgICAgICAgbWF0Y2hlcyA9IGV4cC5tYXRjaCh0aGlzLkVO
VFJZX01FVEhPRF9SRSk7CisgICAgICAgIGlmIChtYXRjaGVzKSB7CisgICAgICAgICAgICB2YXIg
ZW50cnkgPSBzaGVsbC52YXJzW21hdGNoZXNbMV1dOworICAgICAgICAgICAgdmFyIG1ldGhvZCA9
IG1hdGNoZXNbMl07CisgICAgICAgICAgICBpZiAoIWVudHJ5KSB7CisgICAgICAgICAgICAgICAg
dGhpcy5lcnJvcignTm8gc3VjaCBzeW1ib2w6JyArIG1hdGNoZXNbMV0pOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgPSBtYXRjaGVzWzRdOworICAgICAgICAgICAgZW50cnlNZXRob2RzVGFibGVbbWV0aG9k
XSh0aGlzLCBlbnRyeSwgbWV0aG9kLCB0aGlzLnBhcnNlQXJncyhtYXRjaGVzWzNdKSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbWF0Y2hlcyA9IGV4cC5tYXRjaCgv
XlxzKihbQS1aYS16X11cdyspXCgoLiopXCkvKTsKKyAgICAgICAgaWYgKG1hdGNoZXMgJiYgdGhp
c1snQlVJTFRJTl8nICsgbWF0Y2hlc1sxXV0pIHsKKyAgICAgICAgICAgIHRoaXNbJ0JVSUxUSU5f
JyArIG1hdGNoZXNbMV1dKHRoaXMucGFyc2VBcmdzKG1hdGNoZXNbMl0pKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB2YXIgdmFsdWVzID0gdGhpcy5wYXJzZUFyZ3Mo
ZXhwKTsKKyAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPT0gMSkgeworICAgICAgICAgICAgaWYg
KHRoaXMuZGVzdGluYXRpb25TeW1ib2wpCisgICAgICAgICAgICAgICAgdGhpcy52YXJzW3RoaXMu
ZGVzdGluYXRpb25TeW1ib2xdID0gdmFsdWVzWzBdOworICAgICAgICAgICAgdGhpcy5ydW5OZXh0
U3RhdGVtZW50KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGhp
cy5lcnJvcignU3ludGF4IGVycm9yOicgKyBzdGF0ZW1lbnQpOworICAgIH0KKworICAgIC8vIE1p
c2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworICAgIHRoaXMuZHVtcFZhcnMgPSBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy52YXJzKQorICAgICAgICAgICAgdGhpcy5sb2coJyoq
ICcgKyBrZXkgKyAnOicgKyB0aGlzLnZhcnNba2V5XSk7CisgICAgfQorCisgICAgdGhpcy5lcnJv
ciA9IGZ1bmN0aW9uKG1zZykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLmxpbmVDb3VudGVyID4g
MCAmJiB0aGlzLmxpbmVDb3VudGVyIDwgdGhpcy5saW5lcy5sZW5ndGgpIHsKKyAgICAgICAgICAg
IHRoaXMubG9nKCdFUlJPUjonICsgbXNnICsgJyBhdCBsaW5lICcgKyB0aGlzLmxpbmVDb3VudGVy
KTsKKyAgICAgICAgICAgIHRoaXMubG9nKCcgPiAnICsgdGhpcy5saW5lc1t0aGlzLmxpbmVDb3Vu
dGVyIC0gMV0pOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMubG9nKCdFUlJPUjon
ICsgbXNnKTsKKyAgICAgICAgdGhpcy5lbmRUZXN0Q2FsbGJhY2soKTsKKyAgICB9CisKKyAgICB0
aGlzLmRlZmF1bHRMb2dGdW5jID0gZnVuY3Rpb24obXNnKQorICAgIHsKKyAgICAgICAgdmFyIGVs
ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOworICAgICAgICBpZiAoIWVs
ZW0pIHsKKyAgICAgICAgICAgIGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICAgICAgICAgIGVsZW0uaWQgPSAnY29uc29sZSc7CisgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGVsZW0pOworICAgICAgICB9CisgICAgICAgIHZhciBzcGFuID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHNwYW4pOworICAgICAgICBzcGFuLmlubmVySFRN
TCA9IG1zZyArICc8YnIgLz4nOworICAgIH0KK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MDhk
Y2IzNDc1YmEwMTFhZjI3ODNkOGQ5NWNjMjk3MWY4Mzc2Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcwpAQCAt
MCwwICsxLDExMSBAQAordmFyIEpvaW4gPSBmdW5jdGlvbihjYWxsYmFjaykKK3sKKyAgICB0aGlz
LnBlbmRpbmdPcGVyYXRpb25zID0gMDsKKyAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7CisK
KyAgICB0aGlzLmNhbGwgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5wZW5kaW5nT3BlcmF0
aW9ucysrOworICAgIH07CisKKyAgICB0aGlzLmRvbmUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAg
dGhpcy5wZW5kaW5nT3BlcmF0aW9ucy0tOworICAgICAgICBpZiAodGhpcy5wZW5kaW5nT3BlcmF0
aW9ucyA9PSAwKQorICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICB9OworfTsKKworLy8gRklY
TUU6IFJlbW92ZSB0aGlzIHdoZW4gYm90aCBzcGVjIGFuZCBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0
cyByZWN1cnNpdmUgcmVtb3ZlLgorZnVuY3Rpb24gcmVtb3ZlUmVjdXJzaXZlbHkoZGlyZWN0b3J5
LCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spCit7CisKKyAgICB2YXIgUmVtb3ZlUmVj
dXJzaXZlSGVscGVyID0gZnVuY3Rpb24oc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKQor
ICAgIHsKKyAgICAgICAgdGhpcy5yZW1vdmVEaXJNYXAgPSB7fTsKKyAgICAgICAgdGhpcy5zdWNj
ZXNzQ2FsbGJhY2sgPSBzdWNjZXNzQ2FsbGJhY2s7CisgICAgICAgIHRoaXMuZXJyb3JDYWxsYmFj
ayA9IGVycm9yQ2FsbGJhY2s7CisKKyAgICAgICAgdGhpcy5yZW1vdmVSZWN1cnNpdmVseSA9IGZ1
bmN0aW9uKGRpcmVjdG9yeSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5yZW1vdmVSZWN1
cnNpdmVseUludGVybmFsKGRpcmVjdG9yeSk7CisgICAgICAgIH07CisKKyAgICAgICAgdGhpcy5o
YXNNb3JlRW50cmllcyA9IGZ1bmN0aW9uKGhhc2gpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZv
ciAoayBpbiBoYXNoKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9OworCisgICAgICAgIHRoaXMuYmluZCA9IGZ1bmN0aW9u
KGNhbGxiYWNrKQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgb2JqID0gdGhpczsKKyAgICAg
ICAgICAgIHJldHVybiBmdW5jdGlvbihhcmcpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhv
YmosIGFyZyk7CisgICAgICAgICAgICB9OworICAgICAgICB9OworCisgICAgICAgIHRoaXMucmVt
b3ZlRGlyZWN0b3J5ID0gZnVuY3Rpb24oZGlyZWN0b3J5LCBwYXJlbnREaXJlY3RvcnkpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3RvcnkuZnVsbFBhdGggIT0gJy8nKSB7CisgICAg
ICAgICAgICAgICAgLy8gT2sgdG8gcmVtb3ZlIHRoZSBwYXJlbnQgZGlyZWN0b3J5LgorICAgICAg
ICAgICAgICAgIHZhciBoZWxwZXIgPSB0aGlzOworICAgICAgICAgICAgICAgIGRpcmVjdG9yeS5y
ZW1vdmUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGhlbHBlci5lbnRyeVJlbW92
ZWRDYWxsYmFjayhoZWxwZXIsIHBhcmVudERpcmVjdG9yeSwgZGlyZWN0b3J5KTsKKyAgICAgICAg
ICAgICAgICB9LCB0aGlzLmJpbmQodGhpcy5FcnJvckNhbGxiYWNrKSk7CisgICAgICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5yZW1vdmVEaXJNYXBbZGlyZWN0b3J5
LmZ1bGxQYXRoXTsKKyAgICAgICAgICAgIGlmICghdGhpcy5oYXNNb3JlRW50cmllcyh0aGlzLnJl
bW92ZURpck1hcCkgJiYgdGhpcy5zdWNjZXNzQ2FsbGJhY2spCisgICAgICAgICAgICAgICAgdGhp
cy5zdWNjZXNzQ2FsbGJhY2soKTsKKyAgICAgICAgfTsKKworICAgICAgICB0aGlzLmVudHJ5UmVt
b3ZlZENhbGxiYWNrID0gZnVuY3Rpb24oaGVscGVyLCBkaXJlY3RvcnksIGVudHJ5KQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoZW50cnkuaXNEaXJlY3RvcnkpCisgICAgICAgICAgICAgICAg
ZGVsZXRlIGhlbHBlci5yZW1vdmVEaXJNYXBbZW50cnkuZnVsbFBhdGhdOworCisgICAgICAgICAg
ICBpZiAoZGlyZWN0b3J5KSB7CisgICAgICAgICAgICAgICAgdmFyIGRpckluZm8gPSBoZWxwZXIu
cmVtb3ZlRGlyTWFwW2RpcmVjdG9yeS5mdWxsUGF0aF07CisgICAgICAgICAgICAgICAgaWYgKC0t
ZGlySW5mby5lbnRyaWVzID09IDAgJiYgZGlySW5mby5oYXNNb3JlID09IGZhbHNlKQorICAgICAg
ICAgICAgICAgICAgICBoZWxwZXIucmVtb3ZlRGlyZWN0b3J5KGRpcmVjdG9yeSwgZGlySW5mby5w
YXJlbnREaXJlY3RvcnkpOworICAgICAgICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHRo
aXMucmVtb3ZlUmVjdXJzaXZlbHlDYWxsYmFjayA9IGZ1bmN0aW9uKGhlbHBlciwgZGlyZWN0b3J5
LCBlbnRyaWVzKQorICAgICAgICB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVu
dHJpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBoZWxwZXIucmVtb3ZlRGlyTWFw
W2RpcmVjdG9yeS5mdWxsUGF0aF0uZW50cmllcysrOworICAgICAgICAgICAgICAgIGlmIChlbnRy
aWVzW2ldLmlzRGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICBoZWxwZXIucmVtb3ZlUmVj
dXJzaXZlbHlJbnRlcm5hbChlbnRyaWVzW2ldLCBkaXJlY3RvcnkpOworICAgICAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2ldOworICAg
ICAgICAgICAgICAgICAgICBlbnRyeS5yZW1vdmUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwZXIuZW50cnlSZW1vdmVkQ2FsbGJhY2soaGVscGVyLCBkaXJlY3Rvcnks
IGVudHJ5KTsKKyAgICAgICAgICAgICAgICAgICAgfSwgaGVscGVyLmJpbmQoaGVscGVyLmVycm9y
Q2FsbGJhY2spKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBpZiAoZW50cmllcy5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIHZhciBkaXJJbmZv
ID0gaGVscGVyLnJlbW92ZURpck1hcFtkaXJlY3RvcnkuZnVsbFBhdGhdOworICAgICAgICAgICAg
ICAgIGRpckluZm8uaGFzTW9yZSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGlmIChkaXJJbmZv
LmVudHJpZXMgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgaGVscGVyLnJlbW92ZURpcmVjdG9y
eShkaXJlY3RvcnksIGRpckluZm8ucGFyZW50RGlyZWN0b3J5KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfTsKKworICAgICAgICB0aGlzLnJlbW92ZVJlY3Vyc2l2ZWx5SW50ZXJuYWwgPSBmdW5j
dGlvbihkaXJlY3RvcnksIHBhcmVudERpcmVjdG9yeSkKKyAgICAgICAgeworICAgICAgICAgICAg
dGhpcy5yZW1vdmVEaXJNYXBbZGlyZWN0b3J5LmZ1bGxQYXRoXSA9IHsKKyAgICAgICAgICAgICAg
ICBoYXNNb3JlOiB0cnVlLAorICAgICAgICAgICAgICAgIHBhcmVudERpcmVjdG9yeTogcGFyZW50
RGlyZWN0b3J5LAorICAgICAgICAgICAgICAgIGVudHJpZXM6IDAsCisgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgdmFyIGhlbHBlciA9IHRoaXM7CisgICAgICAgICAgICBkaXJlY3RvcnlSZWFk
ZXIgPSBkaXJlY3RvcnkuY3JlYXRlUmVhZGVyKCk7CisgICAgICAgICAgICBkaXJlY3RvcnlSZWFk
ZXIucmVhZEVudHJpZXMoZnVuY3Rpb24oZW50cmllcykgeworICAgICAgICAgICAgICAgIGhlbHBl
ci5yZW1vdmVSZWN1cnNpdmVseUNhbGxiYWNrKGhlbHBlciwgZGlyZWN0b3J5LCBlbnRyaWVzKTsK
KyAgICAgICAgICAgIH0sIHRoaXMuYmluZCh0aGlzLmVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAg
fTsKKyAgICB9OworCisgICAgdmFyIGhlbHBlciA9IG5ldyBSZW1vdmVSZWN1cnNpdmVIZWxwZXIo
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKKyAgICBoZWxwZXIucmVtb3ZlUmVjdXJz
aXZlbHkoZGlyZWN0b3J5KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9yZXN0cmljdGVkLWNoYXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9yZXN0cmljdGVkLWNoYXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWFiYmI1
ZDU5YjIwYmY4YzQyN2ZjN2M5NDdiOTIwN2U0NmQ2MmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtY2hhcnMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzkgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBp
cyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1NjcmlwdCBleGVj
dXRpb24gZmluaXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9yZXN0cmljdGVkLWNoYXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVz
dHJpY3RlZC1jaGFycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3OGEyZGI5NmJjODQ1OWUxZTgxNGZiZjA3
NDA4YzYzZmY1MzgyOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
eXN0ZW0vcmVzdHJpY3RlZC1jaGFycy5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNh
dGlvbi94LWZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJmaWxlLXN5c3RlbS10ZXN0LXNjcmlw
dCI+CisKKyAgICByZXNldCgpCisKKyAgICBST09ULmdldEZpbGUoJ2FcXGInKSByYWlzZXMgMTMK
KyAgICBST09ULmdldEZpbGUoJ2E8YicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYT5i
JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhOmInKSByYWlzZXMgMTMKKyAgICBST09U
LmdldEZpbGUoJ2E/YicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYSpiJykgcmFpc2Vz
IDEzCisgICAgUk9PVC5nZXRGaWxlKCdhImInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUo
J2F8YicpIHJhaXNlcyAxMworCisgICAgUk9PVC5nZXRGaWxlKCdcXGFiJykgcmFpc2VzIDEzCisg
ICAgUk9PVC5nZXRGaWxlKCc8YWInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJz5hYicp
IHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnOmFiJykgcmFpc2VzIDEzCisgICAgUk9PVC5n
ZXRGaWxlKCc/YWInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJyphYicpIHJhaXNlcyAx
MworICAgIFJPT1QuZ2V0RmlsZSgnImFiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCd8
YWInKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgnYWJcXCcpIHJhaXNlcyAxMworICAg
IFJPT1QuZ2V0RmlsZSgnYWI8JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYj4nKSBy
YWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2FiOicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0
RmlsZSgnYWI/JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYionKSByYWlzZXMgMTMK
KyAgICBST09ULmdldEZpbGUoJ2FiIicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYWJ8
JykgcmFpc2VzIDEzCisKKyAgICBhYiA9IFJPT1QuZ2V0RmlsZSgnYWInLCB7Y3JlYXRlOnRydWV9
KQorICAgIGFiLmNvcHlUbyhST09ULCAnYVxcYicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhS
T09ULCAnYTxiJykgcmFpc2VzIDEzCisgICAgYWIuY29weVRvKFJPT1QsICdhPmInKSByYWlzZXMg
MTMKKyAgICBhYi5jb3B5VG8oUk9PVCwgJ2E6YicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhS
T09ULCAnYT9iJykgcmFpc2VzIDEzCisgICAgYWIuY29weVRvKFJPT1QsICdhKmInKSByYWlzZXMg
MTMKKyAgICBhYi5jb3B5VG8oUk9PVCwgJ2EiYicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhS
T09ULCAnYXxiJykgcmFpc2VzIDEzCisKKyAgICAjIE5hbWUgc2hvdWxkIG5vdCBjb250YWluICcv
JworICAgIGFiLmNvcHlUbyhST09ULCAnYS9iJykgcmFpc2VzIDEzCisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vcmVzdHJpY3RlZC1uYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
eXN0ZW0vcmVzdHJpY3RlZC1uYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTgwYTUzOGU3
NmFlMTc4MzQxYzJiNTI4NGYzYjkwN2M2M2ZiOWYwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLW5hbWVzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQyIEBACitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMg
IjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitTY3JpcHQgZXhlY3V0
aW9uIGZpbmlzaGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
cmVzdHJpY3RlZC1uYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3Ry
aWN0ZWQtbmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODU4NDRmYmZlMTFmYTA4ODU4MTgwOTgwMmFj
ODhhODhjNjAwNjc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL3Jlc3RyaWN0ZWQtbmFtZXMuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRp
b24veC1maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQi
PgorCisgICAgcmVzZXQoKQorICAgIGZpbGUgPSBST09ULmdldEZpbGUoJ2FhYScsIHtjcmVhdGU6
dHJ1ZX0pCisgICAgZGlyID0gUk9PVC5nZXRGaWxlKCdiYmInLCB7Y3JlYXRlOnRydWV9KQorCisg
ICAgUk9PVC5nZXRGaWxlKCdjb24nKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ0NPTicp
IHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQ29uJykgcmFpc2VzIDEzCisgICAgUk9PVC5n
ZXRGaWxlKCdjT24udHh0JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXREaXJlY3RvcnkoJ2JiYi9j
b04nKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgncHJuJykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXRGaWxlKCdQUk4nKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ1BybicpIHJh
aXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgncFJuLnR4dCcpIHJhaXNlcyAxMworICAgIFJPT1Qu
Z2V0RGlyZWN0b3J5KCdiYmIvcHJOJykgcmFpc2VzIDEzCisKKyAgICBST09ULmdldEZpbGUoJ2F1
eCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQVVYJykgcmFpc2VzIDEzCisgICAgUk9P
VC5nZXRGaWxlKCdBdXgnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2FVeC50eHQnKSBy
YWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgnYmJiL2F1WCcpIHJhaXNlcyAxMworCisg
ICAgUk9PVC5nZXRGaWxlKCdudWwnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ05VTCcp
IHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnTnVsJykgcmFpc2VzIDEzCisgICAgUk9PVC5n
ZXRGaWxlKCduVWwudHh0JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXREaXJlY3RvcnkoJ2JiYi9u
dUwnKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgnY29tMScpIHJhaXNlcyAxMworICAg
IFJPT1QuZ2V0RmlsZSgnQ09NMicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQ29tNCcp
IHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnY09NNy5mb28nKSByYWlzZXMgMTMKKyAgICBS
T09ULmdldERpcmVjdG9yeSgnYmJiL2NvTTknKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0Rmls
ZSgnbHB0MScpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnTFBUMicpIHJhaXNlcyAxMwor
ICAgIFJPT1QuZ2V0RmlsZSgnTHB0NCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnbFBU
Ny5mb28nKSByYWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgnYmJiL2xwVDknKSByYWlz
ZXMgMTMKKworICAgICMgTmFtZXMgc2hvdWxkIG5vdCBlbmQgd2l0aCBwZXJpb2Qgb3Igd2hpdGVz
cGFjZS4KKyAgICBST09ULmdldEZpbGUoJ2ZvbyAnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZp
bGUoJ2Zvb1xuJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdmb28uJykgcmFpc2VzIDEz
CisgICAgZmlsZS5jb3B5VG8oZGlyLCAnZm9vICcpIHJhaXNlcyAxMworICAgIGZpbGUuY29weVRv
KGRpciwgJ2Zvb1x0JykgcmFpc2VzIDEzCisgICAgZmlsZS5jb3B5VG8oZGlyLCAnZm9vLicpIHJh
aXNlcyAxMworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVs
bC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc2ZDRhNDIyZTI5NjIwNGZmYjQyZDY4ZmJkNzA5YTg0NTA3MGQyNTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL1RF
TVBMQVRFLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvcGFyYWxs
ZWwtb3BlcmF0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVz
dHMvcGFyYWxsZWwtb3BlcmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTI5YmQwNTE0YzcyZjVmM2Ux
ZWUwM2RiZGViMWY2MzUxODkyNTczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9wYXJhbGxlbC1vcGVyYXRpb25zLmpzCkBAIC0wLDAg
KzEsMTE0IEBACitkZXNjcmlwdGlvbigiVGVzdCBtYWtpbmcgbXVsdGlwbGUgRmlsZVN5c3RlbSBv
cGVyYXRpb25zIGluIHBhcmFsbGVsLiIpOworCit2YXIgZmlsZVN5c3RlbSA9IG51bGw7CisKK3Zh
ciBhOwordmFyIGI7Cit2YXIgYzsKKworZnVuY3Rpb24gZW5kVGVzdCgpIHsKKyAgICBkZWJ1Zygi
RG9uZS4iKTsKKyAgICByZW1vdmVSZWN1cnNpdmVseShmaWxlU3lzdGVtLnJvb3QpOworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhlcnJvcikgewor
ICAgIGRlYnVnKCJHb3QgZXJyb3I6ICIgKyBlcnJvci5jb2RlKTsKKyAgICByZW1vdmVSZWN1cnNp
dmVseShmaWxlU3lzdGVtLnJvb3QpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwordmFy
IHBhdGhzID0gW107Cit2YXIgZGlycyA9IDA7CisKK2Z1bmN0aW9uIGVudHJpZXNDYWxsYmFjayhl
bnRyaWVzKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgKytpKSB7
CisgICAgICAgIHBhdGhzLnB1c2goZW50cmllc1tpXS5mdWxsUGF0aCk7CisgICAgICAgIGlmIChl
bnRyaWVzW2ldLmlzRGlyZWN0b3J5KQorICAgICAgICAgICAgZGlycysrOworICAgIH0KKyAgICBp
ZiAoZW50cmllcy5sZW5ndGggPT0gMCkgeworICAgICAgICBwYXRocy5zb3J0KCk7CisgICAgICAg
IHNob3VsZEJlKCciJyArIHBhdGhzLmpvaW4oJywnKSArICciJywgJyIvYSwvYjIsL2MsL2QsL2Ui
Jyk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHZlcmlmeSgpIHsK
KyAgICBkZWJ1ZygiVmVyaWZ5aW5nIHRoZSBGaWxlU3lzdGVtIHN0YXR1cy4iKTsKKyAgICB2YXIg
cmVhZGVyID0gZmlsZVN5c3RlbS5yb290LmNyZWF0ZVJlYWRlcigpOworICAgIHJlYWRlci5yZWFk
RW50cmllcyhlbnRyaWVzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworfQorCitmdW5jdGlvbiBw
YXJhbGxlbFRlc3QyKCkgeworICAgIGRlYnVnKCJTdGFydGluZyBwYXJhbGxlbCB0ZXN0IHN0YWdl
IDIuIik7CisKKyAgICB2YXIgam9pbiA9IG5ldyBKb2luKHZlcmlmeSk7CisgICAgdmFyIGRvbmUg
PSBmdW5jdGlvbigpIHsgam9pbi5kb25lKCk7IH07CisKKyAgICBqb2luLmNhbGwoKTsKKyAgICBh
LmNvcHlUbyhiLCAndG1wJywgZG9uZSwgZXJyb3JDYWxsYmFjayk7CisKKyAgICBqb2luLmNhbGwo
KTsKKyAgICBhLmdldE1ldGFkYXRhKGRvbmUsIGVycm9yQ2FsbGJhY2spOworCisgICAgam9pbi5j
YWxsKCk7CisgICAgYi5nZXRQYXJlbnQoZG9uZSwgZXJyb3JDYWxsYmFjayk7CisKKyAgICBqb2lu
LmNhbGwoKTsKKyAgICBiLm1vdmVUbyhmaWxlU3lzdGVtLnJvb3QsICdiMicsIGRvbmUsIGVycm9y
Q2FsbGJhY2spOworCisgICAgam9pbi5jYWxsKCk7CisgICAgYy5jb3B5VG8oZmlsZVN5c3RlbS5y
b290LCAnZCcsIGRvbmUsIGVycm9yQ2FsbGJhY2spOworCisgICAgam9pbi5jYWxsKCk7CisgICAg
ZmlsZVN5c3RlbS5yb290LmdldEZpbGUoJ2UnLCB7Y3JlYXRlOnRydWV9LCBkb25lLCBlcnJvckNh
bGxiYWNrKTsKK30KKworZnVuY3Rpb24gcGFyYWxsZWxUZXN0MSgpIHsKKyAgICBkZWJ1ZygiU3Rh
cnRpbmcgcGFyYWxsZWwgdGVzdCBzdGFnZSAxLiIpOworCisgICAgdmFyIGpvaW4gPSBuZXcgSm9p
bihwYXJhbGxlbFRlc3QyKTsKKyAgICB2YXIgcm9vdCA9IGZpbGVTeXN0ZW0ucm9vdDsKKworICAg
IGpvaW4uY2FsbCgpOworICAgIHJvb3QuZ2V0RmlsZSgnYScsIHtjcmVhdGU6dHJ1ZX0sIGZ1bmN0
aW9uKGVudHJ5KSB7CisgICAgICAgIGEgPSBlbnRyeTsKKyAgICAgICAgam9pbi5kb25lKCk7Cisg
ICAgfSwgZXJyb3JDYWxsYmFjayk7CisKKyAgICBqb2luLmNhbGwoKTsKKyAgICByb290LmdldERp
cmVjdG9yeSgnYicsIHtjcmVhdGU6dHJ1ZX0sIGZ1bmN0aW9uKGVudHJ5KSB7CisgICAgICAgIGIg
PSBlbnRyeTsKKyAgICAgICAgam9pbi5kb25lKCk7CisgICAgfSwgZXJyb3JDYWxsYmFjayk7CisK
KyAgICBqb2luLmNhbGwoKTsKKyAgICByb290LmdldERpcmVjdG9yeSgnYycsIHtjcmVhdGU6dHJ1
ZX0sIGZ1bmN0aW9uKGVudHJ5KSB7CisgICAgICAgIGMgPSBlbnRyeTsKKyAgICAgICAgam9pbi5k
b25lKCk7CisgICAgfSwgZXJyb3JDYWxsYmFjayk7Cit9CisKK2lmICh3aW5kb3cucmVxdWVzdEZp
bGVTeXN0ZW0pIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICB2YXIgam9pbiA9
IG5ldyBKb2luKHBhcmFsbGVsVGVzdDEpOworCisgICAgam9pbi5jYWxsKCk7CisgICAgdmFyIG9i
aiA9IHRoaXM7CisgICAgcmVxdWVzdEZpbGVTeXN0ZW0od2luZG93LlRFTVBPUkFSWSwgMTAwLCBm
dW5jdGlvbihmcykgeworICAgICAgICBkZWJ1ZygiR290IEZpbGVTeXN0ZW06IiArIGZzLm5hbWUp
OworICAgICAgICBmaWxlU3lzdGVtID0gZnM7CisgICAgICAgIHJlbW92ZVJlY3Vyc2l2ZWx5KGZp
bGVTeXN0ZW0ucm9vdCwgZnVuY3Rpb24oKXsgam9pbi5kb25lKCk7IH0sIGVycm9yQ2FsbGJhY2sp
OworICAgIH0sIGVycm9yQ2FsbGJhY2spOworCisgICAgZGVidWcoInJlcXVlc3RlZCBGaWxlU3lz
dGVtLiIpOworCit9IGVsc2UKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVTeXN0
ZW0gQVBJIHN1cHBvcnQuIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9zaW1wbGUt
cGVyc2lzdGVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMv
c2ltcGxlLXBlcnNpc3RlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBhZGVjZWE3YzI3ZWRhNzgwZTE2NDY4
NmE5NzVkMmVhMThlMjU4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQuanMKQEAgLTAsMCArMSwyNyBA
QAorZGVzY3JpcHRpb24oIlBlcnNpc3RlbnQgRmlsZVN5c3RlbSBzaW1wbGUgdGVzdC4iKTsKKwor
ZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhmaWxlU3lzdGVtKSB7CisgICAgZGVidWcoIkVycm9yIG9j
Y3VyZWQgZHVyaW5nIHJlcXVlc3RpbmcgUGVyc2lzdGVudCBGaWxlU3lzdGVtOiIgKyBmaWxlU3lz
dGVtLm5hbWUpOworICAgIHNob3VsZEJlVHJ1ZSgiZmFsc2UiKTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrKGZpbGVTeXN0ZW0pIHsKKyAg
ICBkZWJ1ZygiU3VjY2Vzc2Z1bGx5IG9idGFpbmVkIFBlcnNpc3RlbnQgRmlsZVN5c3RlbToiICsg
ZmlsZVN5c3RlbS5uYW1lKTsKKyAgICBzaG91bGRCZVRydWUoInRydWUiKTsKKworICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgeworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIHJlcXVlc3RGaWxlU3lzdGVtKHdpbmRvdy5U
RU1QT1JBUlksIDEwMCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30gZWxzZQor
ICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS10ZW1wb3JhcnkuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS10ZW1wb3JhcnkuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjY1ZTUwNmE1NWQ1YjAwNTg3YzBiNjMwMmEzNTE3MWM4NDI5OGUwOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMv
c2ltcGxlLXRlbXBvcmFyeS5qcwpAQCAtMCwwICsxLDI4IEBACitkZXNjcmlwdGlvbigiVGVtcG9y
YXJ5IEZpbGVTeXN0ZW0gc2ltcGxlIHRlc3QuIik7CisKK2Z1bmN0aW9uIGVycm9yQ2FsbGJhY2so
ZmlsZVN5c3RlbSkgeworICAgIGRlYnVnKCJFcnJvciBvY2N1cmVkIGR1cmluZyByZXF1ZXN0aW5n
IFRlbXBvcmFyeSBGaWxlU3lzdGVtOiIgKyBmaWxlU3lzdGVtLm5hbWUpOworICAgIHNob3VsZEJl
VHJ1ZShmYWxzZSk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHN1
Y2Nlc3NDYWxsYmFjayhmaWxlU3lzdGVtKSB7CisgICAgZGVidWcoIlN1Y2Nlc3NmdWxseSBvYnRh
aW5lZCBUZW1wb3JhcnkgRmlsZVN5c3RlbToiICsgZmlsZVN5c3RlbS5uYW1lKTsKKyAgICBzaG91
bGRCZVRydWUodHJ1ZSk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2lmICh3aW5k
b3cucmVxdWVzdEZpbGVTeXN0ZW0pIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAg
ICByZXF1ZXN0RmlsZVN5c3RlbSh3aW5kb3cuUEVSU0lTVEVOVCwgMTAwLCBzdWNjZXNzQ2FsbGJh
Y2ssIGVycm9yQ2FsbGJhY2spOworfSBlbHNlCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJl
cyBGaWxlU3lzdGVtIEFQSSBzdXBwb3J0LiIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1w
ZXJzaXN0ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1w
bGUtcGVyc2lzdGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y4ZjdmYjhhYzYzZmM0MTlm
MGMxNDY4Nzg4NDc5M2Y5MWU0N2E0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MSBAQAorUGVyc2lzdGVudCBGaWxlU3lzdGVtIHNpbXBsZSB0ZXN0LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworU3VjY2Vzc2Z1bGx5IG9idGFpbmVkIFBlcnNpc3RlbnQgRmlsZVN5
c3RlbTpUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHRydWUgaXMgdHJ1ZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1wZXJzaXN0ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgy
MGJjZmQzYmZlNGY3NjEwYjE4NWZiOWQ0MjRhZTI5ZGQwMWNmNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC5odG1sCkBAIC0w
LDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVz
dC11dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVz
dHMvc2ltcGxlLXBlcnNpc3RlbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS10ZW1wb3JhcnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS10ZW1wb3Jhcnkt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjZjY5NDU5YmE3ZDZkODVkZmFhNTE2NTE0NDNiZDRh
YTIyZTI2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
c2ltcGxlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVtcG9yYXJ5
IEZpbGVTeXN0ZW0gc2ltcGxlIHRlc3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitTdWNjZXNzZnVsbHkgb2J0YWluZWQgVGVtcG9yYXJ5IEZpbGVTeXN0ZW06VGVzdFNoZWxsRmls
ZVN5c3RlbQorV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMKK1BBU1Mg
dHJ1ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS10
ZW1wb3JhcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtdGVtcG9y
YXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTljYzk4MDFjNDk5Y2RhOGZhYzYyYThlOTVlOTcxNGM4Y2Q5
MDcyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1w
bGUtdGVtcG9yYXJ5Lmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zaW1wbGUtdGVtcG9yYXJ5LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggZTM3ODE3YTgx
MDIwMjM3YTJkNzczNTNlYWIxYjczM2FkZDJiNGRjNy4uMzExZmUzMjdmNjUxMDMzNzRjMTU4ZGQ5
NjczZTMyYmM1OGFiMmVmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTU5MjUsMyAr
NTkyNSw2IEBAIHdlYnNvY2tldC90ZXN0cwogCiAjIHZpZXdwb3J0IG1ldGEgdGFnIHN1cHBvcnQK
IGZhc3Qvdmlld3BvcnQKKworIyBGaWxlU3lzdGVtIEFQSSBpcyBub3QgZW5hYmxlZC4KK2Zhc3Qv
ZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBiOGNhNTI4MWQxNDA5MmMx
Y2UzMmU5YjcxOWE5MjRmNDM0ZTZhYTI0Li5hODRiZDIyNTdiNzdlYzJiNGM0ZGUzMWUwM2JhN2Ey
YWRmMTIzNmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMzEwLDMgKzMxMCw2IEBA
IGZhc3QvZmlsZXMvd29ya2VycwogCiAjIHZpZXdwb3J0IG1ldGEgdGFnIHN1cHBvcnQKIGZhc3Qv
dmlld3BvcnQKKworIyBGaWxlU3lzdGVtIEFQSSBpcyBub3QgZW5hYmxlZC4KK2Zhc3QvZmlsZXN5
c3RlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggNjQxNzI0NzZiYTI5YTBkNDA4N2UyMzUz
MDAzYWY2NWQ5MDg3YmQwNi4uMjNmNzMzODRiMTdmZmNkODA1YjEzNDFjNzJiYjY0ZjFkMGU4Y2Vi
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC01NDQ5LDMgKzU0NDksNiBAQCBmYXN0L3Zp
ZXdwb3J0L3ZpZXdwb3J0LTEyNy5odG1sCiBmYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTYuaHRtbAog
ZmFzdC92aWV3cG9ydC92aWV3cG9ydC00NS5odG1sCiBmYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTU4
Lmh0bWwKKworIyBGaWxlU3lzdGVtIEFQSSBpcyBub3QgZW5hYmxlZC4KK2Zhc3QvZmlsZXN5c3Rl
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA2MmNlYWQ4ZTljMTJmYzcyMjdkNDA5MjA0
NTExNzhiZmMzNTI1NjNlLi5lODA0NmViNTRhYjYyYjk3OWQzOTk0NWU1YzQ3YzNjNTc4NmIwMThm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTk1LDMgKzk5NSw2IEBAIGZhc3Qvdmll
d3BvcnQKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU5ODMK
IG1lZGlhL21lZGlhLWNhbi1wbGF5LW1wZWc0LXZpZGVvLmh0bWwKKworIyBGaWxlU3lzdGVtIEFQ
SSBpcyBub3QgZW5hYmxlZC4KK2Zhc3QvZmlsZXN5c3RlbQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67987</attachid>
            <date>2010-09-17 18:20:35 -0700</date>
            <delta_ts>2010-09-29 13:42:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44920-20100917182034.patch</filename>
            <type>text/plain</type>
            <size>71249</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZTQ4NjRkM2ZmNGI4ZTAxZGMzNDU3NzVjMTQwY2I2NDdjNWRmMTRjLi5hZWVmNDhm
Zjc4ZmI2YjM1MDFlNzEyN2MwMjM1YzI0NzBlM2NmODg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAK
KzIwMTAtMDktMTcgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVz
dHMgZm9yIEZpbGVTeXN0ZW0gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDkyMAorCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWNvcHkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRh
ZGF0YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1nZXQt
cGFyZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLW1vdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGly
ZWN0b3J5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3Zl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRp
b25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3BhcmFs
bGVsLW9wZXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jl
cXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3RlbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMt
dHdpY2UtdGVtcG9yYXJ5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9y
ZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanM6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qczogQWRkZWQuCisgICAgICAg
ICogZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwuanM6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLWNoYXJzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtY2hhcnMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1uYW1lcy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL1RFTVBM
QVRFLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMv
cGFyYWxsZWwtb3BlcmF0aW9ucy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVt
L3NjcmlwdC10ZXN0cy9zaW1wbGUtcGVyc2lzdGVudC5qczogQWRkZWQuCisgICAgICAgICogZmFz
dC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9zaW1wbGUtdGVtcG9yYXJ5LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3NpbXBsZS10ZW1wb3JhcnktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFy
eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogTm90IHN1cHBv
cnRlZCBvbiBndGsgeWV0LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBOb3Qgc3Vw
cG9ydGVkIG9uIG1hYyB5ZXQuCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDogTm90IHN1
cHBvcnRlZCBvbiBxdCB5ZXQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IE5vdCBz
dXBwb3J0ZWQgb24gd2luIHlldC4KKwogMjAxMC0wOS0xNyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJlY2NlNzBhMjJkMzM3NWI5NmFjODQwM2E3NWUzODFiYWQzZGQwMGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzMSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorKiBDb3B5aW5nIGFu
IGVudHJ5IHRvIHRoZSBzYW1lIGRpcmVjdG9yeQorKiBDb3B5aW5nIGVudHJpZXMgdG8gYSBkaWZm
ZXJlbnQgZGlyZWN0b3J5CisqIENvcHlpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzCisq
IENvcHlpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJlY3Rvcnkgd2l0aCB0aGUgc2FtZSBuYW1l
CitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMi
CitQQVNTICIxMyIgaXMgIjEzIgorKiBUcnlpbmcgdG8gY29weSBub24tZXhpc3RlbnQgZW50cmll
cworUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorUEFT
UyAiOCIgaXMgIjgiCisqIENvcHlpbmcgZW50cmllcyB0byBhIG5vbi1leGlzdGVudCBkaXJlY3Rv
cnkKK1BBU1MgIjgiIGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKKyog
Q29weWluZyBlbnRyaWVzIHRvIGl0cyBjaGlsZAorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEz
IiBpcyAiMTMiCisqIENvcHlpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbgorUEFTUyAiMiIg
aXMgIjIiCitQQVNTICIyIiBpcyAiMiIKK1BBU1MgIjIiIGlzICIyIgorUEFTUyAiMiIgaXMgIjIi
CitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLWNvcHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOWU1NjA1OWY5ODgwMDlmMGIyNmUyNzE2NDRkMzFl
YWI3OTZjNGEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLWNvcHkuaHRtbApAQCAtMCwwICsxLDE0NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9u
L3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4K
KyAgICByZXNldCgpCisKKyAgICBuYW1lMSA9ICdhJworICAgIG5hbWUyID0gJ2InCisgICAgbmFt
ZTMgPSAnYycKKyAgICBuYW1lNCA9ICdkJworICAgIGNyZWF0ZV9mbGFnID0ge2NyZWF0ZTp0cnVl
fQorCisgICAgcHJpbnQoJyogQ29weWluZyBhbiBlbnRyeSB0byB0aGUgc2FtZSBkaXJlY3Rvcnkn
KQorCisgICAgIyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVj
dG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3Rv
cnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIs
IGNyZWF0ZV9mbGFnKQorCisgICAgIyBEaXJlY3RvcnkKKyAgICBjb3BpZWQgPSBkaXIxLmNvcHlU
byhwYXJlbnQsIG5hbWUzKQorICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpCisgICAgcGFy
ZW50LmdldERpcmVjdG9yeShuYW1lMykKKworICAgICMgRmlsZQorICAgIGNvcGllZCA9IGZpbGUy
LmNvcHlUbyhwYXJlbnQsIG5hbWU0KQorICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpCisg
ICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMykKKworICAgIHByaW50KCcqIENvcHlpbmcgZW50
cmllcyB0byBhIGRpZmZlcmVudCBkaXJlY3RvcnknKQorCisgICAgIyBSZXNldAorICAgIHJlc2V0
KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAg
IGRpcjIgPSBST09ULmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQz
ID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkNCA9IGRp
cjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcpCisKKyAgICAjIERpcmVjdG9yeQorICAgIGNv
cGllZCA9IGNoaWxkMy5jb3B5VG8oZGlyMiwgbmFtZTEpCisgICAgZGlyMS5nZXREaXJlY3Rvcnko
bmFtZTMpCisgICAgZGlyMi5nZXREaXJlY3RvcnkobmFtZTEpCisKKyAgICAjIEZpbGUKKyAgICBj
b3BpZWQgPSBjaGlsZDQuY29weVRvKGRpcjIsIG5hbWUyKQorICAgIGRpcjEuZ2V0RmlsZShuYW1l
NCkKKyAgICBkaXIyLmdldEZpbGUobmFtZTIpCisKKyAgICBwcmludCgnKiBDb3B5aW5nIGVudHJp
ZXMgdG8gd2l0aCBlbXB0eSBuYW1lcycpCisKKyAgICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAg
IGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyMiA9
IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDMgPSBkaXIx
LmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQ0ID0gZGlyMS5nZXRG
aWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKKworICAgICMgRGlyZWN0b3J5CisgICAgY29waWVkID0g
Y2hpbGQzLmNvcHlUbyhkaXIyLCBudWxsKQorICAgIGRpcjEuZ2V0RGlyZWN0b3J5KGNoaWxkMy5u
YW1lKQorICAgIGRpcjIuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorCisgICAgIyBGaWxlCisg
ICAgY29waWVkID0gY2hpbGQ0LmNvcHlUbyhkaXIyLCBudWxsKQorICAgIGRpcjEuZ2V0RmlsZShj
aGlsZDQubmFtZSkKKyAgICBkaXIyLmdldEZpbGUoY2hpbGQ0Lm5hbWUpCisKKyAgICBwcmludCgn
KiBDb3B5aW5nIGVudHJpZXMgdG8gdGhlIHNhbWUgZGlyZWN0b3J5IHdpdGggdGhlIHNhbWUgbmFt
ZScpCisKKyAgICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGly
ZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIxID0gcGFyZW50LmdldERpcmVj
dG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBwYXJlbnQuZ2V0RmlsZShuYW1l
MiwgY3JlYXRlX2ZsYWcpCisKKyAgICBkaXIxLmNvcHlUbyhwYXJlbnQsIG51bGwpIHJhaXNlcyAx
MworICAgIGRpcjEuY29weVRvKHBhcmVudCwgbmFtZTEpIHJhaXNlcyAxMworICAgIGZpbGUyLmNv
cHlUbyhwYXJlbnQsIG51bGwpIHJhaXNlcyAxMworICAgIGZpbGUyLmNvcHlUbyhwYXJlbnQsIG5h
bWUyKSByYWlzZXMgMTMKKworICAgIHByaW50KCcqIFRyeWluZyB0byBjb3B5IG5vbi1leGlzdGVu
dCBlbnRyaWVzJykKKworICAgIG5vbmV4aXN0X2RpciA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFt
ZTMsIGNyZWF0ZV9mbGFnKQorICAgIG5vbmV4aXN0X2ZpbGUgPSBwYXJlbnQuZ2V0RmlsZShuYW1l
NCwgY3JlYXRlX2ZsYWcpCisgICAgbm9uZXhpc3RfZGlyLnJlbW92ZSgpCisgICAgbm9uZXhpc3Rf
ZmlsZS5yZW1vdmUoKQorCisgICAgUk9PVC5nZXREaXJlY3Rvcnkobm9uZXhpc3RfZGlyLmZ1bGxQ
YXRoKSByYWlzZXMgOAorICAgIFJPT1QuZ2V0RmlsZShub25leGlzdF9maWxlLmZ1bGxQYXRoKSBy
YWlzZXMgOAorCisgICAgbm9uZXhpc3RfZGlyLmNvcHlUbyhkaXIxLCBuYW1lMikgcmFpc2VzIDgK
KyAgICBub25leGlzdF9maWxlLmNvcHlUbyhkaXIyLCBuYW1lMSkgcmFpc2VzIDgKKworICAgIHBy
aW50KCcqIENvcHlpbmcgZW50cmllcyB0byBhIG5vbi1leGlzdGVudCBkaXJlY3RvcnknKQorCisg
ICAgUk9PVC5nZXREaXJlY3Rvcnkobm9uZXhpc3RfZGlyLmZ1bGxQYXRoKSByYWlzZXMgOAorICAg
IFJPT1QuZ2V0RGlyZWN0b3J5KGRpcjEuZnVsbFBhdGgpCisgICAgUk9PVC5nZXRGaWxlKGZpbGUy
LmZ1bGxQYXRoKQorCisgICAgZGlyMS5jb3B5VG8obm9uZXhpc3RfZGlyLCBuYW1lMSkgcmFpc2Vz
IDgKKyAgICBmaWxlMi5jb3B5VG8obm9uZXhpc3RfZGlyLCBuYW1lMykgcmFpc2VzIDgKKworICAg
IHByaW50KCcqIENvcHlpbmcgZW50cmllcyB0byBpdHMgY2hpbGQnKQorCisgICAgUk9PVC5jb3B5
VG8oZGlyMSkgcmFpc2VzIDEzCisgICAgcGFyZW50LmNvcHlUbyhkaXIxKSByYWlzZXMgMTMKKwor
ICAgIHByaW50KCcqIENvcHlpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbicpCisKKyAgICBk
aXI0ID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lNCwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQx
ID0gZGlyNC5nZXRGaWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDIgPSBkaXI0Lmdl
dERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQzID0gY2hpbGQyLmdldEZp
bGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkNCA9IGNoaWxkMi5nZXREaXJlY3Rvcnko
bmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAgZW50cmllczEgPSBkaXI0LnJlYWREaXJlY3Rvcnko
KQorICAgIGVudHJpZXMyID0gY2hpbGQyLnJlYWREaXJlY3RvcnkoKQorICAgIEFTU0VSVF9FUSgy
LCBlbnRyaWVzMS5sZW5ndGgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJpZXMyLmxlbmd0aCkKKwor
ICAgIGRpcjRfY29weSA9IGRpcjQuY29weVRvKFJPT1QsICdkaXI0X2NvcHknKQorICAgIGNoaWxk
Ml9jb3B5ID0gZGlyNF9jb3B5LmdldERpcmVjdG9yeShuYW1lMikKKworICAgIGVudHJpZXMxX2Nv
cHkgPSBkaXI0X2NvcHkucmVhZERpcmVjdG9yeSgpCisgICAgZW50cmllczJfY29weSA9IGNoaWxk
Ml9jb3B5LnJlYWREaXJlY3RvcnkoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMV9jb3B5Lmxl
bmd0aCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczJfY29weS5sZW5ndGgpCisKKyAgICBwYXJl
bnQuZ2V0RGlyZWN0b3J5KGRpcjQuZnVsbFBhdGgpCisgICAgZGlyNC5nZXRGaWxlKG5hbWUxKQor
ICAgIGRpcjQuZ2V0RGlyZWN0b3J5KG5hbWUyKQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1l
bnRyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVu
dHJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xY2M0MmIxYTU4N2NkYmJlZGU3ZWRiMzkzOTVj
NjAxMTBiZjhlYTRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL29wLWdldC1lbnRyeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorR290IEZpbGVT
eXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KKyogQ3JlYXRpbmcgdG9wLWxldmVsIGRpcmVjdG9y
aWVzIGFuZCBmaWxlcworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitQQVNTICJhIiBpcyAiYSIKK1BBU1MgImIiIGlzICJiIgorUEFTUyAidHJ1ZSIgaXMg
InRydWUiCitQQVNTICJmYWxzZSIgaXMgImZhbHNlIgorUEFTUyAiZmFsc2UiIGlzICJmYWxzZSIK
K1BBU1MgInRydWUiIGlzICJ0cnVlIgorKiBDcmVhdGluZyBuZXN0ZWQgZGlyZWN0b3JpZXMgYW5k
IGZpbGVzCitQQVNTICIvYS9iIiBpcyAiL2EvYiIKK1BBU1MgIi9hL2MiIGlzICIvYS9jIgorKiBD
cmVhdGluZyBoZWF2aWx5IG5lc3RlZCBlbnRyaWVzCitQQVNTICIvYS9iL2MvZC9hIiBpcyAiL2Ev
Yi9jL2QvYSIKK1BBU1MgImEiIGlzICJhIgorKiBHZXR0aW5nIGV4aXN0aW5nIGVudHJpZXMKK1BB
U1MgIi9wYXJlbnQvYSIgaXMgIi9wYXJlbnQvYSIKK1BBU1MgIi9wYXJlbnQvYiIgaXMgIi9wYXJl
bnQvYiIKKyogR2V0dGluZyBmaWxlcy9kaXJlY3RvcmllcyB3aXRoIGZ1bGwgcGF0aHMuCisqIEdl
dHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCByZWxhdGl2ZSBwYXRocy4KKyogVHJ5aW5nIHRv
IGdldC9jcmVhdGUgZW50cmllcyBhdCBub24tZXhpc3RlbnQgcGF0aAorUEFTUyAiOCIgaXMgIjgi
CitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCisqIENh
bGxpbmcgZ2V0RmlsZSBmb3IgYSBkaXJlY3RvcnksIGdldERpcmVjdG9yeSBmb3IgYSBmaWxlCitQ
QVNTICIxMSIgaXMgIjExIgorUEFTUyAiMTEiIGlzICIxMSIKK1BBU1MgIjExIiBpcyAiMTEiCitQ
QVNTICIxMSIgaXMgIjExIgorKiBUcnlpbmcgdG8gY3JlYXRlIGVudHJpZXMgd2l0aCBleGNsdXNp
dmUgZmxhZworUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIg
aXMgIjEzIgorUEFTUyAiMTMiIGlzICIxMyIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtZW50cnkuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtZW50cnkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NWViM2I5OTQ0MTMxOTA5ZTU3YzcwNWMxMGM1OTBmNjJhYTFjODQ5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5odG1sCkBA
IC0wLDAgKzEsMTQzIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1maWxlLXN5c3RlbS10
ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorCisgICAgbmFtZTEgPSAn
YScKKyAgICBuYW1lMiA9ICdiJworICAgIG5hbWUzID0gJ2MnCisgICAgbmFtZTQgPSAnZCcKKwor
ICAgIGNyZWF0ZV9mbGFnID0ge2NyZWF0ZTp0cnVlfQorICAgIGV4Y2x1c2l2ZV9mbGFnID0ge2Ny
ZWF0ZTp0cnVlLCBleGNsdXNpdmU6dHJ1ZX0KKworICAgIHByaW50KCcqIENyZWF0aW5nIHRvcC1s
ZXZlbCBkaXJlY3RvcmllcyBhbmQgZmlsZXMnKQorCisgICAgcmVzZXQoKQorICAgIGRpcjEgPSBS
T09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBST09ULmdl
dEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIEFTU0VSVF9FUShuYW1lMSwgZGlyMS5uYW1l
KQorICAgIEFTU0VSVF9FUShuYW1lMiwgZmlsZTIubmFtZSkKKyAgICBBU1NFUlRfRVEodHJ1ZSwg
ZGlyMS5pc0RpcmVjdG9yeSkKKyAgICBBU1NFUlRfRVEoZmFsc2UsIGRpcjEuaXNGaWxlKQorICAg
IEFTU0VSVF9FUShmYWxzZSwgZmlsZTIuaXNEaXJlY3RvcnkpCisgICAgQVNTRVJUX0VRKHRydWUs
IGZpbGUyLmlzRmlsZSkKKworICAgIHByaW50KCcqIENyZWF0aW5nIG5lc3RlZCBkaXJlY3Rvcmll
cyBhbmQgZmlsZXMnKQorCisgICAgZGlyMV9kaXIyID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTIs
IGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZmlsZTMgPSBkaXIxLmdldEZpbGUobmFtZTMsIGNyZWF0
ZV9mbGFnKQorICAgIEFTU0VSVF9FUSgnL2EvYicsIGRpcjFfZGlyMi5mdWxsUGF0aCkKKyAgICBB
U1NFUlRfRVEoJy9hL2MnLCBkaXIxX2ZpbGUzLmZ1bGxQYXRoKQorCisgICAgcHJpbnQoJyogQ3Jl
YXRpbmcgaGVhdmlseSBuZXN0ZWQgZW50cmllcycpCisKKyAgICByZXNldCgpCisgICAgbmVzdGVk
MSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBuZXN0ZWQyID0g
bmVzdGVkMS5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIG5lc3RlZDMgPSBu
ZXN0ZWQyLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgbmVzdGVkNCA9IG5l
c3RlZDMuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykKKyAgICBuZXN0ZWQ1ID0gbmVz
dGVkNC5nZXRGaWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBBU1NFUlRfRVEoJy9hL2IvYy9k
L2EnLCBuZXN0ZWQ1LmZ1bGxQYXRoKQorICAgIEFTU0VSVF9FUShuYW1lMSwgbmVzdGVkNS5uYW1l
KQorCisgICAgcHJpbnQoJyogR2V0dGluZyBleGlzdGluZyBlbnRyaWVzJykKKworICAgIHJlc2V0
KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcp
CisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAg
IGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAgZGlyMV8y
ID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkKKyAgICBmaWxlMl8yID0gcGFyZW50LmdldEZp
bGUobmFtZTIpCisgICAgQVNTRVJUX0VRKGRpcjEuZnVsbFBhdGgsIGRpcjFfMi5mdWxsUGF0aCkK
KyAgICBBU1NFUlRfRVEoZmlsZTIuZnVsbFBhdGgsIGZpbGUyXzIuZnVsbFBhdGgpCisKKyAgICBw
cmludCgnKiBHZXR0aW5nIGZpbGVzL2RpcmVjdG9yaWVzIHdpdGggZnVsbCBwYXRocy4nKQorCisg
ICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVh
dGVfZmxhZykKKyAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2Zs
YWcpCisgICAgZGlyMiA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQor
CisgICAgZGlyID0gUk9PVC5nZXREaXJlY3RvcnkoJy9wYXJlbnQvYS9hJywgY3JlYXRlX2ZsYWcp
CisgICAgZmlsZSA9IFJPT1QuZ2V0RmlsZSgnL3BhcmVudC9hL2InLCBjcmVhdGVfZmxhZykKKyAg
ICBkaXIxLmdldERpcmVjdG9yeSgnYScpCisgICAgZGlyMS5nZXRGaWxlKCdiJykKKworICAgICMg
VGhlIGVudHJ5J3MgcGF0aCBtdXN0IG5vdCBiZSB1c2VkIGlmIHRoZSBnaXZlbiBwYXRoIGlzIGEg
ZnVsbCBwYXRoLgorICAgIGRpciA9IGRpcjIuZ2V0RGlyZWN0b3J5KCcvcGFyZW50L2EvYycsIGNy
ZWF0ZV9mbGFnKQorICAgIGZpbGUgPSBkaXIyLmdldEZpbGUoJy9wYXJlbnQvYS9kJywgY3JlYXRl
X2ZsYWcpCisgICAgZGlyMS5nZXREaXJlY3RvcnkoJ2MnKQorICAgIGRpcjEuZ2V0RmlsZSgnZCcp
CisKKyAgICBwcmludCgnKiBHZXR0aW5nIGZpbGVzL2RpcmVjdG9yaWVzIHdpdGggcmVsYXRpdmUg
cGF0aHMuJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgn
cGFyZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFt
ZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMiwgY3Jl
YXRlX2ZsYWcpCisKKyAgICBkaXIgPSBkaXIxLmdldERpcmVjdG9yeSgnYi9hJywgY3JlYXRlX2Zs
YWcpCisgICAgZmlsZSA9IGRpcjEuZ2V0RmlsZSgnYi9iJywgY3JlYXRlX2ZsYWcpCisgICAgUk9P
VC5nZXREaXJlY3RvcnkoJy9wYXJlbnQvYS9iL2EnKQorICAgIFJPT1QuZ2V0RmlsZSgnL3BhcmVu
dC9hL2IvYicpCisgICAgcGFyZW50LmdldERpcmVjdG9yeSgnYS9iL2EnKQorICAgIHBhcmVudC5n
ZXRGaWxlKCdhL2IvYicpCisKKyAgICBwcmludCgnKiBUcnlpbmcgdG8gZ2V0L2NyZWF0ZSBlbnRy
aWVzIGF0IG5vbi1leGlzdGVudCBwYXRoJykKKworICAgIGRpcjEuZ2V0RmlsZSgnbm9uZXhpc3Rl
bnQnKSByYWlzZXMgOAorICAgIGRpcjEuZ2V0RGlyZWN0b3J5KCdub25leGlzdGVudCcpIHJhaXNl
cyA4CisgICAgZGlyMS5nZXRGaWxlKCdub25leGlzdGVudC9kJywgY3JlYXRlX2ZsYWcpIHJhaXNl
cyA4CisgICAgZGlyMS5nZXREaXJlY3RvcnkoJ25vbmV4aXN0ZW50L2QnLCBjcmVhdGVfZmxhZykg
cmFpc2VzIDgKKworICAgIHByaW50KCcqIENhbGxpbmcgZ2V0RmlsZSBmb3IgYSBkaXJlY3Rvcnks
IGdldERpcmVjdG9yeSBmb3IgYSBmaWxlJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBS
T09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyID0gcGFyZW50Lmdl
dERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZSA9IHBhcmVudC5nZXRGaWxl
KG5hbWUzLCBjcmVhdGVfZmxhZykKKworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGZpbGUuZnVsbFBh
dGgpIHJhaXNlcyAxMQorICAgIFJPT1QuZ2V0RmlsZShkaXIuZnVsbFBhdGgpIHJhaXNlcyAxMQor
ICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZmlsZS5uYW1lKSByYWlzZXMgMTEKKyAgICBwYXJlbnQu
Z2V0RmlsZShkaXIubmFtZSkgcmFpc2VzIDExCisKKyAgICBwcmludCgnKiBUcnlpbmcgdG8gY3Jl
YXRlIGVudHJpZXMgd2l0aCBleGNsdXNpdmUgZmxhZycpCisKKyAgICByZXNldCgpCisgICAgcGFy
ZW50ID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpciA9IHBh
cmVudC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUgPSBwYXJlbnQu
Z2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisKKyAgICBST09ULmdldERpcmVjdG9yeShkaXIu
ZnVsbFBhdGgsIGV4Y2x1c2l2ZV9mbGFnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoZmls
ZS5mdWxsUGF0aCwgZXhjbHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworICAgIHBhcmVudC5nZXREaXJl
Y3RvcnkoZGlyLm5hbWUsIGV4Y2x1c2l2ZV9mbGFnKSByYWlzZXMgMTMKKyAgICBwYXJlbnQuZ2V0
RmlsZShmaWxlLm5hbWUsIGV4Y2x1c2l2ZV9mbGFnKSByYWlzZXMgMTMKKworICAgIGRpci5yZW1v
dmUoKQorICAgIGZpbGUucmVtb3ZlKCkKKworICAgICMgTm93IHRoaXMgc2hvdWxkIHN1Y2NlZWQu
CisgICAgUk9PVC5nZXREaXJlY3RvcnkoZGlyLmZ1bGxQYXRoLCBleGNsdXNpdmVfZmxhZykKKyAg
ICBST09ULmdldEZpbGUoZmlsZS5mdWxsUGF0aCwgZXhjbHVzaXZlX2ZsYWcpCisKKyAgICBkaXIu
cmVtb3ZlKCkKKyAgICBmaWxlLnJlbW92ZSgpCisKKyAgICAjIE5vdyB0aGlzIHNob3VsZCBzdWNj
ZWVkLgorICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyLm5hbWUsIGV4Y2x1c2l2ZV9mbGFnKQor
ICAgIHBhcmVudC5nZXRGaWxlKGZpbGUubmFtZSwgZXhjbHVzaXZlX2ZsYWcpCisKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiYTU3
Mjc3YWYyYjgyMTE0ODJmMzU2OWUyNjY2MWYwNzQ1YjQ5ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyogR2V0IG1ldGFk
YXRhIGZvciBkaXJlY3RvcmllcworKiBHZXQgbWV0YWRhdGEgZm9yIGZpbGVzCitQQVNTICJbb2Jq
ZWN0IE1ldGFkYXRhXSIgaXMgPj0gIltvYmplY3QgTWV0YWRhdGFdIgorU2NyaXB0IGV4ZWN1dGlv
biBmaW5pc2hlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29w
LWdldC1tZXRhZGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1t
ZXRhZGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ZGEwOTA1NmQzOTFiYzdhOGRhYTA2ODA2ZDgwN2Uy
YTI4MDhmZjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
b3AtZ2V0LW1ldGFkYXRhLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFwcGxp
Y2F0aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2Ny
aXB0Ij4KKworICAgIHN0YXJ0ID0gUk9PVC5nZXRNZXRhZGF0YSgpOworICAgIHJlc2V0KCkKKwor
ICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVh
dGU6dHJ1ZX0KKworICAgIGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2Zs
YWcpCisgICAgZmlsZTIgPSBST09ULmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGRp
cjFfZmlsZTEgPSBkaXIxLmdldEZpbGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZGly
MiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKworICAgIHByaW50KCcq
IEdldCBtZXRhZGF0YSBmb3IgZGlyZWN0b3JpZXMnKQorICAgIG1ldGFkYXRhID0gZGlyMS5nZXRN
ZXRhZGF0YSgpCisgICAgbWV0YWRhdGEgPSBkaXIxX2RpcjIuZ2V0TWV0YWRhdGEoKQorCisgICAg
cHJpbnQoJyogR2V0IG1ldGFkYXRhIGZvciBmaWxlcycpCisgICAgbWV0YWRhdGEgPSBmaWxlMi5n
ZXRNZXRhZGF0YSgpCisgICAgbWV0YWRhdGEgPSBkaXIxX2ZpbGUxLmdldE1ldGFkYXRhKCkKKwor
ICAgICMgTWFrZSBzdXJlIHdlIGdldCB0aGUgbmV3ZXIgdGltZXN0YW1wLgorICAgIGVuZCA9IGRp
cjFfZmlsZTEuZ2V0TWV0YWRhdGEoKQorICAgIEFTU0VSVF9HRShlbmQsIHN0YXJ0KQorCis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNWRk
MWIxYmExNDYwM2ZkMjQ4MzI4Yzg5MTQwZmY2NDgyMWZiYzEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KKyogR2V0
dGluZyBhIHBhcmVudCBvZiBlbnRyaWVzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitQQVNTICIvYS9iIiBpcyAiL2EvYiIKK1BBU1MgIi9hIiBpcyAi
L2EiCitQQVNTICIvIiBpcyAiLyIKK1BBU1MgIi8iIGlzICIvIgorU2NyaXB0IGV4ZWN1dGlvbiBm
aW5pc2hlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdl
dC1wYXJlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMWY1YjBjZGM4MzU0YjU5Yjk0MGI3YzU4NWJmNmVkMjgyOTA2Mzlh
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQt
cGFyZW50Lmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gt
ZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKwor
ICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAgICBuYW1lMyA9ICdjJworCisgICAg
Y3JlYXRlX2ZsYWcgPSB7Y3JlYXRlOnRydWV9CisKKyAgICBwcmludCgnKiBHZXR0aW5nIGEgcGFy
ZW50IG9mIGVudHJpZXMuJykKKworICAgIHJlc2V0KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJl
Y3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIgPSBkaXIxLmdldERpcmVjdG9yeShu
YW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTMgPSBkaXIyLmdldEZpbGUobmFtZTMsIGNyZWF0
ZV9mbGFnKQorCisgICAgcGFyZW50ID0gZmlsZTMuZ2V0UGFyZW50KCkKKyAgICBBU1NFUlRfRVEo
cGFyZW50LmZ1bGxQYXRoLCBkaXIyLmZ1bGxQYXRoKQorCisgICAgcGFyZW50ID0gZGlyMi5nZXRQ
YXJlbnQoKQorICAgIEFTU0VSVF9FUShwYXJlbnQuZnVsbFBhdGgsIGRpcjEuZnVsbFBhdGgpCisK
KyAgICBwYXJlbnQgPSBkaXIxLmdldFBhcmVudCgpCisgICAgQVNTRVJUX0VRKHBhcmVudC5mdWxs
UGF0aCwgUk9PVC5mdWxsUGF0aCkKKworICAgIHBhcmVudCA9IFJPT1QuZ2V0UGFyZW50KCkKKyAg
ICBBU1NFUlRfRVEocGFyZW50LmZ1bGxQYXRoLCBST09ULmZ1bGxQYXRoKQorCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9vcC1tb3ZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9vcC1tb3ZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NmVmYTJiMzE4ZWI5ZWYxNjVj
NGM4ODNhMzQ2YWVjZGYzNTBlNmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL29wLW1vdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK0dvdCBG
aWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyogTW92aW5nIGFuIGVudHJ5IHRvIHRoZSBzYW1lIGRp
cmVjdG9yeQorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIKKyogTW92aW5nIGVudHJp
ZXMgdG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5CitQQVNTICI4IiBpcyAiOCIKK1BBU1MgIjgiIGlz
ICI4IgorKiBNb3ZpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzCitQQVNTICI4IiBpcyAi
OCIKK1BBU1MgIjgiIGlzICI4IgorKiBNb3ZpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJlY3Rv
cnkgd2l0aCB0aGUgc2FtZSBuYW1lCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMiIGlzICIx
MyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorKiBUcnlpbmcgdG8gbW92
ZSBub24tZXhpc3RlbnQgZW50cmllcworUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIK
K1BBU1MgIjgiIGlzICI4IgorUEFTUyAiOCIgaXMgIjgiCisqIE1vdmluZyBlbnRyaWVzIHRvIGEg
bm9uLWV4aXN0ZW50IGRpcmVjdG9yeQorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAiOCIK
K1BBU1MgIjgiIGlzICI4IgorKiBNb3ZpbmcgZW50cmllcyB0byBpdHMgY2hpbGQKK1BBU1MgIjEz
IiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorKiBNb3ZpbmcgYSBkaXJlY3Rvcnkgd2l0aCBj
aGlsZHJlbgorUEFTUyAiMiIgaXMgIjIiCitQQVNTICIyIiBpcyAiMiIKK1BBU1MgIjIiIGlzICIy
IgorUEFTUyAiMiIgaXMgIjIiCitQQVNTICI4IiBpcyAiOCIKK1NjcmlwdCBleGVjdXRpb24gZmlu
aXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1tb3Zl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVkMjQwNTk5ZDFiZDI4NzlhZGFjMjhkNzJiYjA1NDIwZDJhNzk2OTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS5odG1sCkBAIC0wLDAg
KzEsMTQyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRl
c3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1maWxlLXN5c3RlbS10ZXN0LXNo
ZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorICAgIHJlc2V0KCkKKworICAgIG5h
bWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAgICBuYW1lMyA9ICdjJworICAgIG5hbWU0ID0g
J2QnCisgICAgY3JlYXRlX2ZsYWcgPSB7Y3JlYXRlOnRydWV9CisKKyAgICBwcmludCgnKiBNb3Zp
bmcgYW4gZW50cnkgdG8gdGhlIHNhbWUgZGlyZWN0b3J5JykKKworICAgICMgUmVzZXQKKyAgICBy
ZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9m
bGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykK
KyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUyLCBjcmVhdGVfZmxhZykKKworICAgICMg
RGlyZWN0b3J5CisgICAgbW92ZWQgPSBkaXIxLm1vdmVUbyhwYXJlbnQsIG5hbWUzKQorICAgIHBh
cmVudC5nZXREaXJlY3RvcnkobmFtZTEpIHJhaXNlcyA4CisgICAgcGFyZW50LmdldERpcmVjdG9y
eShuYW1lMykKKworICAgICMgRmlsZQorICAgIG1vdmVkID0gZmlsZTIubW92ZVRvKHBhcmVudCwg
bmFtZTQpCisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkgcmFpc2VzIDgKKyAgICBwYXJl
bnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAgcHJpbnQoJyogTW92aW5nIGVudHJpZXMgdG8g
YSBkaWZmZXJlbnQgZGlyZWN0b3J5JykKKworICAgICMgUmVzZXQKKyAgICByZXNldCgpCisgICAg
ZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBkaXIyID0g
Uk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMyA9IGRpcjEu
Z2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDQgPSBkaXIxLmdldEZp
bGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBEaXJlY3RvcnkKKyAgICBtb3ZlZCA9IGNo
aWxkMy5tb3ZlVG8oZGlyMiwgbmFtZTEpCisgICAgZGlyMS5nZXREaXJlY3RvcnkobmFtZTMpIHJh
aXNlcyA4CisgICAgZGlyMi5nZXREaXJlY3RvcnkobmFtZTEpCisKKyAgICAjIEZpbGUKKyAgICBt
b3ZlZCA9IGNoaWxkNC5tb3ZlVG8oZGlyMiwgbmFtZTIpCisgICAgZGlyMS5nZXRGaWxlKG5hbWU0
KSByYWlzZXMgOAorICAgIGRpcjIuZ2V0RmlsZShuYW1lMikKKworICAgIHByaW50KCcqIE1vdmlu
ZyBlbnRyaWVzIHRvIHdpdGggZW1wdHkgbmFtZXMnKQorCisgICAgIyBSZXNldAorICAgIHJlc2V0
KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAg
IGRpcjIgPSBST09ULmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQz
ID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkNCA9IGRp
cjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcpCisKKyAgICAjIERpcmVjdG9yeQorICAgIG1v
dmVkID0gY2hpbGQzLm1vdmVUbyhkaXIyLCBudWxsKQorICAgIGRpcjEuZ2V0RGlyZWN0b3J5KGNo
aWxkMy5uYW1lKSByYWlzZXMgOAorICAgIGRpcjIuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQor
CisgICAgIyBGaWxlCisgICAgbW92ZWQgPSBjaGlsZDQubW92ZVRvKGRpcjIsIG51bGwpCisgICAg
ZGlyMS5nZXRGaWxlKGNoaWxkNC5uYW1lKSByYWlzZXMgOAorICAgIGRpcjIuZ2V0RmlsZShjaGls
ZDQubmFtZSkKKworICAgIHByaW50KCcqIE1vdmluZyBlbnRyaWVzIHRvIHRoZSBzYW1lIGRpcmVj
dG9yeSB3aXRoIHRoZSBzYW1lIG5hbWUnKQorCisgICAgIyBSZXNldAorICAgIHJlc2V0KCkKKyAg
ICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcpCisgICAg
ZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUy
ID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAgZGlyMS5tb3ZlVG8o
cGFyZW50LCBudWxsKSByYWlzZXMgMTMKKyAgICBkaXIxLm1vdmVUbyhwYXJlbnQsIG5hbWUxKSBy
YWlzZXMgMTMKKyAgICBmaWxlMi5tb3ZlVG8ocGFyZW50LCBudWxsKSByYWlzZXMgMTMKKyAgICBm
aWxlMi5tb3ZlVG8ocGFyZW50LCBuYW1lMikgcmFpc2VzIDEzCisKKyAgICBwcmludCgnKiBUcnlp
bmcgdG8gbW92ZSBub24tZXhpc3RlbnQgZW50cmllcycpCisKKyAgICBub25leGlzdF9kaXIgPSBw
YXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBub25leGlzdF9maWxl
ID0gcGFyZW50LmdldEZpbGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorICAgIG5vbmV4aXN0X2Rpci5y
ZW1vdmUoKQorICAgIG5vbmV4aXN0X2ZpbGUucmVtb3ZlKCkKKworICAgIFJPT1QuZ2V0RGlyZWN0
b3J5KG5vbmV4aXN0X2Rpci5mdWxsUGF0aCkgcmFpc2VzIDgKKyAgICBST09ULmdldEZpbGUobm9u
ZXhpc3RfZmlsZS5mdWxsUGF0aCkgcmFpc2VzIDgKKworICAgIG5vbmV4aXN0X2Rpci5tb3ZlVG8o
ZGlyMSwgbmFtZTIpIHJhaXNlcyA4CisgICAgbm9uZXhpc3RfZmlsZS5tb3ZlVG8oZGlyMiwgbmFt
ZTEpIHJhaXNlcyA4CisKKyAgICBwcmludCgnKiBNb3ZpbmcgZW50cmllcyB0byBhIG5vbi1leGlz
dGVudCBkaXJlY3RvcnknKQorCisgICAgUk9PVC5nZXREaXJlY3Rvcnkobm9uZXhpc3RfZGlyLmZ1
bGxQYXRoKSByYWlzZXMgOAorICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpcjEuZnVsbFBhdGgpCisg
ICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRoKQorCisgICAgZGlyMS5tb3ZlVG8obm9uZXhp
c3RfZGlyLCBuYW1lMSkgcmFpc2VzIDgKKyAgICBmaWxlMi5tb3ZlVG8obm9uZXhpc3RfZGlyLCBu
YW1lMykgcmFpc2VzIDgKKworICAgIHByaW50KCcqIE1vdmluZyBlbnRyaWVzIHRvIGl0cyBjaGls
ZCcpCisKKyAgICBST09ULm1vdmVUbyhkaXIxKSByYWlzZXMgMTMKKyAgICBwYXJlbnQubW92ZVRv
KGRpcjEpIHJhaXNlcyAxMworCisgICAgcHJpbnQoJyogTW92aW5nIGEgZGlyZWN0b3J5IHdpdGgg
Y2hpbGRyZW4nKQorCisgICAgZGlyNCA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTQsIGNyZWF0
ZV9mbGFnKQorICAgIGNoaWxkMSA9IGRpcjQuZ2V0RmlsZShuYW1lMSwgY3JlYXRlX2ZsYWcpCisg
ICAgY2hpbGQyID0gZGlyNC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNo
aWxkMyA9IGNoaWxkMi5nZXRGaWxlKG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDQgPSBj
aGlsZDIuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykKKworICAgIGVudHJpZXMxID0g
ZGlyNC5yZWFkRGlyZWN0b3J5KCkKKyAgICBlbnRyaWVzMiA9IGNoaWxkMi5yZWFkRGlyZWN0b3J5
KCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczEubGVuZ3RoKQorICAgIEFTU0VSVF9FUSgyLCBl
bnRyaWVzMi5sZW5ndGgpCisKKyAgICBkaXI0X25ldyA9IGRpcjQubW92ZVRvKFJPT1QsICdkaXI0
X25ldycpCisgICAgY2hpbGQyX25ldyA9IGRpcjRfbmV3LmdldERpcmVjdG9yeShuYW1lMikKKwor
ICAgIGVudHJpZXMxX25ldyA9IGRpcjRfbmV3LnJlYWREaXJlY3RvcnkoKQorICAgIGVudHJpZXMy
X25ldyA9IGNoaWxkMl9uZXcucmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJp
ZXMxX25ldy5sZW5ndGgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJpZXMyX25ldy5sZW5ndGgpCisK
KyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KGRpcjQuZnVsbFBhdGgpIHJhaXNlcyA4CisKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vb3AtcmVhZC1kaXJlY3RvcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NDBiZGIzMTlmNGQ4YTZkM2ZmNDk2Yjg2ZjViZWNmMjdlMTc0YzU0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5
c3RlbQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQ
QVNTICIwIiBpcyAiMCIKK1BBU1MgIjEiIGlzICIxIgorUEFTUyAiNyIgaXMgIjciCitbRU5UUlkg
e3BhdGg6L3BhcmVudC9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3Bh
cmVudC9iIG5hbWU6YiB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9jIG5h
bWU6YyB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9kIG5hbWU6ZCB0eXBl
OkZJTEV9LAorIEVOVFJZIHtwYXRoOi9wYXJlbnQvZSBuYW1lOmUgdHlwZTpGSUxFfSwKKyBFTlRS
WSB7cGF0aDovcGFyZW50L2YgbmFtZTpmIHR5cGU6RElSRUNUT1JZfSwKKyBFTlRSWSB7cGF0aDov
cGFyZW50L2cgbmFtZTpnIHR5cGU6RklMRX1dCitQQVNTICI1IiBpcyAiNSIKK1tFTlRSWSB7cGF0
aDovcGFyZW50L2EgbmFtZTphIHR5cGU6RElSRUNUT1JZfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50
L2MgbmFtZTpjIHR5cGU6RElSRUNUT1JZfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50L2QgbmFtZTpk
IHR5cGU6RklMRX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9lIG5hbWU6ZSB0eXBlOkZJTEV9LAor
IEVOVFJZIHtwYXRoOi9wYXJlbnQvZiBuYW1lOmYgdHlwZTpESVJFQ1RPUll9XQorU2NyaXB0IGV4
ZWN1dGlvbiBmaW5pc2hlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL29wLXJlYWQtZGlyZWN0b3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
b3AtcmVhZC1kaXJlY3RvcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzlmN2ViNDllOTc2ZjdkZDVlZDAw
OGViMzcyZTRiZDc1MGNlZTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5Lmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHR5cGU9ImFwcGxpY2F0aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9ImZpbGUtc3lz
dGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAg
ICBuYW1lMyA9ICdjJworICAgIG5hbWU0ID0gJ2QnCisKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVh
dGU6dHJ1ZX0KKworICAgIHJlc2V0KCkKKworICAgIGVudHJpZXMgPSBST09ULnJlYWREaXJlY3Rv
cnkoKQorICAgIEFTU0VSVF9FUSgwLCBlbnRyaWVzLmxlbmd0aCkKKworICAgIHBhcmVudCA9IFJP
T1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBhID0gcGFyZW50Lmdl
dERpcmVjdG9yeSgnYScsIGNyZWF0ZV9mbGFnKQorICAgIGIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5
KCdiJywgY3JlYXRlX2ZsYWcpCisgICAgYyA9IHBhcmVudC5nZXREaXJlY3RvcnkoJ2MnLCBjcmVh
dGVfZmxhZykKKyAgICBkID0gcGFyZW50LmdldEZpbGUoJ2QnLCBjcmVhdGVfZmxhZykKKyAgICBl
ID0gcGFyZW50LmdldEZpbGUoJ2UnLCBjcmVhdGVfZmxhZykKKyAgICBmID0gcGFyZW50LmdldERp
cmVjdG9yeSgnZicsIGNyZWF0ZV9mbGFnKQorICAgIGcgPSBwYXJlbnQuZ2V0RmlsZSgnZycsIGNy
ZWF0ZV9mbGFnKQorCisgICAgYy5nZXRGaWxlKCdoJywgY3JlYXRlX2ZsYWcpCisgICAgYy5nZXRE
aXJlY3RvcnkoJ2knLCBjcmVhdGVfZmxhZykKKyAgICBmLmdldEZpbGUoJ2onLCBjcmVhdGVfZmxh
ZykKKworICAgIGVudHJpZXMgPSBST09ULnJlYWREaXJlY3RvcnkoKQorICAgIEFTU0VSVF9FUSgx
LCBlbnRyaWVzLmxlbmd0aCkKKworICAgIGVudHJpZXMgPSBwYXJlbnQucmVhZERpcmVjdG9yeSgp
CisgICAgQVNTRVJUX0VRKDcsIGVudHJpZXMubGVuZ3RoKQorICAgIHByaW50KGVudHJpZXMpCisK
KyAgICBnLnJlbW92ZSgpCisgICAgYi5yZW1vdmUoKQorICAgIGVudHJpZXMgPSBwYXJlbnQucmVh
ZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDUsIGVudHJpZXMubGVuZ3RoKQorICAgIHByaW50
KGVudHJpZXMpCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNo
ZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJmODI0OGRmNDAzNTFlNGJiNjFkMTUyNzU1OGZkMDgwZDQ1ZjY2NmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQor
KiBSZW1vdmluZyBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyAiOCIgaXMgIjgiCitQQVNTICI4IiBpcyAi
OCIKKyogUmVtb3Zpbmcgbm9uLWV4aXN0ZW50IGZpbGUgb3IgZGlyZWN0b3J5CitQQVNTICI4IiBp
cyAiOCIKK1BBU1MgIjgiIGlzICI4IgorKiBSZW1vdmluZyBhIGRpcmVjdG9yeSB3aXRoIGNoaWxk
cmVuCitQQVNTICIxMyIgaXMgIjEzIgorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZTM4
ODZlOGI1YTFhM2ViNDkyOGJjYTM2NTVjOTBjYTdhYzVlNzcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLmh0bWwKQEAgLTAsMCArMSw1NCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0
LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxs
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9
ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIg
PSAnYicKKworICAgIGNyZWF0ZV9mbGFnID0ge2NyZWF0ZTp0cnVlfQorCisgICAgcHJpbnQoJyog
UmVtb3ZpbmcgZmlsZXMgYW5kIGRpcmVjdG9yaWVzJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJl
bnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9
IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUyID0gcGFy
ZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBNYWtlIHN1cmUgdGhlIGVu
dHJpZXMgZXhpc3QKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorICAgIHBhcmVudC5n
ZXRGaWxlKG5hbWUyKQorCisgICAgZGlyMS5yZW1vdmUoKQorICAgIGZpbGUyLnJlbW92ZSgpCisK
KyAgICAjIE5vdyB0aGV5IHNob3VsZCBiZSBnb25lIGF3YXkKKyAgICBwYXJlbnQuZ2V0RGlyZWN0
b3J5KG5hbWUxKSByYWlzZXMgOAorICAgIHBhcmVudC5nZXRGaWxlKG5hbWUyKSByYWlzZXMgOAor
CisgICAgcHJpbnQoJyogUmVtb3Zpbmcgbm9uLWV4aXN0ZW50IGZpbGUgb3IgZGlyZWN0b3J5JykK
KworICAgIGRpcjEucmVtb3ZlKCkgcmFpc2VzIDgKKyAgICBmaWxlMi5yZW1vdmUoKSByYWlzZXMg
OAorCisgICAgcHJpbnQoJyogUmVtb3ZpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbicpCisK
KyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNy
ZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVf
ZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUyLCBjcmVhdGVfZmxhZykKKwor
ICAgIHBhcmVudC5yZW1vdmUoKSByYWlzZXMgMTMKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFs
bGVsLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3BhcmFsbGVsLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjhlNzYxNWZj
ZWE5ZTZlMTM0YjFhMzBlOGU3NWNhNWYwZTM2MGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcGFyYWxsZWwtb3BlcmF0aW9ucy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNiBAQAorVGVzdCBtYWtpbmcgbXVsdGlwbGUgRmlsZVN5c3RlbSBvcGVyYXRpb25z
IGluIHBhcmFsbGVsLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworR290IEZpbGVT
eXN0ZW06VGVzdFNoZWxsRmlsZVN5c3RlbQorcmVxdWVzdGVkIEZpbGVTeXN0ZW0uCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1N0YXJ0aW5nIHBhcmFs
bGVsIHRlc3Qgc3RhZ2UgMS4KK1N0YXJ0aW5nIHBhcmFsbGVsIHRlc3Qgc3RhZ2UgMi4KK1Zlcmlm
eWluZyB0aGUgRmlsZVN5c3RlbSBzdGF0dXMuCitQQVNTICIvYSwvYjIsL2MsL2QsL2UiIGlzICIv
YSwvYjIsL2MsL2QsL2UiCitEb25lLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vcGFyYWxsZWwtb3BlcmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjQ1NjkyOGYyM2Ri
Y2YyM2I1NDAzMTIzYzI0NTA3ZGIyZTczOWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlvbnMuaHRtbApAQCAtMCwwICsxLDEz
IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRl
c3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL3BhcmFsbGVsLW9wZXJhdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2Ut
cGVyc2lzdGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVx
dWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDAwNGJl
MjVhNjRlYzk1NTE5YWNmNGI0NGQ0OTY0NDE4ODNlNjIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVT
eXN0ZW0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
U2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxl
U3lzdGVtCitQQVNTICIxIiBpcyAiMSIKK1BBU1MgIi9hYSIgaXMgIi9hYSIKK1NjcmlwdCBleGVj
dXRpb24gZmluaXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3RlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3RlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWU4
ODU4MzJmODU5YzExZDY0YjZiY2I3ZTc3MTBiNzRlNThlOTFhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC5o
dG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWZpbGUtc3lz
dGVtLXRlc3Qtc2hlbGwiIGlkPSJzY3JpcHQxIj4KKyAgICByZXNldCgpOworICAgIFJPT1QuZ2V0
RGlyZWN0b3J5KCdhYScsIHtjcmVhdGU6dHJ1ZX0pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
ImFwcGxpY2F0aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9InNjcmlwdDIiPgorICAg
ICMgU2VlIGlmIHdlIGdldCB0aGUgc2FtZSBmaWxlIHN5c3RlbS4KKyAgICBlbnRyaWVzID0gUk9P
VC5yZWFkRGlyZWN0b3J5KCk7CisgICAgZW50cnkgPSBlbnRyaWVzWzBdCisgICAgQVNTRVJUX0VR
KDEsIGVudHJpZXMubGVuZ3RoKTsKKyAgICBBU1NFUlRfRVEoJy9hYScsIGVudHJ5LmZ1bGxQYXRo
KTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blNlY29uZFRlc3QoKSB7CisgICAg
dmFyIHNoZWxsID0gbmV3IEZpbGVTeXN0ZW1UZXN0U2hlbGwoUEVSU0lTVEVOVCwgMTAwLCBkZWJ1
ZywgZnVuY3Rpb24oKXsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0pOworICAg
IHNoZWxsLnJ1blNjcmlwdHMoJ3NjcmlwdDInKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0Rmls
ZVN5c3RlbSkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIHZhciBzaGVsbCA9
IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFBFUlNJU1RFTlQsIDEwMCwgZGVidWcsIHJ1blNlY29u
ZFRlc3QpOworICAgIHNoZWxsLnJ1blNjcmlwdHMoJ3NjcmlwdDEnKTsKK30gZWxzZQorICAgIGRl
YnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKworc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVt
cG9yYXJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0
LWZzLXR3aWNlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2QwMDRiZTI1YTY0
ZWM5NTUxOWFjZjRiNDRkNDk2NDQxODgzZTYyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXRlbXBvcmFyeS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorU2NyaXB0
IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVt
CitQQVNTICIxIiBpcyAiMSIKK1BBU1MgIi9hYSIgaXMgIi9hYSIKK1NjcmlwdCBleGVjdXRpb24g
ZmluaXNoZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1
ZXN0LWZzLXR3aWNlLXRlbXBvcmFyeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIxYmMwZTRlMWVj
NGMxMjJiZTRhNmMwNTk5NDYwZjRiNWJkZmFhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXRlbXBvcmFyeS5odG1sCkBAIC0w
LDAgKzEsNDIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMt
dGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWZpbGUtc3lzdGVtLXRlc3Qt
c2hlbGwiIGlkPSJzY3JpcHQxIj4KKyAgICByZXNldCgpOworICAgIFJPT1QuZ2V0RGlyZWN0b3J5
KCdhYScsIHtjcmVhdGU6dHJ1ZX0pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0
aW9uL3gtZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9InNjcmlwdDIiPgorICAgICMgU2VlIGlm
IHdlIGdldCB0aGUgc2FtZSBmaWxlIHN5c3RlbS4KKyAgICBlbnRyaWVzID0gUk9PVC5yZWFkRGly
ZWN0b3J5KCk7CisgICAgZW50cnkgPSBlbnRyaWVzWzBdCisgICAgQVNTRVJUX0VRKDEsIGVudHJp
ZXMubGVuZ3RoKTsKKyAgICBBU1NFUlRfRVEoJy9hYScsIGVudHJ5LmZ1bGxQYXRoKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blNlY29uZFRlc3QoKSB7CisgICAgdmFyIHNoZWxs
ID0gbmV3IEZpbGVTeXN0ZW1UZXN0U2hlbGwoVEVNUE9SQVJZLCAxMDAsIGRlYnVnLCBmdW5jdGlv
bigpeworICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSk7CisgICAgc2hlbGwucnVu
U2NyaXB0cygnc2NyaXB0MicpOworfQorCitpZiAod2luZG93LnJlcXVlc3RGaWxlU3lzdGVtKSB7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgdmFyIHNoZWxsID0gbmV3IEZpbGVT
eXN0ZW1UZXN0U2hlbGwoVEVNUE9SQVJZLCAxMDAsIGRlYnVnLCBydW5TZWNvbmRUZXN0KTsKKyAg
ICBzaGVsbC5ydW5TY3JpcHRzKCdzY3JpcHQxJyk7Cit9IGVsc2UKKyAgICBkZWJ1ZygiVGhpcyB0
ZXN0IHJlcXVpcmVzIEZpbGVTeXN0ZW0gQVBJIHN1cHBvcnQuIik7CitzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxs
LXRlbXBvcmFyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzdiM2E5NDhhOTAxY2FiYTFhODJkOWQ3ZjE0MWE0
MTg5NGNjZGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcwpAQCAtMCwwICsxLDE1IEBACitm
dW5jdGlvbiBlbmRUZXN0KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworaWYgKHdp
bmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwor
ICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFRFTVBPUkFSWSwgMTAwLCBk
ZWJ1ZywgZW5kVGVzdCk7CisgICAgc2hlbGwucnVuU2NyaXB0cygnZmlsZS1zeXN0ZW0tdGVzdC1z
Y3JpcHQnKTsKK30gZWxzZQorICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3Rl
bSBBUEkgc3VwcG9ydC4iKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNjQ5OWJjODVjYjM5MjhjYzYyNTVkOGUxZTk2MGEwY2FmN2ZlZDk5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9m
cy10ZXN0LXNoZWxsLmpzCkBAIC0wLDAgKzEsMzU3IEBACisvKgorICAgQXZhaWxhYmxlIHZhcmlh
YmxlcyBhbmQgZnVuY3Rpb25zOgorICAgICA8ZW50cnk+LjxlbnRyeU1ldGhvZD4oLi4uKSBbcmFp
c2UgPGNvZGU+XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLiBDYWxscyB0aGUg
ZW50cnkgbWV0aG9kIHN5bmNocm9ub3VzbHkuIEl0IGRvZXMgbm90IGVycm9yIG91dCBpZiAicmFp
c2UgPGNvZGU+IiBpcyBnaXZlbiBhbmQgaXQgaGFzIHRocm93biB0aGUgZXJyb3IgY29kZSA8Y29k
ZT4uCisgICAgIHJlc2V0KCkgICAgICAgICAgICAgICAgICAgLi4uIFJlbW92ZXMgYWxsIGVudHJp
ZXMgaW4gdGhlIGZpbGUgc3lzdGVtLgorICAgICBwcmludCg8YXJnPikgICAgICAgICAgICAgIC4u
LiBQcmludHMgb3V0IHRoZSBnaXZlbiBhcmcuCisgICAgIEFTU0VSVF9FUSg8YXJnMT4sIDxhcmcy
PikgLi4uIEFzc2VydHMgdGhhdCA8YXJnMT4gYW5kIDxhcmcyPiBhcmUgZXF1YWwuCisgICAgIEFT
U0VSVF9HRSg8YXJnMT4sIDxhcmcyPikgLi4uIEFzc2VydHMgdGhhdCA8YXJnMT4gaXMgZ3JlYXRl
ciB0aGFuIG9yIGVxdWFscyB0byA8YXJnMj4uCisgICAgIFJPT1QgICAgICAgICAgICAgICAgICAg
ICAgLi4uIFRoZSBmaWxlIHN5c3RlbSdzIHJvb3QgZW50cnkuCisKKyAgIEV4YW1wbGU6CisgICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgIDxkaXYgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4K
KyAgICByZXNldCgpCisKKyAgICAjIGNvbW1lbnQKKyAgICBlbnRyeTEgPSBST09ULmdldEZpbGUo
J2Zvby9hLnR4dCcpCisgICAgZW50cnkyID0gUk9PVC5nZXREaXJlY3RvcnkoJ2Zvby9iYXInLCB7
Q1JFQVRFOnRydWV9KQorICAgIGVudHJ5MyA9IFJPT1QuZ2V0RmlsZSgnZm9vL25vbmV4aXN0ZW50
JykgcmFpc2VzIDgKKyAgICBlbnRyaWVzID0gUk9PVC5yZWFkRGlyZWN0b3J5KCkKKyAgICBwcmlu
dChlbnRyaWVzKQorICAgIGVudHJ5MS5jb3B5VG8oZW50cnkyLCAnYi50eHQnKQorICAgIG1ldGFk
YXRhID0gZW50cnkxLmdldE1ldGFkYXRhKCkKKyAgICBwcmludChtZXRhZGF0YSkKKyAgICBBU1NF
UlRfR1QobWV0YWRhdGEsIDApCisgICAgPC9kaXY+CisKKyAgICB2YXIgc2hlbGwgPSBuZXcgRmls
ZVN5c3RlbVRlc3RTaGVsbChURU1QT1JBUlksIDEwMCk7CisgICAgc2hlbGwucnVuU2NyaXB0cygi
ZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiKTsKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKwor
dmFyIEZpbGVTeXN0ZW1UZXN0U2hlbGwgPSBmdW5jdGlvbih0eXBlLCBzaXplLCBvcHRfbG9nRnVu
Yywgb3B0X2VuZFRlc3RDYWxsYmFjaykKK3sKKyAgICB0aGlzLmZpbGVTeXN0ZW0gPSBudWxsOwor
ICAgIHRoaXMuZmlsZVN5c3RlbVR5cGUgPSB0eXBlOworICAgIHRoaXMuZmlsZVN5c3RlbVNpemUg
PSBzaXplOworCisgICAgdGhpcy5sb2cgPSBvcHRfbG9nRnVuYzsKKyAgICB0aGlzLmVuZFRlc3RD
YWxsYmFjayA9IG9wdF9lbmRUZXN0Q2FsbGJhY2s7CisKKyAgICB0aGlzLmxpbmVzID0gW107Cisg
ICAgdGhpcy5saW5lQ291bnRlciA9IC0xOworICAgIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgPSAw
OworICAgIHRoaXMuZGVzdGluYXRpb25TeW1ib2wgPSBudWxsOworCisgICAgdGhpcy52YXJzID0g
eyAndHJ1ZSc6IHRydWUsICdmYWxzZSc6IGZhbHNlIH07CisKKyAgICB0aGlzLnJ1blNjcmlwdHMg
PSBmdW5jdGlvbihlbGVtZW50SWQpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuZW5kVGVzdENh
bGxiYWNrKQorICAgICAgICAgICAgdGhpcy5lbmRUZXN0Q2FsbGJhY2sgPSBmdW5jdGlvbigpIHsg
fTsKKworICAgICAgICBpZiAoIXRoaXMubG9nKQorICAgICAgICAgICAgdGhpcy5sb2cgPSB0aGlz
LmRlZmF1bHRMb2dGdW5jOworCisgICAgICAgIHZhciBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgaWYgKCFlbGVtKSB7CisgICAgICAgICAgICB0aGlz
LmVycm9yKCdFbGVtZW50IG5vdCBmb3VuZDogJyArIGVsZW1lbnRJZCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5saW5lcyA9IGVsZW0uaW5uZXJIVE1MLnNw
bGl0KC9ccj9cbisvKTsKKyAgICAgICAgaWYgKCF0aGlzLmxpbmVzLmxlbmd0aCkgeworICAgICAg
ICAgICAgdGhpcy5lcnJvcigiTm8gc2NyaXB0cyB0byBydW4hIik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmxpbmVDb3VudGVyID0gMDsKKyAgICAgICAg
cmVxdWVzdEZpbGVTeXN0ZW0odGhpcy5maWxlU3lzdGVtVHlwZSwgdGhpcy5maWxlU3lzdGVtU2l6
ZSwgdGhpcy5iaW5kKHRoaXMuZmlsZVN5c3RlbUNhbGxiYWNrKSwgdGhpcy5iaW5kKHRoaXMuZXJy
b3JDYWxsYmFjaykpOworICAgIH0KKworICAgIC8vIENhbGxiYWNrcyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHRoaXMu
YmluZCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIG9iaiA9IHRoaXM7
CisgICAgICAgIHJldHVybiBmdW5jdGlvbihhcmcpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKG9i
aiwgYXJnKTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICB0aGlzLmVycm9yQ2FsbGJhY2sgPSBm
dW5jdGlvbihzaGVsbCwgZXJyb3IpCisgICAgeworICAgICAgICBpZiAod2luZG93LnNob3VsZEJl
KQorICAgICAgICAgICAgc2hvdWxkQmUoJyInICsgc2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUgKyAn
IicsICciJyArIGVycm9yLmNvZGUgKyAnIicpOworICAgICAgICBpZiAoc2hlbGwuZXhwZWN0ZWRF
cnJvckNvZGUgJiYgZXJyb3IuY29kZSA9PSBzaGVsbC5leHBlY3RlZEVycm9yQ29kZSkgeworICAg
ICAgICAgICAgc2hlbGwucnVuTmV4dFN0YXRlbWVudCgpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgc2hlbGwuZXJyb3IoJ0dvdCBlcnJvcjogJyArIGVycm9yLmNvZGUpOworICAgICAg
ICB9CisgICAgfQorCisgICAgdGhpcy5zdWNjZXNzQ2FsbGJhY2sgPSBmdW5jdGlvbihzaGVsbCwg
cmV0dXJuVmFsdWUpCisgICAgeworICAgICAgICBpZiAoc2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUp
IHsKKyAgICAgICAgICAgIHNoZWxsLmVycm9yKCdPcGVyYXRpb24gdW5leHBlY3RlZGx5IHN1Y2Nl
ZWRlZCcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChzaGVs
bC5kZXN0aW5hdGlvblN5bWJvbCkKKyAgICAgICAgICAgIHNoZWxsLnZhcnNbc2hlbGwuZGVzdGlu
YXRpb25TeW1ib2xdID0gcmV0dXJuVmFsdWU7CisgICAgICAgIHNoZWxsLnJ1bk5leHRTdGF0ZW1l
bnQoKTsKKyAgICB9CisKKyAgICB0aGlzLmVudHJpZXNDYWxsYmFjayA9IGZ1bmN0aW9uKHNoZWxs
LCBlbnRyaWVzKQorICAgIHsKKyAgICAgICAgaWYgKHNoZWxsLmRlc3RpbmF0aW9uU3ltYm9sKSB7
CisgICAgICAgICAgICBpZiAoIXNoZWxsLnZhcnNbc2hlbGwuZGVzdGluYXRpb25TeW1ib2xdKQor
ICAgICAgICAgICAgICAgIHNoZWxsLnZhcnNbc2hlbGwuZGVzdGluYXRpb25TeW1ib2xdID0gW107
CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICAgICAgc2hlbGwudmFyc1tzaGVsbC5kZXN0aW5hdGlvblN5bWJvbF0ucHVzaChl
bnRyaWVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW50cmllcy5sZW5ndGggPT0gMCkK
KyAgICAgICAgICAgIHNoZWxsLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICB9CisKKyAgICB0aGlz
LmZpbGVTeXN0ZW1DYWxsYmFjayA9IGZ1bmN0aW9uKHNoZWxsLCBmcykKKyAgICB7CisgICAgICAg
IHNoZWxsLmxvZygnR290IEZpbGVTeXN0ZW06ICcgKyBmcy5uYW1lKTsKKyAgICAgICAgc2hlbGwu
ZmlsZVN5c3RlbSA9IGZzOworICAgICAgICBzaGVsbC52YXJzWydST09UJ10gPSBmcy5yb290Owor
ICAgICAgICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgfQorCisgICAgLy8gSGVscGVy
IG1ldGhvZHMgZm9yIGNhbGxpbmcgZW50cnkgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisgICAgdmFyIGNhbGxFbnRyeU1ldGhvZDAgPSBmdW5jdGlvbihzaGVsbCwgZW50
cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBlbnRy
eVttZXRob2RdKHNoZWxsLmJpbmQoc2hlbGwuc3VjY2Vzc0NhbGxiYWNrKSwgc2hlbGwuYmluZChz
aGVsbC5lcnJvckNhbGxiYWNrKSk7CisgICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAg
ICAgICAgICAgaWYgKHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlICYmIGVycm9yLmNvZGUgPT0gc2hl
bGwuZXhwZWN0ZWRFcnJvckNvZGUpIHsKKyAgICAgICAgICAgICAgICBzaGVsbC5sb2coJ0dvdCBl
eGNlcHRpb24gKGV4cGVjdGVkKTogJyArIGVycm9yLmNvZGUpOworICAgICAgICAgICAgICAgIHNo
ZWxsLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgc2hlbGwuZXJyb3IoJ0dvdCBleGNlcHRpb246ICcgKyBlcnJvci5jb2RlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZhciBjYWxsRW50cnlNZXRob2QyID0g
ZnVuY3Rpb24oc2hlbGwsIGVudHJ5LCBtZXRob2QsIGFyZ3MpCisgICAgeworICAgICAgICB0cnkg
eworICAgICAgICAgICAgZW50cnlbbWV0aG9kXShhcmdzWzBdLCBhcmdzWzFdLCBzaGVsbC5iaW5k
KHNoZWxsLnN1Y2Nlc3NDYWxsYmFjayksIHNoZWxsLmJpbmQoc2hlbGwuZXJyb3JDYWxsYmFjaykp
OworICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGlmIChzaGVsbC5l
eHBlY3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09IHNoZWxsLmV4cGVjdGVkRXJyb3JDb2Rl
KSB7CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdHb3QgZXhjZXB0aW9uIChleHBlY3RlZCk6
ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAgICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50
KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNoZWxsLmVycm9yKCdH
b3QgZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisKKyAgICB2YXIgY2FsbFJlYWREaXJlY3RvcnkgPSBmdW5jdGlvbihzaGVsbCwgZW50
cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBkaXJl
Y3RvcnlSZWFkZXIgPSBlbnRyeS5jcmVhdGVSZWFkZXIoKTsKKyAgICAgICAgICAgIGRpcmVjdG9y
eVJlYWRlci5yZWFkRW50cmllcyhzaGVsbC5iaW5kKHNoZWxsLmVudHJpZXNDYWxsYmFjayksIHNo
ZWxsLmJpbmQoc2hlbGwuZXJyb3JDYWxsYmFjaykpOworICAgICAgICB9IGNhdGNoIChleGNlcHRp
b24pIHsKKyAgICAgICAgICAgIGlmIChzaGVsbC5leHBlY3RlZEVycm9yQ29kZSAmJiBlcnJvci5j
b2RlID09IHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlKSB7CisgICAgICAgICAgICAgICAgc2hlbGwu
bG9nKCdHb3QgZXhjZXB0aW9uIChleHBlY3RlZCk6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAg
ICAgICAgICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIHNoZWxsLmVycm9yKCdHb3QgZXhjZXB0aW9uOiAnICsgZXJyb3IuY29k
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgZW50cnlNZXRo
b2RzVGFibGUgPSB7CisgICAgICAgICdnZXRNZXRhZGF0YSc6IGNhbGxFbnRyeU1ldGhvZDAsCisg
ICAgICAgICdjb3B5VG8nOiBjYWxsRW50cnlNZXRob2QyLAorICAgICAgICAnbW92ZVRvJzogY2Fs
bEVudHJ5TWV0aG9kMiwKKyAgICAgICAgJ3JlbW92ZSc6IGNhbGxFbnRyeU1ldGhvZDAsCisgICAg
ICAgICdnZXRQYXJlbnQnOiBjYWxsRW50cnlNZXRob2QwLAorICAgICAgICAnZ2V0RmlsZSc6IGNh
bGxFbnRyeU1ldGhvZDIsCisgICAgICAgICdnZXREaXJlY3RvcnknOiBjYWxsRW50cnlNZXRob2Qy
LAorICAgICAgICAncmVhZERpcmVjdG9yeSc6IGNhbGxSZWFkRGlyZWN0b3J5LAorICAgIH07CisK
KyAgICAvLyBCdWlsdC1pbiBmdW5jaXRvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICB2YXIgdG9TdHJpbmcgPSBmdW5jdGlvbihvYmop
CisgICAgeworICAgICAgICBpZiAob2JqID09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgcmV0
dXJuICJ1bmRlZmluZWQiOworICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT0gJ29iamVj
dCcpIHsKKyAgICAgICAgICAgIGlmIChvYmoubGVuZ3RoICE9IHVuZGVmaW5lZCkgeworICAgICAg
ICAgICAgICAgIHZhciBzdHJpbmdBcnJheSA9IFtdOworICAgICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgICAgICBzdHJpbmdB
cnJheS5wdXNoKHRvU3RyaW5nKG9ialtpXSkpOworICAgICAgICAgICAgICAgIHN0cmluZ0FycmF5
LnNvcnQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gJ1snICsgc3RyaW5nQXJyYXkuam9pbign
LFxuICcpICsgJ10nOworICAgICAgICAgICAgfSBlbHNlIGlmIChvYmouaXNGaWxlIHx8IG9iai5p
c0RpcmVjdG9yeSkgeworICAgICAgICAgICAgICAgIHJldHVybiAnRU5UUlkge3BhdGg6JyArIG9i
ai5mdWxsUGF0aCArICcgbmFtZTonICsgb2JqLm5hbWUgKyAob2JqLmlzRmlsZSA/ICcgdHlwZTpG
SUxFJyA6ICcgdHlwZTpESVJFQ1RPUlknKSArICd9JzsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICByZXR1cm4gb2JqOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9wcmlu
dCA9IGZ1bmN0aW9uKGFyZ3MpCisgICAgeworICAgICAgICB0aGlzLmxvZyh0b1N0cmluZyhhcmdz
WzBdKSk7CisgICAgICAgIHRoaXMucnVuTmV4dFN0YXRlbWVudCgpOworICAgIH0KKworICAgIHRo
aXMuQlVJTFRJTl9yZXNldCA9IGZ1bmN0aW9uKGFyZ3MpCisgICAgeworICAgICAgICB2YXIgc2hl
bGwgPSB0aGlzOworICAgICAgICByZW1vdmVSZWN1cnNpdmVseSh0aGlzLmZpbGVTeXN0ZW0ucm9v
dCwgZnVuY3Rpb24oKSB7IHNoZWxsLnJ1bk5leHRTdGF0ZW1lbnQoKTsgfSwgdGhpcy5iaW5kKHRo
aXMuZXJyb3JDYWxsYmFjaykpOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9BU1NFUlQgPSBm
dW5jdGlvbihhcmdzKQorICAgIHsKKyAgICAgICAgdmFyIG9iaiA9IGFyZ3NbMF07CisgICAgICAg
IGlmICh3aW5kb3cuc2hvdWxkQmVOb25OdWxsKQorICAgICAgICAgICAgd2luZG93LnNob3VsZEJl
Tm9uTnVsbCgnIicgKyBvYmogKyAnIicpOworICAgICAgICBpZiAoIW9iaikKKyAgICAgICAgICAg
IHRoaXMuZXJyb3IoJ0Fzc2VydGlvbiBlcnJvcjonICsgb2JqKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgfQorCisgICAgdGhpcy5CVUlM
VElOX0FTU0VSVF9HRSA9IGZ1bmN0aW9uKGFyZ3MpCisgICAgeworICAgICAgICB2YXIgdmFsdWUx
ID0gKGFyZ3NbMF0gaW5zdGFuY2VvZiBEYXRlKSA/IGFyZ3NbMF0uZ2V0VGltZSgpIDogYXJnc1sw
XTsKKyAgICAgICAgdmFyIHZhbHVlMiA9IChhcmdzWzFdIGluc3RhbmNlb2YgRGF0ZSkgPyBhcmdz
WzFdLmdldFRpbWUoKSA6IGFyZ3NbMV07CisgICAgICAgIGlmICh3aW5kb3cuc2hvdWxkQmVHcmVh
dGVyVGhhbk9yRXF1YWwpCisgICAgICAgICAgICB3aW5kb3cuc2hvdWxkQmVHcmVhdGVyVGhhbk9y
RXF1YWwoJyInICsgdmFsdWUxICsgJyInLCAnIicgKyB2YWx1ZTIgKyAnIicpOworICAgICAgICBp
ZiAodmFsdWUxIDwgdmFsdWUyKSB7CisgICAgICAgICAgICB0aGlzLmVycm9yKCdBc3NlcnRpb24g
ZXJyb3I6JyArIGFyZ3NbMF0gKyAnID49ICcgKyBhcmdzWzFdKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICB9CisK
KyAgICB0aGlzLkJVSUxUSU5fQVNTRVJUX0VRID0gZnVuY3Rpb24oYXJncykKKyAgICB7CisgICAg
ICAgIHZhciB2YWx1ZTEgPSAoYXJnc1swXSBpbnN0YW5jZW9mIERhdGUpID8gYXJnc1swXS5nZXRU
aW1lKCkgOiBhcmdzWzBdOworICAgICAgICB2YXIgdmFsdWUyID0gKGFyZ3NbMV0gaW5zdGFuY2Vv
ZiBEYXRlKSA/IGFyZ3NbMV0uZ2V0VGltZSgpIDogYXJnc1sxXTsKKyAgICAgICAgaWYgKHdpbmRv
dy5zaG91bGRCZSkKKyAgICAgICAgICAgIHdpbmRvdy5zaG91bGRCZSgnIicgKyB2YWx1ZTEgKyAn
IicsICciJyArIHZhbHVlMiArICciJyk7CisgICAgICAgIGlmICh2YWx1ZTEgIT0gdmFsdWUyKSB7
CisgICAgICAgICAgICB0aGlzLmVycm9yKCdBc3NlcnRpb24gZXJyb3I6JyArIGFyZ3NbMF0gKyAn
ID09ICcgKyBhcmdzWzFdKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICB0aGlzLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICB9CisKKyAgICAvLyBQYXJzZXIgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKyAgICB0aGlzLkVOVFJZX01FVEhPRF9SRSA9IC9eXHMqKFtBLVphLXpfXVx3KilcLihnZXRN
ZXRhZGF0YXxtb3ZlVG98Y29weVRvfHJlbW92ZXxnZXRQYXJlbnR8Z2V0RmlsZXxnZXREaXJlY3Rv
cnl8cmVhZERpcmVjdG9yeSlcKCguKilcKSg/OlxzK3JhaXNlcz9ccypcKD8oXGQrKVwpP3wpLzsK
KyAgICB0aGlzLkFTU0lHTk1FTlRfUkUgPSAvXlxzKihbQS1aYS16X11cdyopXHMqPVxzKiguKikv
OworCisgICAgdGhpcy5wYXJzZUFyZ3MgPSBmdW5jdGlvbih0ZXh0KSB7CisgICAgICAgIHZhciBh
cmdzID0gW107CisgICAgICAgIHZhciBzaGVsbCA9IHRoaXM7CisgICAgICAgIHZhciB2YXJzID0g
dGhpcy52YXJzOworICAgICAgICB0ZXh0LnJlcGxhY2UoLyg/Oih7W159XSp9KXwoXGQrfCJbXiJd
KiJ8J1teJ10qJyl8KFthLXpBLVpfXVx3KikoPzpcWyhcZCt8WyciXVx3K1snIl0pXF18XC4oXHcr
KXwpKSgsfCQpXHMqL2csIGZ1bmN0aW9uKG1hdGNoLCBoYXNoLCBpbW1lZGlhdGUsIHN5bWJvbCwg
ZmllbGQxLCBmaWVsZDIpIHsKKyAgICAgICAgICAgIHZhciBmaWVsZCA9IGZpZWxkMSAhPSB1bmRl
ZmluZWQgPyBmaWVsZDEgOiBmaWVsZDI7CisgICAgICAgICAgICB2YXIgb2JqID0gc2hlbGwudmFy
c1tzeW1ib2xdOworICAgICAgICAgICAgaWYgKHN5bWJvbCAmJiBvYmogPT0gdW5kZWZpbmVkKSB7
CisgICAgICAgICAgICAgICAgaWYgKHN5bWJvbCA9PSAnbnVsbCcgfHwgc3ltYm9sID09ICd1bmRl
ZmluZWQnKSB7CisgICAgICAgICAgICAgICAgICAgIG9iaiA9IG51bGw7CisgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2hlbGwuZXJyb3IoJ1VuZGVmaW5lZCBz
eW1ib2w6JyArIHN5bWJvbCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcmdzLnB1c2goaGFzaCA/IGV2
YWwoJ289JyArIGhhc2gpCisgICAgICAgICAgICAgICAgOiBpbW1lZGlhdGUgPyBldmFsKGltbWVk
aWF0ZSkKKyAgICAgICAgICAgICAgICA6IHN5bWJvbCA/IChmaWVsZCAhPSB1bmRlZmluZWQgPyBv
YmpbZmllbGRdIDogb2JqKQorICAgICAgICAgICAgICAgIDogbnVsbCk7CisgICAgICAgIH0pOwor
ICAgICAgICByZXR1cm4gYXJnczsKKyAgICB9CisKKyAgICB0aGlzLnJ1bk5leHRTdGF0ZW1lbnQg
PSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5saW5lQ291bnRlciA8IDAgfHwg
dGhpcy5saW5lQ291bnRlciA+PSB0aGlzLmxpbmVzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhp
cy5sb2coJ1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuJyk7CisgICAgICAgICAgICB0aGlzLmVu
ZFRlc3RDYWxsYmFjaygpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IHZhciBzdGF0ZW1lbnQgPSB0aGlzLmxpbmVzW3RoaXMubGluZUNvdW50ZXIrK107CisgICAgICAg
IGlmIChzdGF0ZW1lbnQuc2VhcmNoKC9eXHMqKCMuKnwpJC8pID09IDApIHsKKyAgICAgICAgICAg
IHRoaXMucnVuTmV4dFN0YXRlbWVudCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIHZhciBleHAgPSBzdGF0ZW1lbnQ7CisgICAgICAgIHRoaXMuZGVzdGluYXRpb25T
eW1ib2wgPSBudWxsOworICAgICAgICB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlID0gMDsKKyAgICAg
ICAgdmFyIG1hdGNoZXMgPSBzdGF0ZW1lbnQubWF0Y2godGhpcy5BU1NJR05NRU5UX1JFKTsKKyAg
ICAgICAgaWYgKG1hdGNoZXMpIHsKKyAgICAgICAgICAgIHRoaXMuZGVzdGluYXRpb25TeW1ib2wg
PSBtYXRjaGVzWzFdOworICAgICAgICAgICAgdGhpcy52YXJzW3RoaXMuZGVzdGluYXRpb25TeW1i
b2xdID0gbnVsbDsKKyAgICAgICAgICAgIGV4cCA9IG1hdGNoZXNbMl07CisgICAgICAgIH0KKyAg
ICAgICAgbWF0Y2hlcyA9IGV4cC5tYXRjaCh0aGlzLkVOVFJZX01FVEhPRF9SRSk7CisgICAgICAg
IGlmIChtYXRjaGVzKSB7CisgICAgICAgICAgICB2YXIgZW50cnkgPSBzaGVsbC52YXJzW21hdGNo
ZXNbMV1dOworICAgICAgICAgICAgdmFyIG1ldGhvZCA9IG1hdGNoZXNbMl07CisgICAgICAgICAg
ICBpZiAoIWVudHJ5KSB7CisgICAgICAgICAgICAgICAgdGhpcy5lcnJvcignTm8gc3VjaCBzeW1i
b2w6JyArIG1hdGNoZXNbMV0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgPSBtYXRjaGVzWzRdOworICAg
ICAgICAgICAgZW50cnlNZXRob2RzVGFibGVbbWV0aG9kXSh0aGlzLCBlbnRyeSwgbWV0aG9kLCB0
aGlzLnBhcnNlQXJncyhtYXRjaGVzWzNdKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgbWF0Y2hlcyA9IGV4cC5tYXRjaCgvXlxzKihbQS1aYS16X11cdyspXCgoLiop
XCkvKTsKKyAgICAgICAgaWYgKG1hdGNoZXMgJiYgdGhpc1snQlVJTFRJTl8nICsgbWF0Y2hlc1sx
XV0pIHsKKyAgICAgICAgICAgIHRoaXNbJ0JVSUxUSU5fJyArIG1hdGNoZXNbMV1dKHRoaXMucGFy
c2VBcmdzKG1hdGNoZXNbMl0pKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICB2YXIgdmFsdWVzID0gdGhpcy5wYXJzZUFyZ3MoZXhwKTsKKyAgICAgICAgaWYgKHZhbHVl
cy5sZW5ndGggPT0gMSkgeworICAgICAgICAgICAgaWYgKHRoaXMuZGVzdGluYXRpb25TeW1ib2wp
CisgICAgICAgICAgICAgICAgdGhpcy52YXJzW3RoaXMuZGVzdGluYXRpb25TeW1ib2xdID0gdmFs
dWVzWzBdOworICAgICAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5lcnJvcignU3ludGF4IGVycm9yOicg
KyBzdGF0ZW1lbnQpOworICAgIH0KKworICAgIC8vIE1pc2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIHRoaXMu
ZHVtcFZhcnMgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHZhciBrZXkgaW4gdGhp
cy52YXJzKQorICAgICAgICAgICAgdGhpcy5sb2coJyoqICcgKyBrZXkgKyAnOicgKyB0aGlzLnZh
cnNba2V5XSk7CisgICAgfQorCisgICAgdGhpcy5lcnJvciA9IGZ1bmN0aW9uKG1zZykKKyAgICB7
CisgICAgICAgIGlmICh0aGlzLmxpbmVDb3VudGVyID4gMCAmJiB0aGlzLmxpbmVDb3VudGVyIDwg
dGhpcy5saW5lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRoaXMubG9nKCdFUlJPUjonICsgbXNn
ICsgJyBhdCBsaW5lICcgKyB0aGlzLmxpbmVDb3VudGVyKTsKKyAgICAgICAgICAgIHRoaXMubG9n
KCcgPiAnICsgdGhpcy5saW5lc1t0aGlzLmxpbmVDb3VudGVyIC0gMV0pOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHRoaXMubG9nKCdFUlJPUjonICsgbXNnKTsKKyAgICAgICAgdGhpcy5l
bmRUZXN0Q2FsbGJhY2soKTsKKyAgICB9CisKKyAgICB0aGlzLmRlZmF1bHRMb2dGdW5jID0gZnVu
Y3Rpb24obXNnKQorICAgIHsKKyAgICAgICAgdmFyIGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpOworICAgICAgICBpZiAoIWVsZW0pIHsKKyAgICAgICAgICAgIGVsZW0g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIGVsZW0uaWQgPSAn
Y29uc29sZSc7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW0pOwor
ICAgICAgICB9CisgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3Bh
bicpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENo
aWxkKHNwYW4pOworICAgICAgICBzcGFuLmlubmVySFRNTCA9IG1zZyArICc8YnIgLz4nOworICAg
IH0KK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2Vz
L2ZzLXRlc3QtdXRpbC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMv
ZnMtdGVzdC11dGlsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MDhkY2IzNDc1YmEwMTFhZjI3ODNkOGQ5NWNj
Mjk3MWY4Mzc2Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vcmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcwpAQCAtMCwwICsxLDExMSBAQAordmFyIEpvaW4g
PSBmdW5jdGlvbihjYWxsYmFjaykKK3sKKyAgICB0aGlzLnBlbmRpbmdPcGVyYXRpb25zID0gMDsK
KyAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7CisKKyAgICB0aGlzLmNhbGwgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgdGhpcy5wZW5kaW5nT3BlcmF0aW9ucysrOworICAgIH07CisKKyAgICB0
aGlzLmRvbmUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5wZW5kaW5nT3BlcmF0aW9ucy0t
OworICAgICAgICBpZiAodGhpcy5wZW5kaW5nT3BlcmF0aW9ucyA9PSAwKQorICAgICAgICAgICAg
Y2FsbGJhY2soKTsKKyAgICB9OworfTsKKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdoZW4gYm90
aCBzcGVjIGFuZCBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyByZWN1cnNpdmUgcmVtb3ZlLgorZnVu
Y3Rpb24gcmVtb3ZlUmVjdXJzaXZlbHkoZGlyZWN0b3J5LCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9y
Q2FsbGJhY2spCit7CisKKyAgICB2YXIgUmVtb3ZlUmVjdXJzaXZlSGVscGVyID0gZnVuY3Rpb24o
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdGhpcy5yZW1v
dmVEaXJNYXAgPSB7fTsKKyAgICAgICAgdGhpcy5zdWNjZXNzQ2FsbGJhY2sgPSBzdWNjZXNzQ2Fs
bGJhY2s7CisgICAgICAgIHRoaXMuZXJyb3JDYWxsYmFjayA9IGVycm9yQ2FsbGJhY2s7CisKKyAg
ICAgICAgdGhpcy5yZW1vdmVSZWN1cnNpdmVseSA9IGZ1bmN0aW9uKGRpcmVjdG9yeSkKKyAgICAg
ICAgeworICAgICAgICAgICAgdGhpcy5yZW1vdmVSZWN1cnNpdmVseUludGVybmFsKGRpcmVjdG9y
eSk7CisgICAgICAgIH07CisKKyAgICAgICAgdGhpcy5oYXNNb3JlRW50cmllcyA9IGZ1bmN0aW9u
KGhhc2gpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoayBpbiBoYXNoKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
OworCisgICAgICAgIHRoaXMuYmluZCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgICAgICB7Cisg
ICAgICAgICAgICB2YXIgb2JqID0gdGhpczsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihh
cmcpIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhvYmosIGFyZyk7CisgICAgICAgICAgICB9
OworICAgICAgICB9OworCisgICAgICAgIHRoaXMucmVtb3ZlRGlyZWN0b3J5ID0gZnVuY3Rpb24o
ZGlyZWN0b3J5LCBwYXJlbnREaXJlY3RvcnkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChk
aXJlY3RvcnkuZnVsbFBhdGggIT0gJy8nKSB7CisgICAgICAgICAgICAgICAgLy8gT2sgdG8gcmVt
b3ZlIHRoZSBwYXJlbnQgZGlyZWN0b3J5LgorICAgICAgICAgICAgICAgIHZhciBoZWxwZXIgPSB0
aGlzOworICAgICAgICAgICAgICAgIGRpcmVjdG9yeS5yZW1vdmUoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGhlbHBlci5lbnRyeVJlbW92ZWRDYWxsYmFjayhoZWxwZXIsIHBhcmVu
dERpcmVjdG9yeSwgZGlyZWN0b3J5KTsKKyAgICAgICAgICAgICAgICB9LCB0aGlzLmJpbmQodGhp
cy5FcnJvckNhbGxiYWNrKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBk
ZWxldGUgdGhpcy5yZW1vdmVEaXJNYXBbZGlyZWN0b3J5LmZ1bGxQYXRoXTsKKyAgICAgICAgICAg
IGlmICghdGhpcy5oYXNNb3JlRW50cmllcyh0aGlzLnJlbW92ZURpck1hcCkgJiYgdGhpcy5zdWNj
ZXNzQ2FsbGJhY2spCisgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzQ2FsbGJhY2soKTsKKyAg
ICAgICAgfTsKKworICAgICAgICB0aGlzLmVudHJ5UmVtb3ZlZENhbGxiYWNrID0gZnVuY3Rpb24o
aGVscGVyLCBkaXJlY3RvcnksIGVudHJ5KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZW50
cnkuaXNEaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgZGVsZXRlIGhlbHBlci5yZW1vdmVEaXJN
YXBbZW50cnkuZnVsbFBhdGhdOworCisgICAgICAgICAgICBpZiAoZGlyZWN0b3J5KSB7CisgICAg
ICAgICAgICAgICAgdmFyIGRpckluZm8gPSBoZWxwZXIucmVtb3ZlRGlyTWFwW2RpcmVjdG9yeS5m
dWxsUGF0aF07CisgICAgICAgICAgICAgICAgaWYgKC0tZGlySW5mby5lbnRyaWVzID09IDAgJiYg
ZGlySW5mby5oYXNNb3JlID09IGZhbHNlKQorICAgICAgICAgICAgICAgICAgICBoZWxwZXIucmVt
b3ZlRGlyZWN0b3J5KGRpcmVjdG9yeSwgZGlySW5mby5wYXJlbnREaXJlY3RvcnkpOworICAgICAg
ICAgICAgfQorICAgICAgICB9OworCisgICAgICAgIHRoaXMucmVtb3ZlUmVjdXJzaXZlbHlDYWxs
YmFjayA9IGZ1bmN0aW9uKGhlbHBlciwgZGlyZWN0b3J5LCBlbnRyaWVzKQorICAgICAgICB7Cisg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICBoZWxwZXIucmVtb3ZlRGlyTWFwW2RpcmVjdG9yeS5mdWxsUGF0aF0uZW50
cmllcysrOworICAgICAgICAgICAgICAgIGlmIChlbnRyaWVzW2ldLmlzRGlyZWN0b3J5KQorICAg
ICAgICAgICAgICAgICAgICBoZWxwZXIucmVtb3ZlUmVjdXJzaXZlbHlJbnRlcm5hbChlbnRyaWVz
W2ldLCBkaXJlY3RvcnkpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICB2YXIgZW50cnkgPSBlbnRyaWVzW2ldOworICAgICAgICAgICAgICAgICAgICBlbnRyeS5y
ZW1vdmUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwZXIuZW50cnlS
ZW1vdmVkQ2FsbGJhY2soaGVscGVyLCBkaXJlY3RvcnksIGVudHJ5KTsKKyAgICAgICAgICAgICAg
ICAgICAgfSwgaGVscGVyLmJpbmQoaGVscGVyLmVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZW50cmllcy5sZW5ndGggPT0g
MCkgeworICAgICAgICAgICAgICAgIHZhciBkaXJJbmZvID0gaGVscGVyLnJlbW92ZURpck1hcFtk
aXJlY3RvcnkuZnVsbFBhdGhdOworICAgICAgICAgICAgICAgIGRpckluZm8uaGFzTW9yZSA9IGZh
bHNlOworICAgICAgICAgICAgICAgIGlmIChkaXJJbmZvLmVudHJpZXMgPT0gMCkKKyAgICAgICAg
ICAgICAgICAgICAgaGVscGVyLnJlbW92ZURpcmVjdG9yeShkaXJlY3RvcnksIGRpckluZm8ucGFy
ZW50RGlyZWN0b3J5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICB0aGlz
LnJlbW92ZVJlY3Vyc2l2ZWx5SW50ZXJuYWwgPSBmdW5jdGlvbihkaXJlY3RvcnksIHBhcmVudERp
cmVjdG9yeSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5yZW1vdmVEaXJNYXBbZGlyZWN0
b3J5LmZ1bGxQYXRoXSA9IHsKKyAgICAgICAgICAgICAgICBoYXNNb3JlOiB0cnVlLAorICAgICAg
ICAgICAgICAgIHBhcmVudERpcmVjdG9yeTogcGFyZW50RGlyZWN0b3J5LAorICAgICAgICAgICAg
ICAgIGVudHJpZXM6IDAsCisgICAgICAgICAgICB9OworICAgICAgICAgICAgdmFyIGhlbHBlciA9
IHRoaXM7CisgICAgICAgICAgICBkaXJlY3RvcnlSZWFkZXIgPSBkaXJlY3RvcnkuY3JlYXRlUmVh
ZGVyKCk7CisgICAgICAgICAgICBkaXJlY3RvcnlSZWFkZXIucmVhZEVudHJpZXMoZnVuY3Rpb24o
ZW50cmllcykgeworICAgICAgICAgICAgICAgIGhlbHBlci5yZW1vdmVSZWN1cnNpdmVseUNhbGxi
YWNrKGhlbHBlciwgZGlyZWN0b3J5LCBlbnRyaWVzKTsKKyAgICAgICAgICAgIH0sIHRoaXMuYmlu
ZCh0aGlzLmVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgdmFyIGhl
bHBlciA9IG5ldyBSZW1vdmVSZWN1cnNpdmVIZWxwZXIoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNh
bGxiYWNrKTsKKyAgICBoZWxwZXIucmVtb3ZlUmVjdXJzaXZlbHkoZGlyZWN0b3J5KTsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLWNoYXJzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLWNoYXJz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWFiYmI1ZDU5YjIwYmY4YzQyN2ZjN2M5NDdiOTIw
N2U0NmQ2MmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3Jlc3RyaWN0ZWQtY2hhcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzkgQEAKK0dvdCBGaWxl
U3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEz
IgorUEFTUyAiMTMiIGlzICIxMyIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLWNoYXJzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjc0NzQyYjBlOGI2NDA0M2I0MTE2M2E2ODcwNjU4NjU1OWUzMWEwODMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy5o
dG1sCkBAIC0wLDAgKzEsNTggQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi94LWZpbGUtc3lz
dGVtLXRlc3Qtc2hlbGwiIGlkPSJmaWxlLXN5c3RlbS10ZXN0LXNjcmlwdCI+CisKKyAgICByZXNl
dCgpCisKKyAgICBST09ULmdldEZpbGUoJ2FcXGInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZp
bGUoJ2E8YicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYT5iJykgcmFpc2VzIDEzCisg
ICAgUk9PVC5nZXRGaWxlKCdhOmInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2E/Yicp
IHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYSpiJykgcmFpc2VzIDEzCisgICAgUk9PVC5n
ZXRGaWxlKCdhImInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2F8YicpIHJhaXNlcyAx
MworCisgICAgUk9PVC5nZXRGaWxlKCdcXGFiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxl
KCc8YWInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJz5hYicpIHJhaXNlcyAxMworICAg
IFJPT1QuZ2V0RmlsZSgnOmFiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCc/YWInKSBy
YWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJyphYicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0
RmlsZSgnImFiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCd8YWInKSByYWlzZXMgMTMK
KworICAgIFJPT1QuZ2V0RmlsZSgnYWJcXCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgn
YWI8JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYj4nKSByYWlzZXMgMTMKKyAgICBS
T09ULmdldEZpbGUoJ2FiOicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYWI/JykgcmFp
c2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYionKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZp
bGUoJ2FiIicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYWJ8JykgcmFpc2VzIDEzCisK
KyAgICBhYiA9IFJPT1QuZ2V0RmlsZSgnYWInLCB7Y3JlYXRlOnRydWV9KQorICAgIGFiLmNvcHlU
byhST09ULCAnYVxcYicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhST09ULCAnYTxiJykgcmFp
c2VzIDEzCisgICAgYWIuY29weVRvKFJPT1QsICdhPmInKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5
VG8oUk9PVCwgJ2E6YicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhST09ULCAnYT9iJykgcmFp
c2VzIDEzCisgICAgYWIuY29weVRvKFJPT1QsICdhKmInKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5
VG8oUk9PVCwgJ2EiYicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhST09ULCAnYXxiJykgcmFp
c2VzIDEzCisKKyAgICAjIE5hbWUgc2hvdWxkIG5vdCBjb250YWluICcvJworICAgIGFiLmNvcHlU
byhST09ULCAnYS9iJykgcmFpc2VzIDEzCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1u
YW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3Rl
ZC1uYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTgwYTUzOGU3NmFlMTc4MzQxYzJiNTI4
NGYzYjkwN2M2M2ZiOWYwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9yZXN0cmljdGVkLW5hbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQyIEBACitH
b3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitQQVNTICIxMyIgaXMgIjEzIgorUEFTUyAiMTMi
IGlzICIxMyIKK1BBU1MgIjEzIiBpcyAiMTMiCitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1uYW1l
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtbmFtZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kODM5YmIxYTAzNTdmOWY0OTliOTUyODI4ZWFkNDU4ZjhiODBhYzAwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQt
bmFtZXMuaHRtbApAQCAtMCwwICsxLDY0IEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24veC1m
aWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorCisg
ICAgcmVzZXQoKQorICAgIGZpbGUgPSBST09ULmdldEZpbGUoJ2FhYScsIHtjcmVhdGU6dHJ1ZX0p
CisgICAgZGlyID0gUk9PVC5nZXRGaWxlKCdiYmInLCB7Y3JlYXRlOnRydWV9KQorCisgICAgUk9P
VC5nZXRGaWxlKCdjb24nKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ0NPTicpIHJhaXNl
cyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQ29uJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxl
KCdjT24udHh0JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXREaXJlY3RvcnkoJ2JiYi9jb04nKSBy
YWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgncHJuJykgcmFpc2VzIDEzCisgICAgUk9PVC5n
ZXRGaWxlKCdQUk4nKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ1BybicpIHJhaXNlcyAx
MworICAgIFJPT1QuZ2V0RmlsZSgncFJuLnR4dCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RGly
ZWN0b3J5KCdiYmIvcHJOJykgcmFpc2VzIDEzCisKKyAgICBST09ULmdldEZpbGUoJ2F1eCcpIHJh
aXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQVVYJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRG
aWxlKCdBdXgnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2FVeC50eHQnKSByYWlzZXMg
MTMKKyAgICBST09ULmdldERpcmVjdG9yeSgnYmJiL2F1WCcpIHJhaXNlcyAxMworCisgICAgUk9P
VC5nZXRGaWxlKCdudWwnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ05VTCcpIHJhaXNl
cyAxMworICAgIFJPT1QuZ2V0RmlsZSgnTnVsJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxl
KCduVWwudHh0JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXREaXJlY3RvcnkoJ2JiYi9udUwnKSBy
YWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgnY29tMScpIHJhaXNlcyAxMworICAgIFJPT1Qu
Z2V0RmlsZSgnQ09NMicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQ29tNCcpIHJhaXNl
cyAxMworICAgIFJPT1QuZ2V0RmlsZSgnY09NNy5mb28nKSByYWlzZXMgMTMKKyAgICBST09ULmdl
dERpcmVjdG9yeSgnYmJiL2NvTTknKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgnbHB0
MScpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnTFBUMicpIHJhaXNlcyAxMworICAgIFJP
T1QuZ2V0RmlsZSgnTHB0NCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnbFBUNy5mb28n
KSByYWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgnYmJiL2xwVDknKSByYWlzZXMgMTMK
KworICAgICMgTmFtZXMgc2hvdWxkIG5vdCBlbmQgd2l0aCBwZXJpb2Qgb3Igd2hpdGVzcGFjZS4K
KyAgICBST09ULmdldEZpbGUoJ2ZvbyAnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2Zv
b1xuJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdmb28uJykgcmFpc2VzIDEzCisgICAg
ZmlsZS5jb3B5VG8oZGlyLCAnZm9vICcpIHJhaXNlcyAxMworICAgIGZpbGUuY29weVRvKGRpciwg
J2Zvb1x0JykgcmFpc2VzIDEzCisgICAgZmlsZS5jb3B5VG8oZGlyLCAnZm9vLicpIHJhaXNlcyAx
MworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1w
b3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYyMDdmMWYxZmM0NmEzYTRiZTBmNmEyZmJlZTIxNjI0NjgxODJkNDUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL1RFTVBMQVRF
Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvcGFy
YWxsZWwtb3BlcmF0aW9ucy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQt
dGVzdHMvcGFyYWxsZWwtb3BlcmF0aW9ucy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTI5YmQwNTE0YzcyZjVm
M2UxZWUwM2RiZGViMWY2MzUxODkyNTczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9wYXJhbGxlbC1vcGVyYXRpb25zLmpzCkBAIC0w
LDAgKzEsMTE0IEBACitkZXNjcmlwdGlvbigiVGVzdCBtYWtpbmcgbXVsdGlwbGUgRmlsZVN5c3Rl
bSBvcGVyYXRpb25zIGluIHBhcmFsbGVsLiIpOworCit2YXIgZmlsZVN5c3RlbSA9IG51bGw7CisK
K3ZhciBhOwordmFyIGI7Cit2YXIgYzsKKworZnVuY3Rpb24gZW5kVGVzdCgpIHsKKyAgICBkZWJ1
ZygiRG9uZS4iKTsKKyAgICByZW1vdmVSZWN1cnNpdmVseShmaWxlU3lzdGVtLnJvb3QpOworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhlcnJvcikg
eworICAgIGRlYnVnKCJHb3QgZXJyb3I6ICIgKyBlcnJvci5jb2RlKTsKKyAgICByZW1vdmVSZWN1
cnNpdmVseShmaWxlU3lzdGVtLnJvb3QpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwor
dmFyIHBhdGhzID0gW107Cit2YXIgZGlycyA9IDA7CisKK2Z1bmN0aW9uIGVudHJpZXNDYWxsYmFj
ayhlbnRyaWVzKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgIHBhdGhzLnB1c2goZW50cmllc1tpXS5mdWxsUGF0aCk7CisgICAgICAgIGlm
IChlbnRyaWVzW2ldLmlzRGlyZWN0b3J5KQorICAgICAgICAgICAgZGlycysrOworICAgIH0KKyAg
ICBpZiAoZW50cmllcy5sZW5ndGggPT0gMCkgeworICAgICAgICBwYXRocy5zb3J0KCk7CisgICAg
ICAgIHNob3VsZEJlKCciJyArIHBhdGhzLmpvaW4oJywnKSArICciJywgJyIvYSwvYjIsL2MsL2Qs
L2UiJyk7CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHZlcmlmeSgp
IHsKKyAgICBkZWJ1ZygiVmVyaWZ5aW5nIHRoZSBGaWxlU3lzdGVtIHN0YXR1cy4iKTsKKyAgICB2
YXIgcmVhZGVyID0gZmlsZVN5c3RlbS5yb290LmNyZWF0ZVJlYWRlcigpOworICAgIHJlYWRlci5y
ZWFkRW50cmllcyhlbnRyaWVzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworfQorCitmdW5jdGlv
biBwYXJhbGxlbFRlc3QyKCkgeworICAgIGRlYnVnKCJTdGFydGluZyBwYXJhbGxlbCB0ZXN0IHN0
YWdlIDIuIik7CisKKyAgICB2YXIgam9pbiA9IG5ldyBKb2luKHZlcmlmeSk7CisgICAgdmFyIGRv
bmUgPSBmdW5jdGlvbigpIHsgam9pbi5kb25lKCk7IH07CisKKyAgICBqb2luLmNhbGwoKTsKKyAg
ICBhLmNvcHlUbyhiLCAndG1wJywgZG9uZSwgZXJyb3JDYWxsYmFjayk7CisKKyAgICBqb2luLmNh
bGwoKTsKKyAgICBhLmdldE1ldGFkYXRhKGRvbmUsIGVycm9yQ2FsbGJhY2spOworCisgICAgam9p
bi5jYWxsKCk7CisgICAgYi5nZXRQYXJlbnQoZG9uZSwgZXJyb3JDYWxsYmFjayk7CisKKyAgICBq
b2luLmNhbGwoKTsKKyAgICBiLm1vdmVUbyhmaWxlU3lzdGVtLnJvb3QsICdiMicsIGRvbmUsIGVy
cm9yQ2FsbGJhY2spOworCisgICAgam9pbi5jYWxsKCk7CisgICAgYy5jb3B5VG8oZmlsZVN5c3Rl
bS5yb290LCAnZCcsIGRvbmUsIGVycm9yQ2FsbGJhY2spOworCisgICAgam9pbi5jYWxsKCk7Cisg
ICAgZmlsZVN5c3RlbS5yb290LmdldEZpbGUoJ2UnLCB7Y3JlYXRlOnRydWV9LCBkb25lLCBlcnJv
ckNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gcGFyYWxsZWxUZXN0MSgpIHsKKyAgICBkZWJ1Zygi
U3RhcnRpbmcgcGFyYWxsZWwgdGVzdCBzdGFnZSAxLiIpOworCisgICAgdmFyIGpvaW4gPSBuZXcg
Sm9pbihwYXJhbGxlbFRlc3QyKTsKKyAgICB2YXIgcm9vdCA9IGZpbGVTeXN0ZW0ucm9vdDsKKwor
ICAgIGpvaW4uY2FsbCgpOworICAgIHJvb3QuZ2V0RmlsZSgnYScsIHtjcmVhdGU6dHJ1ZX0sIGZ1
bmN0aW9uKGVudHJ5KSB7CisgICAgICAgIGEgPSBlbnRyeTsKKyAgICAgICAgam9pbi5kb25lKCk7
CisgICAgfSwgZXJyb3JDYWxsYmFjayk7CisKKyAgICBqb2luLmNhbGwoKTsKKyAgICByb290Lmdl
dERpcmVjdG9yeSgnYicsIHtjcmVhdGU6dHJ1ZX0sIGZ1bmN0aW9uKGVudHJ5KSB7CisgICAgICAg
IGIgPSBlbnRyeTsKKyAgICAgICAgam9pbi5kb25lKCk7CisgICAgfSwgZXJyb3JDYWxsYmFjayk7
CisKKyAgICBqb2luLmNhbGwoKTsKKyAgICByb290LmdldERpcmVjdG9yeSgnYycsIHtjcmVhdGU6
dHJ1ZX0sIGZ1bmN0aW9uKGVudHJ5KSB7CisgICAgICAgIGMgPSBlbnRyeTsKKyAgICAgICAgam9p
bi5kb25lKCk7CisgICAgfSwgZXJyb3JDYWxsYmFjayk7Cit9CisKK2lmICh3aW5kb3cucmVxdWVz
dEZpbGVTeXN0ZW0pIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICB2YXIgam9p
biA9IG5ldyBKb2luKHBhcmFsbGVsVGVzdDEpOworCisgICAgam9pbi5jYWxsKCk7CisgICAgdmFy
IG9iaiA9IHRoaXM7CisgICAgcmVxdWVzdEZpbGVTeXN0ZW0od2luZG93LlRFTVBPUkFSWSwgMTAw
LCBmdW5jdGlvbihmcykgeworICAgICAgICBkZWJ1ZygiR290IEZpbGVTeXN0ZW06IiArIGZzLm5h
bWUpOworICAgICAgICBmaWxlU3lzdGVtID0gZnM7CisgICAgICAgIHJlbW92ZVJlY3Vyc2l2ZWx5
KGZpbGVTeXN0ZW0ucm9vdCwgZnVuY3Rpb24oKXsgam9pbi5kb25lKCk7IH0sIGVycm9yQ2FsbGJh
Y2spOworICAgIH0sIGVycm9yQ2FsbGJhY2spOworCisgICAgZGVidWcoInJlcXVlc3RlZCBGaWxl
U3lzdGVtLiIpOworCit9IGVsc2UKKyAgICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVT
eXN0ZW0gQVBJIHN1cHBvcnQuIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9zaW1w
bGUtcGVyc2lzdGVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVz
dHMvc2ltcGxlLXBlcnNpc3RlbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBhZGVjZWE3YzI3ZWRhNzgwZTE2
NDY4NmE5NzVkMmVhMThlMjU4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQuanMKQEAgLTAsMCArMSwy
NyBAQAorZGVzY3JpcHRpb24oIlBlcnNpc3RlbnQgRmlsZVN5c3RlbSBzaW1wbGUgdGVzdC4iKTsK
KworZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhmaWxlU3lzdGVtKSB7CisgICAgZGVidWcoIkVycm9y
IG9jY3VyZWQgZHVyaW5nIHJlcXVlc3RpbmcgUGVyc2lzdGVudCBGaWxlU3lzdGVtOiIgKyBmaWxl
U3lzdGVtLm5hbWUpOworICAgIHNob3VsZEJlVHJ1ZSgiZmFsc2UiKTsKKworICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrKGZpbGVTeXN0ZW0pIHsK
KyAgICBkZWJ1ZygiU3VjY2Vzc2Z1bGx5IG9idGFpbmVkIFBlcnNpc3RlbnQgRmlsZVN5c3RlbToi
ICsgZmlsZVN5c3RlbS5uYW1lKTsKKyAgICBzaG91bGRCZVRydWUoInRydWUiKTsKKworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgewor
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIHJlcXVlc3RGaWxlU3lzdGVtKHdpbmRv
dy5URU1QT1JBUlksIDEwMCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30gZWxz
ZQorICAgIGRlYnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4i
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS10ZW1wb3JhcnkuanMgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS10ZW1wb3Jhcnku
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjY1ZTUwNmE1NWQ1YjAwNTg3YzBiNjMwMmEzNTE3MWM4NDI5OGUwOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVz
dHMvc2ltcGxlLXRlbXBvcmFyeS5qcwpAQCAtMCwwICsxLDI4IEBACitkZXNjcmlwdGlvbigiVGVt
cG9yYXJ5IEZpbGVTeXN0ZW0gc2ltcGxlIHRlc3QuIik7CisKK2Z1bmN0aW9uIGVycm9yQ2FsbGJh
Y2soZmlsZVN5c3RlbSkgeworICAgIGRlYnVnKCJFcnJvciBvY2N1cmVkIGR1cmluZyByZXF1ZXN0
aW5nIFRlbXBvcmFyeSBGaWxlU3lzdGVtOiIgKyBmaWxlU3lzdGVtLm5hbWUpOworICAgIHNob3Vs
ZEJlVHJ1ZShmYWxzZSk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9u
IHN1Y2Nlc3NDYWxsYmFjayhmaWxlU3lzdGVtKSB7CisgICAgZGVidWcoIlN1Y2Nlc3NmdWxseSBv
YnRhaW5lZCBUZW1wb3JhcnkgRmlsZVN5c3RlbToiICsgZmlsZVN5c3RlbS5uYW1lKTsKKyAgICBz
aG91bGRCZVRydWUodHJ1ZSk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2lmICh3
aW5kb3cucmVxdWVzdEZpbGVTeXN0ZW0pIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisK
KyAgICByZXF1ZXN0RmlsZVN5c3RlbSh3aW5kb3cuUEVSU0lTVEVOVCwgMTAwLCBzdWNjZXNzQ2Fs
bGJhY2ssIGVycm9yQ2FsbGJhY2spOworfSBlbHNlCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1
aXJlcyBGaWxlU3lzdGVtIEFQSSBzdXBwb3J0LiIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBs
ZS1wZXJzaXN0ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9z
aW1wbGUtcGVyc2lzdGVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y4ZjdmYjhhYzYzZmM0
MTlmMGMxNDY4Nzg4NDc5M2Y5MWU0N2E0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMSBAQAorUGVyc2lzdGVudCBGaWxlU3lzdGVtIHNpbXBsZSB0ZXN0LgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworU3VjY2Vzc2Z1bGx5IG9idGFpbmVkIFBlcnNpc3RlbnQgRmls
ZVN5c3RlbTpUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHRydWUgaXMgdHJ1ZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1wZXJzaXN0ZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2I1YTEzYTY3ZDYzYWJlMDBjM2FhZDA5Zjg5YTQ3NTY4YzQzNzQxNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC5odG1sCkBA
IC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS10
ZW1wb3JhcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBs
ZS10ZW1wb3JhcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjZjY5NDU5YmE3ZDZkODVkZmFh
NTE2NTE0NDNiZDRhYTIyZTI2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorVGVtcG9yYXJ5IEZpbGVTeXN0ZW0gc2ltcGxlIHRlc3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitTdWNjZXNzZnVsbHkgb2J0YWluZWQgVGVtcG9yYXJ5IEZpbGVTeXN0ZW06
VGVzdFNoZWxsRmlsZVN5c3RlbQorV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1
bWVudHMKK1BBU1MgdHJ1ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL3NpbXBsZS10ZW1wb3JhcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9z
aW1wbGUtdGVtcG9yYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhlOTJmZmViYzQwZDM3OTE0Mjg5OWZi
MmY2ZDA5NTVhOGIyMTY3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9zaW1wbGUtdGVtcG9yYXJ5Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zaW1wbGUtdGVt
cG9yYXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQKaW5kZXggZTM3ODE3YTgxMDIwMjM3YTJkNzczNTNlYWIxYjczM2FkZDJiNGRjNy4uMzEx
ZmUzMjdmNjUxMDMzNzRjMTU4ZGQ5NjczZTMyYmM1OGFiMmVmNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQKQEAgLTU5MjUsMyArNTkyNSw2IEBAIHdlYnNvY2tldC90ZXN0cwogCiAjIHZpZXdw
b3J0IG1ldGEgdGFnIHN1cHBvcnQKIGZhc3Qvdmlld3BvcnQKKworIyBGaWxlU3lzdGVtIEFQSSBp
cyBub3QgZW5hYmxlZC4KK2Zhc3QvZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApp
bmRleCBiOGNhNTI4MWQxNDA5MmMxY2UzMmU5YjcxOWE5MjRmNDM0ZTZhYTI0Li5hODRiZDIyNTdi
NzdlYzJiNGM0ZGUzMWUwM2JhN2EyYWRmMTIzNmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBl
ZApAQCAtMzEwLDMgKzMxMCw2IEBAIGZhc3QvZmlsZXMvd29ya2VycwogCiAjIHZpZXdwb3J0IG1l
dGEgdGFnIHN1cHBvcnQKIGZhc3Qvdmlld3BvcnQKKworIyBGaWxlU3lzdGVtIEFQSSBpcyBub3Qg
ZW5hYmxlZC4KK2Zhc3QvZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggNjQx
NzI0NzZiYTI5YTBkNDA4N2UyMzUzMDAzYWY2NWQ5MDg3YmQwNi4uMjNmNzMzODRiMTdmZmNkODA1
YjEzNDFjNzJiYjY0ZjFkMGU4Y2ViYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC01NDQ5
LDMgKzU0NDksNiBAQCBmYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTEyNy5odG1sCiBmYXN0L3ZpZXdw
b3J0L3ZpZXdwb3J0LTYuaHRtbAogZmFzdC92aWV3cG9ydC92aWV3cG9ydC00NS5odG1sCiBmYXN0
L3ZpZXdwb3J0L3ZpZXdwb3J0LTU4Lmh0bWwKKworIyBGaWxlU3lzdGVtIEFQSSBpcyBub3QgZW5h
YmxlZC4KK2Zhc3QvZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA2MmNl
YWQ4ZTljMTJmYzcyMjdkNDA5MjA0NTExNzhiZmMzNTI1NjNlLi5lODA0NmViNTRhYjYyYjk3OWQz
OTk0NWU1YzQ3YzNjNTc4NmIwMThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTk1
LDMgKzk5NSw2IEBAIGZhc3Qvdmlld3BvcnQKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDU5ODMKIG1lZGlhL21lZGlhLWNhbi1wbGF5LW1wZWc0LXZpZGVvLmh0
bWwKKworIyBGaWxlU3lzdGVtIEFQSSBpcyBub3QgZW5hYmxlZC4KK2Zhc3QvZmlsZXN5c3RlbQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69245</attachid>
            <date>2010-09-29 13:42:41 -0700</date>
            <delta_ts>2010-09-29 20:15:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44920-20100929134240.patch</filename>
            <type>text/plain</type>
            <size>88081</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNDJhODI4Y2UzNmFkYmZlM2UyM2E3MjEwMWJkZTNiNWVlOTk0NDRmLi5hZjZjZWNl
ZWUyYmYxYjE4MDJjYzliZmEyMzYzNWRjNzlhYjk0M2Y4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAK
KzIwMTAtMDktMjkgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVz
dHMgZm9yIEZpbGVTeXN0ZW0gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDkyMAorCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL2ZsYWdzLXBh
c3NpbmctZXhwZWN0ZWQudHh0OiBVcGRhdGVkIGZvciB0aGUgY29uc2lzdGVuY3kuCisgICAgICAg
ICogZmFzdC9maWxlc3lzdGVtL2ZsYWdzLXBhc3NpbmcuaHRtbDogVXBkYXRlZCBmb3IgdGhlIGNv
bnNpc3RlbmN5LgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1jb3B5LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWNvcHkuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1nZXQtZW50cnkuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRhZGF0YS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRpcmVjdG9yeS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRpcmVjdG9yeS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcGFyYWxsZWwtb3BlcmF0aW9ucy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRp
b25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3
aWNlLXBlcnNpc3RlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVz
eXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXRlbXBv
cmFyeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2Zz
LXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0
ZW0vcmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmls
ZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLWNoYXJzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLW5hbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtbmFtZXMuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sOgor
ICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvZmxhZ3MtcGFzc2luZy5qczog
VXBkYXRlZCBmb3IgdGhlCisgICAgICAgIGNvbnNpc3RlbmN5IHdpdGggb3RoZXJzLgorICAgICAg
ICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvcGFyYWxsZWwtb3BlcmF0aW9ucy5qczog
QWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9zaW1wbGUtcGVy
c2lzdGVudC5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0
cy9zaW1wbGUtdGVtcG9yYXJ5LmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0v
c2ltcGxlLXBlcnNpc3RlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
aWxlc3lzdGVtL3NpbXBsZS10ZW1wb3JhcnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFyeS5odG1sOiBBZGRlZC4KKwogMjAxMC0w
OS0yOSAgQW5hbnRhbmFyYXlhbmFuIEcgSXllbmdhciAgPGFuYW50YUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL2ZsYWdzLXBhc3NpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL2ZsYWdzLXBhc3NpbmctZXhwZWN0ZWQudHh0CmluZGV4IDMzMGM4
M2ZjZTk5NmQ5ZTQyNTZjOTQyNWQwNDU0OTY1ZGI4NDY2ODYuLjU3NWE3ZjY5ZjJlZjYyYzNmZDA3
MDg0NmFlMmE1YTRhNjQzMTI2OGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9mbGFncy1wYXNzaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vZmxhZ3MtcGFzc2luZy1leHBlY3RlZC50eHQKQEAgLTMsOSArMyw2IEBAIFBhc3Np
bmcgRmxhZ3MgcGFyYW1ldGVyIHRlc3RzLiBUaGlzIHRlc3QgY2hlY2tzIGlmIHBhc3NpbmcgRmxh
Z3MgcGFyYW1ldGVycyAoaW4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKICogUGFzc2luZyBhIEZs
YWdzIG9iamVjdC4KICogUmVjeWNsaW5nIHRoZSBzYW1lIEZsYWdzIG9iamVjdC4KICogUGFzc2lu
ZyBhIEZsYWdzIG9iamVjdCAod2l0aCBleGNsdXNpdmU9dHJ1ZSkuCkBAIC0xNCw0ICsxMSw3IEBA
IFRFU1QgQ09NUExFVEUKIEZpbmlzaGVkIHJ1bm5pbmcgdGVzdHMuCiBQQVNTIGV4cGVjdGVkQ2Fs
bGJhY2tzQ291bnQgaXMgMwogUEFTUyB1bmV4cGVjdGVkQ2FsbGJhY2tzQ291bnQgaXMgMAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9mbGFncy1wYXNzaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vZmxhZ3MtcGFzc2luZy5odG1sCmluZGV4IDcwYWRkNjYy
NTI1ZjYxNDJjMmQ2MGY5MDBlMjQ3YmZlNmI2Y2IxZmIuLmYzNDc0NDY2ZmVjMjQ5YjkxN2M4NTZi
ZDgzOTRmZTMxZjJlZGJiZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9mbGFncy1wYXNzaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL2Zs
YWdzLXBhc3NpbmcuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxoZWFkPgogPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgogPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0Y2ZmZmVmMzdlZWIxYTY5
ZWZmNDdkM2QwYmZkNTZjYmJhYTk0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtY29weS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4NCBAQAorR290
IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBmaWxlc3lzdGVt
Li4uCisqIENvcHlpbmcgYW4gZW50cnkgdG8gdGhlIHNhbWUgZGlyZWN0b3J5CitSZXNldGluZyB0
aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBST09ULmdldERp
cmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEg
PSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVk
OiAgICAgZmlsZTIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1
Y2NlZWRlZDogICAgIGNvcGllZCA9IGRpcjEuY29weVRvKHBhcmVudCwgbmFtZTMpCitQQVNTIFN1
Y2NlZWRlZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpCitQQVNTIFN1Y2NlZWRlZDog
ICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTMpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNvcGll
ZCA9IGZpbGUyLmNvcHlUbyhwYXJlbnQsIG5hbWU0KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJl
bnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RGly
ZWN0b3J5KG5hbWUzKQorKiBDb3B5aW5nIGVudHJpZXMgdG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5
CitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0g
Uk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAg
ICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcp
CitQQVNTIFN1Y2NlZWRlZDogICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNvcGllZCA9IGNoaWxkMy5jb3B5VG8oZGlyMiwg
bmFtZTEpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzKQorUEFT
UyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdldERpcmVjdG9yeShuYW1lMSkKK1BBU1MgU3VjY2VlZGVk
OiAgICAgY29waWVkID0gY2hpbGQ0LmNvcHlUbyhkaXIyLCBuYW1lMikKK1BBU1MgU3VjY2VlZGVk
OiAgICAgZGlyMS5nZXRGaWxlKG5hbWU0KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdldEZp
bGUobmFtZTIpCisqIENvcHlpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzCitSZXNldGlu
ZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gUk9PVC5nZXRE
aXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIyID0g
Uk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAg
ICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1
Y2NlZWRlZDogICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcpCitQ
QVNTIFN1Y2NlZWRlZDogICAgIGNvcGllZCA9IGNoaWxkMy5jb3B5VG8oZGlyMiwgbnVsbCkKK1BB
U1MgU3VjY2VlZGVkOiAgICAgZGlyMS5nZXREaXJlY3RvcnkoY2hpbGQzLm5hbWUpCitQQVNTIFN1
Y2NlZWRlZDogICAgIGRpcjIuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorUEFTUyBTdWNjZWVk
ZWQ6ICAgICBjb3BpZWQgPSBjaGlsZDQuY29weVRvKGRpcjIsIG51bGwpCitQQVNTIFN1Y2NlZWRl
ZDogICAgIGRpcjEuZ2V0RmlsZShjaGlsZDQubmFtZSkKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGly
Mi5nZXRGaWxlKGNoaWxkNC5uYW1lKQorKiBDb3B5aW5nIGVudHJpZXMgdG8gdGhlIHNhbWUgZGly
ZWN0b3J5IHdpdGggdGhlIHNhbWUgbmFtZQorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BB
U1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNy
ZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9y
eShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUyID0gcGFyZW50
LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
IGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlz
ICIxMyIKKyogVHJ5aW5nIHRvIGNvcHkgbm9uLWV4aXN0ZW50IGVudHJpZXMKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgbm9uZXhpc3RfZGlyID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIG5vbmV4aXN0X2ZpbGUgPSBwYXJlbnQuZ2V0Rmls
ZShuYW1lNCwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIG5vbmV4aXN0X2Rpci5y
ZW1vdmUoKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBub25leGlzdF9maWxlLnJlbW92ZSgpCitQQVNT
IHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCisqIENvcHlpbmcgZW50cmllcyB0byBhIG5vbi1leGlz
dGVudCBkaXJlY3RvcnkKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1Mg
U3VjY2VlZGVkOiAgICAgUk9PVC5nZXREaXJlY3RvcnkoZGlyMS5mdWxsUGF0aCkKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRoKQorUEFTUyB0aGlzLmV4cGVj
dGVkRXJyb3JDb2RlIGlzICI4IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4Igor
KiBDb3B5aW5nIGVudHJpZXMgdG8gaXRzIGNoaWxkCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKKyogQ29weWlu
ZyBhIGRpcmVjdG9yeSB3aXRoIGNoaWxkcmVuCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjQgPSBw
YXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAg
ICAgY2hpbGQxID0gZGlyNC5nZXRGaWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgY2hpbGQyID0gZGlyNC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBjaGlsZDMgPSBjaGlsZDIuZ2V0RmlsZShuYW1lMywgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNoaWxkNCA9IGNoaWxkMi5nZXREaXJlY3Rvcnko
bmFtZTQsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLnZhcnNbImVudHJpZXMxIl1bImxlbmd0aCJd
IGlzIDIKK1BBU1MgdGhpcy52YXJzWyJlbnRyaWVzMiJdWyJsZW5ndGgiXSBpcyAyCitQQVNTIFN1
Y2NlZWRlZDogICAgIGRpcjRfY29weSA9IGRpcjQuY29weVRvKFJPT1QsICdkaXI0X2NvcHknKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBjaGlsZDJfY29weSA9IGRpcjRfY29weS5nZXREaXJlY3Rvcnko
bmFtZTIpCitQQVNTIHRoaXMudmFyc1siZW50cmllczFfY29weSJdWyJsZW5ndGgiXSBpcyAyCitQ
QVNTIHRoaXMudmFyc1siZW50cmllczJfY29weSJdWyJsZW5ndGgiXSBpcyAyCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyNC5mdWxsUGF0aCkKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZGlyNC5nZXRGaWxlKG5hbWUxKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXI0Lmdl
dERpcmVjdG9yeShuYW1lMikKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9vcC1jb3B5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1NGI5YzFmZjQ5MWQ1ZjBiOTkw
ZmYzNjYwOTY2NjIwNDczYzFlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9vcC1jb3B5Lmh0bWwKQEAgLTAsMCArMSwxNDQgQEAKKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJh
cHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1z
Y3JpcHQiPgorICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicK
KyAgICBuYW1lMyA9ICdjJworICAgIG5hbWU0ID0gJ2QnCisgICAgY3JlYXRlX2ZsYWcgPSB7Y3Jl
YXRlOnRydWV9CisKKyAgICBwcmludCgnKiBDb3B5aW5nIGFuIGVudHJ5IHRvIHRoZSBzYW1lIGRp
cmVjdG9yeScpCisKKyAgICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1Qu
Z2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIxID0gcGFyZW50Lmdl
dERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBwYXJlbnQuZ2V0Rmls
ZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICAjIERpcmVjdG9yeQorICAgIGNvcGllZCA9IGRp
cjEuY29weVRvKHBhcmVudCwgbmFtZTMpCisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkK
KyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAgIyBGaWxlCisgICAgY29waWVk
ID0gZmlsZTIuY29weVRvKHBhcmVudCwgbmFtZTQpCisgICAgcGFyZW50LmdldERpcmVjdG9yeShu
YW1lMSkKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAgcHJpbnQoJyogQ29w
eWluZyBlbnRyaWVzIHRvIGEgZGlmZmVyZW50IGRpcmVjdG9yeScpCisKKyAgICAjIFJlc2V0Cisg
ICAgcmVzZXQoKQorICAgIGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2Zs
YWcpCisgICAgZGlyMiA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAg
ICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgY2hp
bGQ0ID0gZGlyMS5nZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKKworICAgICMgRGlyZWN0b3J5
CisgICAgY29waWVkID0gY2hpbGQzLmNvcHlUbyhkaXIyLCBuYW1lMSkKKyAgICBkaXIxLmdldERp
cmVjdG9yeShuYW1lMykKKyAgICBkaXIyLmdldERpcmVjdG9yeShuYW1lMSkKKworICAgICMgRmls
ZQorICAgIGNvcGllZCA9IGNoaWxkNC5jb3B5VG8oZGlyMiwgbmFtZTIpCisgICAgZGlyMS5nZXRG
aWxlKG5hbWU0KQorICAgIGRpcjIuZ2V0RmlsZShuYW1lMikKKworICAgIHByaW50KCcqIENvcHlp
bmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzJykKKworICAgICMgUmVzZXQKKyAgICByZXNl
dCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAg
ICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxk
MyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDQgPSBk
aXIxLmdldEZpbGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBEaXJlY3RvcnkKKyAgICBj
b3BpZWQgPSBjaGlsZDMuY29weVRvKGRpcjIsIG51bGwpCisgICAgZGlyMS5nZXREaXJlY3Rvcnko
Y2hpbGQzLm5hbWUpCisgICAgZGlyMi5nZXREaXJlY3RvcnkoY2hpbGQzLm5hbWUpCisKKyAgICAj
IEZpbGUKKyAgICBjb3BpZWQgPSBjaGlsZDQuY29weVRvKGRpcjIsIG51bGwpCisgICAgZGlyMS5n
ZXRGaWxlKGNoaWxkNC5uYW1lKQorICAgIGRpcjIuZ2V0RmlsZShjaGlsZDQubmFtZSkKKworICAg
IHByaW50KCcqIENvcHlpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJlY3Rvcnkgd2l0aCB0aGUg
c2FtZSBuYW1lJykKKworICAgICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9P
VC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQu
Z2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRG
aWxlKG5hbWUyLCBjcmVhdGVfZmxhZykKKworICAgIGRpcjEuY29weVRvKHBhcmVudCwgbnVsbCkg
cmFpc2VzIDEzCisgICAgZGlyMS5jb3B5VG8ocGFyZW50LCBuYW1lMSkgcmFpc2VzIDEzCisgICAg
ZmlsZTIuY29weVRvKHBhcmVudCwgbnVsbCkgcmFpc2VzIDEzCisgICAgZmlsZTIuY29weVRvKHBh
cmVudCwgbmFtZTIpIHJhaXNlcyAxMworCisgICAgcHJpbnQoJyogVHJ5aW5nIHRvIGNvcHkgbm9u
LWV4aXN0ZW50IGVudHJpZXMnKQorCisgICAgbm9uZXhpc3RfZGlyID0gcGFyZW50LmdldERpcmVj
dG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgbm9uZXhpc3RfZmlsZSA9IHBhcmVudC5nZXRG
aWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKKyAgICBub25leGlzdF9kaXIucmVtb3ZlKCkKKyAgICBu
b25leGlzdF9maWxlLnJlbW92ZSgpCisKKyAgICBST09ULmdldERpcmVjdG9yeShub25leGlzdF9k
aXIuZnVsbFBhdGgpIHJhaXNlcyA4CisgICAgUk9PVC5nZXRGaWxlKG5vbmV4aXN0X2ZpbGUuZnVs
bFBhdGgpIHJhaXNlcyA4CisKKyAgICBub25leGlzdF9kaXIuY29weVRvKGRpcjEsIG5hbWUyKSBy
YWlzZXMgOAorICAgIG5vbmV4aXN0X2ZpbGUuY29weVRvKGRpcjIsIG5hbWUxKSByYWlzZXMgOAor
CisgICAgcHJpbnQoJyogQ29weWluZyBlbnRyaWVzIHRvIGEgbm9uLWV4aXN0ZW50IGRpcmVjdG9y
eScpCisKKyAgICBST09ULmdldERpcmVjdG9yeShub25leGlzdF9kaXIuZnVsbFBhdGgpIHJhaXNl
cyA4CisgICAgUk9PVC5nZXREaXJlY3RvcnkoZGlyMS5mdWxsUGF0aCkKKyAgICBST09ULmdldEZp
bGUoZmlsZTIuZnVsbFBhdGgpCisKKyAgICBkaXIxLmNvcHlUbyhub25leGlzdF9kaXIsIG5hbWUx
KSByYWlzZXMgOAorICAgIGZpbGUyLmNvcHlUbyhub25leGlzdF9kaXIsIG5hbWUzKSByYWlzZXMg
OAorCisgICAgcHJpbnQoJyogQ29weWluZyBlbnRyaWVzIHRvIGl0cyBjaGlsZCcpCisKKyAgICBS
T09ULmNvcHlUbyhkaXIxKSByYWlzZXMgMTMKKyAgICBwYXJlbnQuY29weVRvKGRpcjEpIHJhaXNl
cyAxMworCisgICAgcHJpbnQoJyogQ29weWluZyBhIGRpcmVjdG9yeSB3aXRoIGNoaWxkcmVuJykK
KworICAgIGRpcjQgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykKKyAg
ICBjaGlsZDEgPSBkaXI0LmdldEZpbGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMiA9
IGRpcjQuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDMgPSBjaGls
ZDIuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQ0ID0gY2hpbGQyLmdldERp
cmVjdG9yeShuYW1lNCwgY3JlYXRlX2ZsYWcpCisKKyAgICBlbnRyaWVzMSA9IGRpcjQucmVhZERp
cmVjdG9yeSgpCisgICAgZW50cmllczIgPSBjaGlsZDIucmVhZERpcmVjdG9yeSgpCisgICAgQVNT
RVJUX0VRKDIsIGVudHJpZXMxLmxlbmd0aCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczIubGVu
Z3RoKQorCisgICAgZGlyNF9jb3B5ID0gZGlyNC5jb3B5VG8oUk9PVCwgJ2RpcjRfY29weScpCisg
ICAgY2hpbGQyX2NvcHkgPSBkaXI0X2NvcHkuZ2V0RGlyZWN0b3J5KG5hbWUyKQorCisgICAgZW50
cmllczFfY29weSA9IGRpcjRfY29weS5yZWFkRGlyZWN0b3J5KCkKKyAgICBlbnRyaWVzMl9jb3B5
ID0gY2hpbGQyX2NvcHkucmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJpZXMx
X2NvcHkubGVuZ3RoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMl9jb3B5Lmxlbmd0aCkKKwor
ICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyNC5mdWxsUGF0aCkKKyAgICBkaXI0LmdldEZpbGUo
bmFtZTEpCisgICAgZGlyNC5nZXREaXJlY3RvcnkobmFtZTIpCisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
b3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9v
cC1nZXQtZW50cnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YWVmZWQ1ZTZhZmIyYWU2NDgx
MzNkY2Y4YWMyYTgyOTE0NTk3NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk0IEBACitH
b3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorKiBDcmVhdGluZyB0b3AtbGV2ZWwg
ZGlyZWN0b3JpZXMgYW5kIGZpbGVzCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBT
dWNjZWVkZWQ6ICAgICBkaXIxID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFn
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlMiA9IFJPT1QuZ2V0RmlsZShuYW1lMiwgY3JlYXRl
X2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZGlyMSJdWyJuYW1lIl0gaXMgdGhpcy52YXJzWyJuYW1l
MSJdCitQQVNTIHRoaXMudmFyc1siZmlsZTIiXVsibmFtZSJdIGlzIHRoaXMudmFyc1sibmFtZTIi
XQorUEFTUyB0aGlzLnZhcnNbImRpcjEiXVsiaXNEaXJlY3RvcnkiXSBpcyB0aGlzLnZhcnNbInRy
dWUiXQorUEFTUyB0aGlzLnZhcnNbImRpcjEiXVsiaXNGaWxlIl0gaXMgdGhpcy52YXJzWyJmYWxz
ZSJdCitQQVNTIHRoaXMudmFyc1siZmlsZTIiXVsiaXNEaXJlY3RvcnkiXSBpcyB0aGlzLnZhcnNb
ImZhbHNlIl0KK1BBU1MgdGhpcy52YXJzWyJmaWxlMiJdWyJpc0ZpbGUiXSBpcyB0aGlzLnZhcnNb
InRydWUiXQorKiBDcmVhdGluZyBuZXN0ZWQgZGlyZWN0b3JpZXMgYW5kIGZpbGVzCitQQVNTIFN1
Y2NlZWRlZDogICAgIGRpcjFfZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVf
ZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMV9maWxlMyA9IGRpcjEuZ2V0RmlsZShuYW1l
MywgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZGlyMV9kaXIyIl1bImZ1bGxQYXRoIl0g
aXMgJy9hL2InCitQQVNTIHRoaXMudmFyc1siZGlyMV9maWxlMyJdWyJmdWxsUGF0aCJdIGlzICcv
YS9jJworKiBDcmVhdGluZyBoZWF2aWx5IG5lc3RlZCBlbnRyaWVzCitSZXNldGluZyB0aGUgZmls
ZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQxID0gUk9PVC5nZXREaXJlY3Rv
cnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQyID0gbmVz
dGVkMS5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAg
ICBuZXN0ZWQzID0gbmVzdGVkMi5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0ZV9mbGFnKQorUEFT
UyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQ0ID0gbmVzdGVkMy5nZXREaXJlY3RvcnkobmFtZTQsIGNy
ZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQ1ID0gbmVzdGVkNC5nZXRGaWxl
KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgdGhpcy52YXJzWyJuZXN0ZWQ1Il1bImZ1bGxQYXRo
Il0gaXMgJy9hL2IvYy9kL2EnCitQQVNTIHRoaXMudmFyc1sibmVzdGVkNSJdWyJuYW1lIl0gaXMg
dGhpcy52YXJzWyJuYW1lMSJdCisqIEdldHRpbmcgZXhpc3RpbmcgZW50cmllcworUmVzZXRpbmcg
dGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXRE
aXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIx
ID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRl
ZDogICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBT
dWNjZWVkZWQ6ICAgICBkaXIxXzIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorUEFTUyBT
dWNjZWVkZWQ6ICAgICBmaWxlMl8yID0gcGFyZW50LmdldEZpbGUobmFtZTIpCitQQVNTIHRoaXMu
dmFyc1siZGlyMV8yIl1bImZ1bGxQYXRoIl0gaXMgdGhpcy52YXJzWyJkaXIxIl1bImZ1bGxQYXRo
Il0KK1BBU1MgdGhpcy52YXJzWyJmaWxlMl8yIl1bImZ1bGxQYXRoIl0gaXMgdGhpcy52YXJzWyJm
aWxlMiJdWyJmdWxsUGF0aCJdCisqIEdldHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCBmdWxs
IHBhdGhzLgorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAg
cGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBT
dWNjZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2Zs
YWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUy
LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyID0gUk9PVC5nZXREaXJlY3Rv
cnkoJy9wYXJlbnQvYS9hJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUg
PSBST09ULmdldEZpbGUoJy9wYXJlbnQvYS9iJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRl
ZDogICAgIGRpcjEuZ2V0RGlyZWN0b3J5KCdhJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMS5n
ZXRGaWxlKCdiJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyID0gZGlyMi5nZXREaXJlY3Rvcnko
Jy9wYXJlbnQvYS9jJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUgPSBk
aXIyLmdldEZpbGUoJy9wYXJlbnQvYS9kJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDog
ICAgIGRpcjEuZ2V0RGlyZWN0b3J5KCdjJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMS5nZXRG
aWxlKCdkJykKKyogR2V0dGluZyBmaWxlcy9kaXJlY3RvcmllcyB3aXRoIHJlbGF0aXZlIHBhdGhz
LgorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50
ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVk
ZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQ
QVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpciA9IGRpcjEuZ2V0RGlyZWN0b3J5KCdiL2En
LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZSA9IGRpcjEuZ2V0RmlsZSgn
Yi9iJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIFJPT1QuZ2V0RGlyZWN0b3J5
KCcvcGFyZW50L2EvYi9hJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgUk9PVC5nZXRGaWxlKCcvcGFy
ZW50L2EvYi9iJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50LmdldERpcmVjdG9yeSgnYS9i
L2EnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RmlsZSgnYS9iL2InKQorKiBUcnlp
bmcgdG8gZ2V0L2NyZWF0ZSBlbnRyaWVzIGF0IG5vbi1leGlzdGVudCBwYXRoCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMg
IjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0
ZWRFcnJvckNvZGUgaXMgIjgiCisqIENhbGxpbmcgZ2V0RmlsZSBmb3IgYSBkaXJlY3RvcnksIGdl
dERpcmVjdG9yeSBmb3IgYSBmaWxlCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBT
dWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2Zs
YWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpciA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTIs
IGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlID0gcGFyZW50LmdldEZpbGUo
bmFtZTMsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMSIK
K1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTEiCitQQVNTIHRoaXMuZXhwZWN0ZWRF
cnJvckNvZGUgaXMgIjExIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMSIKKyog
VHJ5aW5nIHRvIGNyZWF0ZSBlbnRyaWVzIHdpdGggZXhjbHVzaXZlIGZsYWcKK1Jlc2V0aW5nIHRo
ZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIHBhcmVudCA9IFJPT1QuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyID0gcGFy
ZW50LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAg
IGZpbGUgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIx
MyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0
ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIucmVtb3ZlKCkKK1BB
U1MgU3VjY2VlZGVkOiAgICAgZmlsZS5yZW1vdmUoKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBST09U
LmdldERpcmVjdG9yeShkaXIuZnVsbFBhdGgsIGV4Y2x1c2l2ZV9mbGFnKQorUEFTUyBTdWNjZWVk
ZWQ6ICAgICBST09ULmdldEZpbGUoZmlsZS5mdWxsUGF0aCwgZXhjbHVzaXZlX2ZsYWcpCitQQVNT
IFN1Y2NlZWRlZDogICAgIGRpci5yZW1vdmUoKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlLnJl
bW92ZSgpCitQQVNTIFN1Y2NlZWRlZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyLm5hbWUs
IGV4Y2x1c2l2ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RmlsZShmaWxl
Lm5hbWUsIGV4Y2x1c2l2ZV9mbGFnKQorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZiM2I5
ZDNlNzYyOTEzMWY4Y2E3NWNmMmRjMjk0MTc0ZDQzNWE1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtZW50cnkuaHRtbApAQCAtMCwwICsxLDE0
MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10
ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNo
ZWxsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlk
PSJmaWxlLXN5c3RlbS10ZXN0LXNjcmlwdCI+CisKKyAgICBuYW1lMSA9ICdhJworICAgIG5hbWUy
ID0gJ2InCisgICAgbmFtZTMgPSAnYycKKyAgICBuYW1lNCA9ICdkJworCisgICAgY3JlYXRlX2Zs
YWcgPSB7Y3JlYXRlOnRydWV9CisgICAgZXhjbHVzaXZlX2ZsYWcgPSB7Y3JlYXRlOnRydWUsIGV4
Y2x1c2l2ZTp0cnVlfQorCisgICAgcHJpbnQoJyogQ3JlYXRpbmcgdG9wLWxldmVsIGRpcmVjdG9y
aWVzIGFuZCBmaWxlcycpCisKKyAgICByZXNldCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0
b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IFJPT1QuZ2V0RmlsZShuYW1lMiwg
Y3JlYXRlX2ZsYWcpCisgICAgQVNTRVJUX0VRKG5hbWUxLCBkaXIxLm5hbWUpCisgICAgQVNTRVJU
X0VRKG5hbWUyLCBmaWxlMi5uYW1lKQorICAgIEFTU0VSVF9FUSh0cnVlLCBkaXIxLmlzRGlyZWN0
b3J5KQorICAgIEFTU0VSVF9FUShmYWxzZSwgZGlyMS5pc0ZpbGUpCisgICAgQVNTRVJUX0VRKGZh
bHNlLCBmaWxlMi5pc0RpcmVjdG9yeSkKKyAgICBBU1NFUlRfRVEodHJ1ZSwgZmlsZTIuaXNGaWxl
KQorCisgICAgcHJpbnQoJyogQ3JlYXRpbmcgbmVzdGVkIGRpcmVjdG9yaWVzIGFuZCBmaWxlcycp
CisKKyAgICBkaXIxX2RpcjIgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcp
CisgICAgZGlyMV9maWxlMyA9IGRpcjEuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAg
QVNTRVJUX0VRKCcvYS9iJywgZGlyMV9kaXIyLmZ1bGxQYXRoKQorICAgIEFTU0VSVF9FUSgnL2Ev
YycsIGRpcjFfZmlsZTMuZnVsbFBhdGgpCisKKyAgICBwcmludCgnKiBDcmVhdGluZyBoZWF2aWx5
IG5lc3RlZCBlbnRyaWVzJykKKworICAgIHJlc2V0KCkKKyAgICBuZXN0ZWQxID0gUk9PVC5nZXRE
aXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIG5lc3RlZDIgPSBuZXN0ZWQxLmdldERp
cmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgbmVzdGVkMyA9IG5lc3RlZDIuZ2V0RGly
ZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBuZXN0ZWQ0ID0gbmVzdGVkMy5nZXREaXJl
Y3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorICAgIG5lc3RlZDUgPSBuZXN0ZWQ0LmdldEZpbGUo
bmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIEFTU0VSVF9FUSgnL2EvYi9jL2QvYScsIG5lc3RlZDUu
ZnVsbFBhdGgpCisgICAgQVNTRVJUX0VRKG5hbWUxLCBuZXN0ZWQ1Lm5hbWUpCisKKyAgICBwcmlu
dCgnKiBHZXR0aW5nIGV4aXN0aW5nIGVudHJpZXMnKQorCisgICAgcmVzZXQoKQorICAgIHBhcmVu
dCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIxID0g
cGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBwYXJl
bnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBkaXIxXzIgPSBwYXJlbnQuZ2V0
RGlyZWN0b3J5KG5hbWUxKQorICAgIGZpbGUyXzIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMikKKyAg
ICBBU1NFUlRfRVEoZGlyMS5mdWxsUGF0aCwgZGlyMV8yLmZ1bGxQYXRoKQorICAgIEFTU0VSVF9F
UShmaWxlMi5mdWxsUGF0aCwgZmlsZTJfMi5mdWxsUGF0aCkKKworICAgIHByaW50KCcqIEdldHRp
bmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCBmdWxsIHBhdGhzLicpCisKKyAgICByZXNldCgpCisg
ICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAg
IGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBkaXIy
ID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBkaXIgPSBS
T09ULmdldERpcmVjdG9yeSgnL3BhcmVudC9hL2EnLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlID0g
Uk9PVC5nZXRGaWxlKCcvcGFyZW50L2EvYicsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEuZ2V0RGly
ZWN0b3J5KCdhJykKKyAgICBkaXIxLmdldEZpbGUoJ2InKQorCisgICAgIyBUaGUgZW50cnkncyBw
YXRoIG11c3Qgbm90IGJlIHVzZWQgaWYgdGhlIGdpdmVuIHBhdGggaXMgYSBmdWxsIHBhdGguCisg
ICAgZGlyID0gZGlyMi5nZXREaXJlY3RvcnkoJy9wYXJlbnQvYS9jJywgY3JlYXRlX2ZsYWcpCisg
ICAgZmlsZSA9IGRpcjIuZ2V0RmlsZSgnL3BhcmVudC9hL2QnLCBjcmVhdGVfZmxhZykKKyAgICBk
aXIxLmdldERpcmVjdG9yeSgnYycpCisgICAgZGlyMS5nZXRGaWxlKCdkJykKKworICAgIHByaW50
KCcqIEdldHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCByZWxhdGl2ZSBwYXRocy4nKQorCisg
ICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVh
dGVfZmxhZykKKyAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2Zs
YWcpCisgICAgZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKwor
ICAgIGRpciA9IGRpcjEuZ2V0RGlyZWN0b3J5KCdiL2EnLCBjcmVhdGVfZmxhZykKKyAgICBmaWxl
ID0gZGlyMS5nZXRGaWxlKCdiL2InLCBjcmVhdGVfZmxhZykKKyAgICBST09ULmdldERpcmVjdG9y
eSgnL3BhcmVudC9hL2IvYScpCisgICAgUk9PVC5nZXRGaWxlKCcvcGFyZW50L2EvYi9iJykKKyAg
ICBwYXJlbnQuZ2V0RGlyZWN0b3J5KCdhL2IvYScpCisgICAgcGFyZW50LmdldEZpbGUoJ2EvYi9i
JykKKworICAgIHByaW50KCcqIFRyeWluZyB0byBnZXQvY3JlYXRlIGVudHJpZXMgYXQgbm9uLWV4
aXN0ZW50IHBhdGgnKQorCisgICAgZGlyMS5nZXRGaWxlKCdub25leGlzdGVudCcpIHJhaXNlcyA4
CisgICAgZGlyMS5nZXREaXJlY3RvcnkoJ25vbmV4aXN0ZW50JykgcmFpc2VzIDgKKyAgICBkaXIx
LmdldEZpbGUoJ25vbmV4aXN0ZW50L2QnLCBjcmVhdGVfZmxhZykgcmFpc2VzIDgKKyAgICBkaXIx
LmdldERpcmVjdG9yeSgnbm9uZXhpc3RlbnQvZCcsIGNyZWF0ZV9mbGFnKSByYWlzZXMgOAorCisg
ICAgcHJpbnQoJyogQ2FsbGluZyBnZXRGaWxlIGZvciBhIGRpcmVjdG9yeSwgZ2V0RGlyZWN0b3J5
IGZvciBhIGZpbGUnKQorCisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0
b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBkaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5h
bWUyLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlID0gcGFyZW50LmdldEZpbGUobmFtZTMsIGNyZWF0
ZV9mbGFnKQorCisgICAgUk9PVC5nZXREaXJlY3RvcnkoZmlsZS5mdWxsUGF0aCkgcmFpc2VzIDEx
CisgICAgUk9PVC5nZXRGaWxlKGRpci5mdWxsUGF0aCkgcmFpc2VzIDExCisgICAgcGFyZW50Lmdl
dERpcmVjdG9yeShmaWxlLm5hbWUpIHJhaXNlcyAxMQorICAgIHBhcmVudC5nZXRGaWxlKGRpci5u
YW1lKSByYWlzZXMgMTEKKworICAgIHByaW50KCcqIFRyeWluZyB0byBjcmVhdGUgZW50cmllcyB3
aXRoIGV4Y2x1c2l2ZSBmbGFnJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdl
dERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyID0gcGFyZW50LmdldERpcmVj
dG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZSA9IHBhcmVudC5nZXRGaWxlKG5hbWUz
LCBjcmVhdGVfZmxhZykKKworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpci5mdWxsUGF0aCwgZXhj
bHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZShmaWxlLmZ1bGxQYXRoLCBl
eGNsdXNpdmVfZmxhZykgcmFpc2VzIDEzCisgICAgcGFyZW50LmdldERpcmVjdG9yeShkaXIubmFt
ZSwgZXhjbHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworICAgIHBhcmVudC5nZXRGaWxlKGZpbGUubmFt
ZSwgZXhjbHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworCisgICAgZGlyLnJlbW92ZSgpCisgICAgZmls
ZS5yZW1vdmUoKQorCisgICAgIyBOb3cgdGhpcyBzaG91bGQgc3VjY2VlZC4KKyAgICBST09ULmdl
dERpcmVjdG9yeShkaXIuZnVsbFBhdGgsIGV4Y2x1c2l2ZV9mbGFnKQorICAgIFJPT1QuZ2V0Rmls
ZShmaWxlLmZ1bGxQYXRoLCBleGNsdXNpdmVfZmxhZykKKworICAgIGRpci5yZW1vdmUoKQorICAg
IGZpbGUucmVtb3ZlKCkKKworICAgICMgTm93IHRoaXMgc2hvdWxkIHN1Y2NlZWQuCisgICAgcGFy
ZW50LmdldERpcmVjdG9yeShkaXIubmFtZSwgZXhjbHVzaXZlX2ZsYWcpCisgICAgcGFyZW50Lmdl
dEZpbGUoZmlsZS5uYW1lLCBleGNsdXNpdmVfZmxhZykKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1n
ZXQtbWV0YWRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29w
LWdldC1tZXRhZGF0YS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUwYTI1ODYxNTQ1NmJjNTY3
NGYxOTI1MGZiNGRiMWU1MDQ4NDkyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAg
QEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIFN1Y2NlZWRlZDog
ICAgIHN0YXJ0ID0gUk9PVC5nZXRNZXRhZGF0YSgpOworUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0u
Li4KK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBj
cmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZTIgPSBST09ULmdldEZpbGUobmFt
ZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxX2ZpbGUxID0gZGlyMS5n
ZXRGaWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMV9kaXIy
ID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorKiBHZXQgbWV0YWRhdGEg
Zm9yIGRpcmVjdG9yaWVzCitQQVNTIFN1Y2NlZWRlZDogICAgIG1ldGFkYXRhID0gZGlyMS5nZXRN
ZXRhZGF0YSgpCitQQVNTIFN1Y2NlZWRlZDogICAgIG1ldGFkYXRhID0gZGlyMV9kaXIyLmdldE1l
dGFkYXRhKCkKKyogR2V0IG1ldGFkYXRhIGZvciBmaWxlcworUEFTUyBTdWNjZWVkZWQ6ICAgICBt
ZXRhZGF0YSA9IGZpbGUyLmdldE1ldGFkYXRhKCkKK1BBU1MgU3VjY2VlZGVkOiAgICAgbWV0YWRh
dGEgPSBkaXIxX2ZpbGUxLmdldE1ldGFkYXRhKCkKK1BBU1MgU3VjY2VlZGVkOiAgICAgZW5kID0g
ZGlyMV9maWxlMS5nZXRNZXRhZGF0YSgpCitQQVNTICJbb2JqZWN0IE1ldGFkYXRhXSIgaXMgPj0g
IltvYmplY3QgTWV0YWRhdGFdIgorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU0
MmJjNTczM2E5NzRjNDE1NzJkMTdkMjAwNjY2YTcxNzQyNzY0OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEuaHRtbApAQCAtMCww
ICsxLDQwIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRl
c3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1zaGVs
bCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIHN0YXJ0ID0gUk9PVC5nZXRN
ZXRhZGF0YSgpOworICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAn
YicKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIGRpcjEgPSBST09ULmdl
dERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBST09ULmdldEZpbGUo
bmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZmlsZTEgPSBkaXIxLmdldEZpbGUobmFtZTEs
IGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBj
cmVhdGVfZmxhZykKKworICAgIHByaW50KCcqIEdldCBtZXRhZGF0YSBmb3IgZGlyZWN0b3JpZXMn
KQorICAgIG1ldGFkYXRhID0gZGlyMS5nZXRNZXRhZGF0YSgpCisgICAgbWV0YWRhdGEgPSBkaXIx
X2RpcjIuZ2V0TWV0YWRhdGEoKQorCisgICAgcHJpbnQoJyogR2V0IG1ldGFkYXRhIGZvciBmaWxl
cycpCisgICAgbWV0YWRhdGEgPSBmaWxlMi5nZXRNZXRhZGF0YSgpCisgICAgbWV0YWRhdGEgPSBk
aXIxX2ZpbGUxLmdldE1ldGFkYXRhKCkKKworICAgICMgTWFrZSBzdXJlIHdlIGdldCB0aGUgbmV3
ZXIgdGltZXN0YW1wLgorICAgIGVuZCA9IGRpcjFfZmlsZTEuZ2V0TWV0YWRhdGEoKQorICAgIEFT
U0VSVF9HRShlbmQsIHN0YXJ0KQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
ZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NzUzNDY3Y2JhMjE0MTk5NzI1YjI3ZTUxZmU3YzI3Y2Ji
YjIzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3At
Z2V0LXBhcmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorR290IEZpbGVTeXN0ZW06
IFRlc3RTaGVsbEZpbGVTeXN0ZW0KKyogR2V0dGluZyBhIHBhcmVudCBvZiBlbnRyaWVzLgorUmVz
ZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMSA9IFJPT1Qu
Z2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGly
MiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVk
OiAgICAgZmlsZTMgPSBkaXIyLmdldEZpbGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBwYXJlbnQgPSBmaWxlMy5nZXRQYXJlbnQoKQorUEFTUyB0aGlzLnZhcnNbImRp
cjIiXVsiZnVsbFBhdGgiXSBpcyB0aGlzLnZhcnNbInBhcmVudCJdWyJmdWxsUGF0aCJdCitQQVNT
IFN1Y2NlZWRlZDogICAgIHBhcmVudCA9IGRpcjIuZ2V0UGFyZW50KCkKK1BBU1MgdGhpcy52YXJz
WyJkaXIxIl1bImZ1bGxQYXRoIl0gaXMgdGhpcy52YXJzWyJwYXJlbnQiXVsiZnVsbFBhdGgiXQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBkaXIxLmdldFBhcmVudCgpCitQQVNTIHRoaXMu
dmFyc1siUk9PVCJdWyJmdWxsUGF0aCJdIGlzIHRoaXMudmFyc1sicGFyZW50Il1bImZ1bGxQYXRo
Il0KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXRQYXJlbnQoKQorUEFTUyB0
aGlzLnZhcnNbIlJPT1QiXVsiZnVsbFBhdGgiXSBpcyB0aGlzLnZhcnNbInBhcmVudCJdWyJmdWxs
UGF0aCJdCitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
eXN0ZW0vb3AtZ2V0LXBhcmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzOWE2NGE4MTFhN2I0Y2IwZjUy
M2IxNTRjYTA2Zjc2MjdkNmQ4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1sPgor
PGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0
eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0t
dGVzdC1zY3JpcHQiPgorCisgICAgbmFtZTEgPSAnYScKKyAgICBuYW1lMiA9ICdiJworICAgIG5h
bWUzID0gJ2MnCisKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIHByaW50
KCcqIEdldHRpbmcgYSBwYXJlbnQgb2YgZW50cmllcy4nKQorCisgICAgcmVzZXQoKQorICAgIGRp
cjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyMiA9IGRp
cjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMyA9IGRpcjIuZ2V0
RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisKKyAgICBwYXJlbnQgPSBmaWxlMy5nZXRQYXJlbnQo
KQorICAgIEFTU0VSVF9FUShwYXJlbnQuZnVsbFBhdGgsIGRpcjIuZnVsbFBhdGgpCisKKyAgICBw
YXJlbnQgPSBkaXIyLmdldFBhcmVudCgpCisgICAgQVNTRVJUX0VRKHBhcmVudC5mdWxsUGF0aCwg
ZGlyMS5mdWxsUGF0aCkKKworICAgIHBhcmVudCA9IGRpcjEuZ2V0UGFyZW50KCkKKyAgICBBU1NF
UlRfRVEocGFyZW50LmZ1bGxQYXRoLCBST09ULmZ1bGxQYXRoKQorCisgICAgcGFyZW50ID0gUk9P
VC5nZXRQYXJlbnQoKQorICAgIEFTU0VSVF9FUShwYXJlbnQuZnVsbFBhdGgsIFJPT1QuZnVsbFBh
dGgpCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRl
bXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3
NDk2YjQ3NWZiNzM0MGI5ODk5MThhMjM5ODAzZDAxMjk2YTk0OTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4MiBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5n
IHRoZSBmaWxlc3lzdGVtLi4uCisqIE1vdmluZyBhbiBlbnRyeSB0byB0aGUgc2FtZSBkaXJlY3Rv
cnkKK1Jlc2V0aW5nIHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIHBhcmVu
dCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUyLCBjcmVhdGVf
ZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBkaXIxLm1vdmVUbyhwYXJlbnQsIG5h
bWUzKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorUEFTUyBTdWNjZWVkZWQ6
ICAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBtb3Zl
ZCA9IGZpbGUyLm1vdmVUbyhwYXJlbnQsIG5hbWU0KQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlIGlzICI4IgorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUz
KQorKiBNb3ZpbmcgZW50cmllcyB0byBhIGRpZmZlcmVudCBkaXJlY3RvcnkKK1Jlc2V0aW5nIHRo
ZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEgPSBST09ULmdldERpcmVj
dG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBST09U
LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNo
aWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgY2hpbGQ0ID0gZGlyMS5nZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKK1BBU1Mg
U3VjY2VlZGVkOiAgICAgbW92ZWQgPSBjaGlsZDMubW92ZVRvKGRpcjIsIG5hbWUxKQorUEFTUyB0
aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdl
dERpcmVjdG9yeShuYW1lMSkKK1BBU1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBjaGlsZDQubW92
ZVRvKGRpcjIsIG5hbWUyKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorUEFT
UyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdldEZpbGUobmFtZTIpCisqIE1vdmluZyBlbnRyaWVzIHRv
IHdpdGggZW1wdHkgbmFtZXMKK1Jlc2V0aW5nIHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQ
QVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBST09ULmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNoaWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5h
bWUzLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgY2hpbGQ0ID0gZGlyMS5nZXRG
aWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBjaGls
ZDMubW92ZVRvKGRpcjIsIG51bGwpCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgi
CitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorUEFT
UyBTdWNjZWVkZWQ6ICAgICBtb3ZlZCA9IGNoaWxkNC5tb3ZlVG8oZGlyMiwgbnVsbCkKK1BBU1Mg
dGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMi5n
ZXRGaWxlKGNoaWxkNC5uYW1lKQorKiBNb3ZpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJlY3Rv
cnkgd2l0aCB0aGUgc2FtZSBuYW1lCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBT
dWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5h
bWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZTIgPSBwYXJlbnQuZ2V0
RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMg
IjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBl
Y3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEz
IgorKiBUcnlpbmcgdG8gbW92ZSBub24tZXhpc3RlbnQgZW50cmllcworUEFTUyBTdWNjZWVkZWQ6
ICAgICBub25leGlzdF9kaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxh
ZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbm9uZXhpc3RfZmlsZSA9IHBhcmVudC5nZXRGaWxlKG5h
bWU0LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbm9uZXhpc3RfZGlyLnJlbW92
ZSgpCitQQVNTIFN1Y2NlZWRlZDogICAgIG5vbmV4aXN0X2ZpbGUucmVtb3ZlKCkKK1BBU1MgdGhp
cy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBp
cyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBl
Y3RlZEVycm9yQ29kZSBpcyAiOCIKKyogTW92aW5nIGVudHJpZXMgdG8gYSBub24tZXhpc3RlbnQg
ZGlyZWN0b3J5CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpcjEuZnVsbFBhdGgpCitQQVNTIFN1Y2NlZWRl
ZDogICAgIFJPT1QuZ2V0RmlsZShmaWxlMi5mdWxsUGF0aCkKK1BBU1MgdGhpcy5leHBlY3RlZEVy
cm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKKyogTW92
aW5nIGVudHJpZXMgdG8gaXRzIGNoaWxkCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMg
IjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKKyogTW92aW5nIGEgZGly
ZWN0b3J5IHdpdGggY2hpbGRyZW4KK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyNCA9IHBhcmVudC5n
ZXREaXJlY3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjaGls
ZDEgPSBkaXI0LmdldEZpbGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAg
ICBjaGlsZDIgPSBkaXI0LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1
Y2NlZWRlZDogICAgIGNoaWxkMyA9IGNoaWxkMi5nZXRGaWxlKG5hbWUzLCBjcmVhdGVfZmxhZykK
K1BBU1MgU3VjY2VlZGVkOiAgICAgY2hpbGQ0ID0gY2hpbGQyLmdldERpcmVjdG9yeShuYW1lNCwg
Y3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZW50cmllczEiXVsibGVuZ3RoIl0gaXMgMgor
UEFTUyB0aGlzLnZhcnNbImVudHJpZXMyIl1bImxlbmd0aCJdIGlzIDIKK1BBU1MgU3VjY2VlZGVk
OiAgICAgZGlyNF9uZXcgPSBkaXI0Lm1vdmVUbyhST09ULCAnZGlyNF9uZXcnKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBjaGlsZDJfbmV3ID0gZGlyNF9uZXcuZ2V0RGlyZWN0b3J5KG5hbWUyKQorUEFT
UyB0aGlzLnZhcnNbImVudHJpZXMxX25ldyJdWyJsZW5ndGgiXSBpcyAyCitQQVNTIHRoaXMudmFy
c1siZW50cmllczJfbmV3Il1bImxlbmd0aCJdIGlzIDIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9y
Q29kZSBpcyAiOCIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9vcC1tb3ZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY1NWI0NTczMzQxNmVkYTlhYjc2MGMyZDEx
OWM2NjM0OTc3NDUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9vcC1tb3ZlLmh0bWwKQEAgLTAsMCArMSwxNDIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNh
dGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQi
PgorICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAgICBu
YW1lMyA9ICdjJworICAgIG5hbWU0ID0gJ2QnCisgICAgY3JlYXRlX2ZsYWcgPSB7Y3JlYXRlOnRy
dWV9CisKKyAgICBwcmludCgnKiBNb3ZpbmcgYW4gZW50cnkgdG8gdGhlIHNhbWUgZGlyZWN0b3J5
JykKKworICAgICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJl
Y3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0
b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUy
LCBjcmVhdGVfZmxhZykKKworICAgICMgRGlyZWN0b3J5CisgICAgbW92ZWQgPSBkaXIxLm1vdmVU
byhwYXJlbnQsIG5hbWUzKQorICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpIHJhaXNlcyA4
CisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMykKKworICAgICMgRmlsZQorICAgIG1vdmVk
ID0gZmlsZTIubW92ZVRvKHBhcmVudCwgbmFtZTQpCisgICAgcGFyZW50LmdldERpcmVjdG9yeShu
YW1lMSkgcmFpc2VzIDgKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAgcHJp
bnQoJyogTW92aW5nIGVudHJpZXMgdG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5JykKKworICAgICMg
UmVzZXQKKyAgICByZXNldCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBj
cmVhdGVfZmxhZykKKyAgICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9m
bGFnKQorICAgIGNoaWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykK
KyAgICBjaGlsZDQgPSBkaXIxLmdldEZpbGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBE
aXJlY3RvcnkKKyAgICBtb3ZlZCA9IGNoaWxkMy5tb3ZlVG8oZGlyMiwgbmFtZTEpCisgICAgZGly
MS5nZXREaXJlY3RvcnkobmFtZTMpIHJhaXNlcyA4CisgICAgZGlyMi5nZXREaXJlY3RvcnkobmFt
ZTEpCisKKyAgICAjIEZpbGUKKyAgICBtb3ZlZCA9IGNoaWxkNC5tb3ZlVG8oZGlyMiwgbmFtZTIp
CisgICAgZGlyMS5nZXRGaWxlKG5hbWU0KSByYWlzZXMgOAorICAgIGRpcjIuZ2V0RmlsZShuYW1l
MikKKworICAgIHByaW50KCcqIE1vdmluZyBlbnRyaWVzIHRvIHdpdGggZW1wdHkgbmFtZXMnKQor
CisgICAgIyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJlY3Rvcnko
bmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIgPSBST09ULmdldERpcmVjdG9yeShuYW1lMiwg
Y3JlYXRlX2ZsYWcpCisgICAgY2hpbGQzID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0
ZV9mbGFnKQorICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcpCisK
KyAgICAjIERpcmVjdG9yeQorICAgIG1vdmVkID0gY2hpbGQzLm1vdmVUbyhkaXIyLCBudWxsKQor
ICAgIGRpcjEuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKSByYWlzZXMgOAorICAgIGRpcjIuZ2V0
RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorCisgICAgIyBGaWxlCisgICAgbW92ZWQgPSBjaGlsZDQu
bW92ZVRvKGRpcjIsIG51bGwpCisgICAgZGlyMS5nZXRGaWxlKGNoaWxkNC5uYW1lKSByYWlzZXMg
OAorICAgIGRpcjIuZ2V0RmlsZShjaGlsZDQubmFtZSkKKworICAgIHByaW50KCcqIE1vdmluZyBl
bnRyaWVzIHRvIHRoZSBzYW1lIGRpcmVjdG9yeSB3aXRoIHRoZSBzYW1lIG5hbWUnKQorCisgICAg
IyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFy
ZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEs
IGNyZWF0ZV9mbGFnKQorICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9m
bGFnKQorCisgICAgZGlyMS5tb3ZlVG8ocGFyZW50LCBudWxsKSByYWlzZXMgMTMKKyAgICBkaXIx
Lm1vdmVUbyhwYXJlbnQsIG5hbWUxKSByYWlzZXMgMTMKKyAgICBmaWxlMi5tb3ZlVG8ocGFyZW50
LCBudWxsKSByYWlzZXMgMTMKKyAgICBmaWxlMi5tb3ZlVG8ocGFyZW50LCBuYW1lMikgcmFpc2Vz
IDEzCisKKyAgICBwcmludCgnKiBUcnlpbmcgdG8gbW92ZSBub24tZXhpc3RlbnQgZW50cmllcycp
CisKKyAgICBub25leGlzdF9kaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVf
ZmxhZykKKyAgICBub25leGlzdF9maWxlID0gcGFyZW50LmdldEZpbGUobmFtZTQsIGNyZWF0ZV9m
bGFnKQorICAgIG5vbmV4aXN0X2Rpci5yZW1vdmUoKQorICAgIG5vbmV4aXN0X2ZpbGUucmVtb3Zl
KCkKKworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KG5vbmV4aXN0X2Rpci5mdWxsUGF0aCkgcmFpc2Vz
IDgKKyAgICBST09ULmdldEZpbGUobm9uZXhpc3RfZmlsZS5mdWxsUGF0aCkgcmFpc2VzIDgKKwor
ICAgIG5vbmV4aXN0X2Rpci5tb3ZlVG8oZGlyMSwgbmFtZTIpIHJhaXNlcyA4CisgICAgbm9uZXhp
c3RfZmlsZS5tb3ZlVG8oZGlyMiwgbmFtZTEpIHJhaXNlcyA4CisKKyAgICBwcmludCgnKiBNb3Zp
bmcgZW50cmllcyB0byBhIG5vbi1leGlzdGVudCBkaXJlY3RvcnknKQorCisgICAgUk9PVC5nZXRE
aXJlY3Rvcnkobm9uZXhpc3RfZGlyLmZ1bGxQYXRoKSByYWlzZXMgOAorICAgIFJPT1QuZ2V0RGly
ZWN0b3J5KGRpcjEuZnVsbFBhdGgpCisgICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRoKQor
CisgICAgZGlyMS5tb3ZlVG8obm9uZXhpc3RfZGlyLCBuYW1lMSkgcmFpc2VzIDgKKyAgICBmaWxl
Mi5tb3ZlVG8obm9uZXhpc3RfZGlyLCBuYW1lMykgcmFpc2VzIDgKKworICAgIHByaW50KCcqIE1v
dmluZyBlbnRyaWVzIHRvIGl0cyBjaGlsZCcpCisKKyAgICBST09ULm1vdmVUbyhkaXIxKSByYWlz
ZXMgMTMKKyAgICBwYXJlbnQubW92ZVRvKGRpcjEpIHJhaXNlcyAxMworCisgICAgcHJpbnQoJyog
TW92aW5nIGEgZGlyZWN0b3J5IHdpdGggY2hpbGRyZW4nKQorCisgICAgZGlyNCA9IHBhcmVudC5n
ZXREaXJlY3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMSA9IGRpcjQuZ2V0Rmls
ZShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQyID0gZGlyNC5nZXREaXJlY3RvcnkobmFt
ZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMyA9IGNoaWxkMi5nZXRGaWxlKG5hbWUzLCBjcmVh
dGVfZmxhZykKKyAgICBjaGlsZDQgPSBjaGlsZDIuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVf
ZmxhZykKKworICAgIGVudHJpZXMxID0gZGlyNC5yZWFkRGlyZWN0b3J5KCkKKyAgICBlbnRyaWVz
MiA9IGNoaWxkMi5yZWFkRGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczEubGVu
Z3RoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMi5sZW5ndGgpCisKKyAgICBkaXI0X25ldyA9
IGRpcjQubW92ZVRvKFJPT1QsICdkaXI0X25ldycpCisgICAgY2hpbGQyX25ldyA9IGRpcjRfbmV3
LmdldERpcmVjdG9yeShuYW1lMikKKworICAgIGVudHJpZXMxX25ldyA9IGRpcjRfbmV3LnJlYWRE
aXJlY3RvcnkoKQorICAgIGVudHJpZXMyX25ldyA9IGNoaWxkMl9uZXcucmVhZERpcmVjdG9yeSgp
CisgICAgQVNTRVJUX0VRKDIsIGVudHJpZXMxX25ldy5sZW5ndGgpCisgICAgQVNTRVJUX0VRKDIs
IGVudHJpZXMyX25ldy5sZW5ndGgpCisKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KGRpcjQuZnVs
bFBhdGgpIHJhaXNlcyA4CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10
ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVhZC1kaXJlY3RvcnktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzYyZjBlY2EyOWRiZDkxZmM0M2ExZWFhMDEzNzJl
ZWM5NWJiOWUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLXJlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitHb3QgRmls
ZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4K
K1BBU1MgdGhpcy52YXJzWyJlbnRyaWVzIl1bImxlbmd0aCJdIGlzIDAKK1BBU1MgU3VjY2VlZGVk
OiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBhID0gcGFyZW50LmdldERpcmVjdG9yeSgnYScsIGNyZWF0ZV9m
bGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBiID0gcGFyZW50LmdldERpcmVjdG9yeSgnYicsIGNy
ZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjID0gcGFyZW50LmdldERpcmVjdG9yeSgn
YycsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkID0gcGFyZW50LmdldEZpbGUo
J2QnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZSA9IHBhcmVudC5nZXRGaWxl
KCdlJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGYgPSBwYXJlbnQuZ2V0RGly
ZWN0b3J5KCdmJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGcgPSBwYXJlbnQu
Z2V0RmlsZSgnZycsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjLmdldEZpbGUo
J2gnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgYy5nZXREaXJlY3RvcnkoJ2kn
LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZi5nZXRGaWxlKCdqJywgY3JlYXRl
X2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZW50cmllcyJdWyJsZW5ndGgiXSBpcyAxCitQQVNTIHRo
aXMudmFyc1siZW50cmllcyJdWyJsZW5ndGgiXSBpcyA3CitbRU5UUlkge3BhdGg6L3BhcmVudC9h
IG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9iIG5hbWU6YiB0
eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9jIG5hbWU6YyB0eXBlOkRJUkVD
VE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9kIG5hbWU6ZCB0eXBlOkZJTEV9LAorIEVOVFJZ
IHtwYXRoOi9wYXJlbnQvZSBuYW1lOmUgdHlwZTpGSUxFfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50
L2YgbmFtZTpmIHR5cGU6RElSRUNUT1JZfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50L2cgbmFtZTpn
IHR5cGU6RklMRX1dCitQQVNTIFN1Y2NlZWRlZDogICAgIGcucmVtb3ZlKCkKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgYi5yZW1vdmUoKQorUEFTUyB0aGlzLnZhcnNbImVudHJpZXMiXVsibGVuZ3RoIl0g
aXMgNQorW0VOVFJZIHtwYXRoOi9wYXJlbnQvYSBuYW1lOmEgdHlwZTpESVJFQ1RPUll9LAorIEVO
VFJZIHtwYXRoOi9wYXJlbnQvYyBuYW1lOmMgdHlwZTpESVJFQ1RPUll9LAorIEVOVFJZIHtwYXRo
Oi9wYXJlbnQvZCBuYW1lOmQgdHlwZTpGSUxFfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50L2UgbmFt
ZTplIHR5cGU6RklMRX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9mIG5hbWU6ZiB0eXBlOkRJUkVD
VE9SWX1dCitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRpcmVjdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNmZDFlMTFmZWJi
YzFkNzM4NjU4ZDYzZmIyNWYyNTlkY2Q4YjE0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRpcmVjdG9yeS5odG1sCkBAIC0wLDAgKzEsNTQg
QEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVz
dC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVs
bC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0i
ZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorCisgICAgbmFtZTEgPSAnYScKKyAgICBuYW1lMiA9
ICdiJworICAgIG5hbWUzID0gJ2MnCisgICAgbmFtZTQgPSAnZCcKKworICAgIGNyZWF0ZV9mbGFn
ID0ge2NyZWF0ZTp0cnVlfQorCisgICAgcmVzZXQoKQorCisgICAgZW50cmllcyA9IFJPT1QucmVh
ZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDAsIGVudHJpZXMubGVuZ3RoKQorCisgICAgcGFy
ZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGEgPSBw
YXJlbnQuZ2V0RGlyZWN0b3J5KCdhJywgY3JlYXRlX2ZsYWcpCisgICAgYiA9IHBhcmVudC5nZXRE
aXJlY3RvcnkoJ2InLCBjcmVhdGVfZmxhZykKKyAgICBjID0gcGFyZW50LmdldERpcmVjdG9yeSgn
YycsIGNyZWF0ZV9mbGFnKQorICAgIGQgPSBwYXJlbnQuZ2V0RmlsZSgnZCcsIGNyZWF0ZV9mbGFn
KQorICAgIGUgPSBwYXJlbnQuZ2V0RmlsZSgnZScsIGNyZWF0ZV9mbGFnKQorICAgIGYgPSBwYXJl
bnQuZ2V0RGlyZWN0b3J5KCdmJywgY3JlYXRlX2ZsYWcpCisgICAgZyA9IHBhcmVudC5nZXRGaWxl
KCdnJywgY3JlYXRlX2ZsYWcpCisKKyAgICBjLmdldEZpbGUoJ2gnLCBjcmVhdGVfZmxhZykKKyAg
ICBjLmdldERpcmVjdG9yeSgnaScsIGNyZWF0ZV9mbGFnKQorICAgIGYuZ2V0RmlsZSgnaicsIGNy
ZWF0ZV9mbGFnKQorCisgICAgZW50cmllcyA9IFJPT1QucmVhZERpcmVjdG9yeSgpCisgICAgQVNT
RVJUX0VRKDEsIGVudHJpZXMubGVuZ3RoKQorCisgICAgZW50cmllcyA9IHBhcmVudC5yZWFkRGly
ZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoNywgZW50cmllcy5sZW5ndGgpCisgICAgcHJpbnQoZW50
cmllcykKKworICAgIGcucmVtb3ZlKCkKKyAgICBiLnJlbW92ZSgpCisgICAgZW50cmllcyA9IHBh
cmVudC5yZWFkRGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoNSwgZW50cmllcy5sZW5ndGgpCisg
ICAgcHJpbnQoZW50cmllcykKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Zz
LXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmJmYjJkNjYwNjU0NzY0OGRjZjk3NzYxNDFkNzdiNWIxYWVhNmU2NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxl
U3lzdGVtCisqIFJlbW92aW5nIGZpbGVzIGFuZCBkaXJlY3RvcmllcworUmVzZXRpbmcgdGhlIGZp
bGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3Rv
cnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gcGFy
ZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAg
IGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVk
ZWQ6ICAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBw
YXJlbnQuZ2V0RmlsZShuYW1lMikKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMS5yZW1vdmUoKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlMi5yZW1vdmUoKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlIGlzICI4IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorKiBSZW1v
dmluZyBub24tZXhpc3RlbnQgZmlsZSBvciBkaXJlY3RvcnkKK1BBU1MgdGhpcy5leHBlY3RlZEVy
cm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKKyogUmVt
b3ZpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbgorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0u
Li4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVu
dCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERp
cmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUyID0g
cGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlIGlzICIxMyIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL29wLXJlbW92ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMDcyYjRjMzIyNWIxMzI0MTdh
MDAyMzI5YWM1NWViYWEwMjQyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9
ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJmaWxlLXN5c3RlbS10ZXN0
LXNjcmlwdCI+CisKKyAgICBuYW1lMSA9ICdhJworICAgIG5hbWUyID0gJ2InCisKKyAgICBjcmVh
dGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIHByaW50KCcqIFJlbW92aW5nIGZpbGVzIGFu
ZCBkaXJlY3RvcmllcycpCisKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJl
Y3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0
b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUy
LCBjcmVhdGVfZmxhZykKKworICAgICMgTWFrZSBzdXJlIHRoZSBlbnRyaWVzIGV4aXN0CisgICAg
cGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkKKyAgICBwYXJlbnQuZ2V0RmlsZShuYW1lMikKKwor
ICAgIGRpcjEucmVtb3ZlKCkKKyAgICBmaWxlMi5yZW1vdmUoKQorCisgICAgIyBOb3cgdGhleSBz
aG91bGQgYmUgZ29uZSBhd2F5CisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkgcmFpc2Vz
IDgKKyAgICBwYXJlbnQuZ2V0RmlsZShuYW1lMikgcmFpc2VzIDgKKworICAgIHByaW50KCcqIFJl
bW92aW5nIG5vbi1leGlzdGVudCBmaWxlIG9yIGRpcmVjdG9yeScpCisKKyAgICBkaXIxLnJlbW92
ZSgpIHJhaXNlcyA4CisgICAgZmlsZTIucmVtb3ZlKCkgcmFpc2VzIDgKKworICAgIHByaW50KCcq
IFJlbW92aW5nIGEgZGlyZWN0b3J5IHdpdGggY2hpbGRyZW4nKQorCisgICAgcmVzZXQoKQorICAg
IHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBk
aXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIg
PSBwYXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBwYXJlbnQucmVtb3Zl
KCkgcmFpc2VzIDEzCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0
LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRpb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRp
b25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGFjYWU3MTE1NmEzODZkMDAzNDk1ODAyYTAz
NGNjZTFkZWQyOTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL3BhcmFsbGVsLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rl
c3QgbWFraW5nIG11bHRpcGxlIEZpbGVTeXN0ZW0gb3BlcmF0aW9ucyBpbiBwYXJhbGxlbC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0dvdCBGaWxlU3lzdGVtOlRlc3RTaGVsbEZp
bGVTeXN0ZW0KK3JlcXVlc3RlZCBGaWxlU3lzdGVtLgorU3RhcnRpbmcgcGFyYWxsZWwgdGVzdCBz
dGFnZSAxLgorU3RhcnRpbmcgcGFyYWxsZWwgdGVzdCBzdGFnZSAyLgorVmVyaWZ5aW5nIHRoZSBG
aWxlU3lzdGVtIHN0YXR1cy4KK1BBU1MgIi9hLC9iMiwvYywvZCwvZSIgaXMgIi9hLC9iMiwvYywv
ZCwvZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcGFyYWxsZWwtb3BlcmF0
aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlv
bnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hMjQ1NjkyOGYyM2RiY2YyM2I1NDAzMTIzYzI0NTA3ZGIyZTcz
OWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFs
bGVsLW9wZXJhdGlvbnMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BhcmFsbGVsLW9wZXJhdGlvbnMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmRiNTM5M2FmYzAxYTE5Yzc1MGM1YzUyNGE5MTNk
NjZhNGJkZTkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBmaWxl
c3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdhYScsIHtj
cmVhdGU6dHJ1ZX0pOworU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK0dvdCBGaWxlU3lzdGVt
OiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHRoaXMudmFyc1siZW50cmllcyJdWyJsZW5ndGgi
XSBpcyAxCitQQVNTIHRoaXMudmFyc1siZW50cnkiXVsiZnVsbFBhdGgiXSBpcyAnL2FhJworU2Ny
aXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEz
ODEwZjlhYTQ2YmVlZmI3Mjc1MjMxMDc3MGQxZThiNDM5YjlhMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3RlbnQu
aHRtbApAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1zeXN0
ZW0tdGVzdC1zaGVsbCIgaWQ9InNjcmlwdDEiPgorICAgIHJlc2V0KCk7CisgICAgUk9PVC5nZXRE
aXJlY3RvcnkoJ2FhJywge2NyZWF0ZTp0cnVlfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
YXBwbGljYXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9InNjcmlwdDIiPgorICAgICMg
U2VlIGlmIHdlIGdldCB0aGUgc2FtZSBmaWxlIHN5c3RlbS4KKyAgICBlbnRyaWVzID0gUk9PVC5y
ZWFkRGlyZWN0b3J5KCk7CisgICAgZW50cnkgPSBlbnRyaWVzWzBdCisgICAgQVNTRVJUX0VRKDEs
IGVudHJpZXMubGVuZ3RoKTsKKyAgICBBU1NFUlRfRVEoJy9hYScsIGVudHJ5LmZ1bGxQYXRoKTsK
Kzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blNlY29uZFRlc3QoKSB7CisgICAgdmFy
IHNoZWxsID0gbmV3IEZpbGVTeXN0ZW1UZXN0U2hlbGwoUEVSU0lTVEVOVCwgMTAwLCBkZWJ1Zywg
ZnVuY3Rpb24oKXsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CisgICAgc2hlbGwu
cnVuU2NyaXB0cygnc2NyaXB0MicpOworfQorCitpZiAod2luZG93LnJlcXVlc3RGaWxlU3lzdGVt
KSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHZhciBzaGVsbCA9IG5l
dyBGaWxlU3lzdGVtVGVzdFNoZWxsKFBFUlNJU1RFTlQsIDEwMCwgZGVidWcsIHJ1blNlY29uZFRl
c3QpOworICAgIHNoZWxsLnJ1blNjcmlwdHMoJ3NjcmlwdDEnKTsKK30gZWxzZQorICAgIGRlYnVn
KCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKword2luZG93
LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNl
LXRlbXBvcmFyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVx
dWVzdC1mcy10d2ljZS10ZW1wb3JhcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZGI1Mzkz
YWZjMDFhMTljNzUwYzVjNTI0YTkxM2Q2NmE0YmRlOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS10ZW1wb3JhcnktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lz
dGVtCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBST09U
LmdldERpcmVjdG9yeSgnYWEnLCB7Y3JlYXRlOnRydWV9KTsKK1NjcmlwdCBleGVjdXRpb24gZmlu
aXNoZWQuCitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorUEFTUyB0aGlzLnZh
cnNbImVudHJpZXMiXVsibGVuZ3RoIl0gaXMgMQorUEFTUyB0aGlzLnZhcnNbImVudHJ5Il1bImZ1
bGxQYXRoIl0gaXMgJy9hYScKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS10ZW1wb3Jhcnku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yY2EyYTYwZDZlM2IzZTUwN2I3MmI2MzQwMzQwMmExYWFjM2YzMTYx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3Qt
ZnMtdHdpY2UtdGVtcG9yYXJ5Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJzY3JpcHQxIj4KKyAgICByZXNl
dCgpOworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdhYScsIHtjcmVhdGU6dHJ1ZX0pOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlk
PSJzY3JpcHQyIj4KKyAgICAjIFNlZSBpZiB3ZSBnZXQgdGhlIHNhbWUgZmlsZSBzeXN0ZW0uCisg
ICAgZW50cmllcyA9IFJPT1QucmVhZERpcmVjdG9yeSgpOworICAgIGVudHJ5ID0gZW50cmllc1sw
XQorICAgIEFTU0VSVF9FUSgxLCBlbnRyaWVzLmxlbmd0aCk7CisgICAgQVNTRVJUX0VRKCcvYWEn
LCBlbnRyeS5mdWxsUGF0aCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5TZWNv
bmRUZXN0KCkgeworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFRFTVBP
UkFSWSwgMTAwLCBkZWJ1ZywgZnVuY3Rpb24oKXsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgfSk7CisgICAgc2hlbGwucnVuU2NyaXB0cygnc2NyaXB0MicpOworfQorCitpZiAod2luZG93
LnJlcXVlc3RGaWxlU3lzdGVtKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
ICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFRFTVBPUkFSWSwgMTAwLCBk
ZWJ1ZywgcnVuU2Vjb25kVGVzdCk7CisgICAgc2hlbGwucnVuU2NyaXB0cygnc2NyaXB0MScpOwor
fSBlbHNlCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBGaWxlU3lzdGVtIEFQSSBzdXBw
b3J0LiIpOworCit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTgyOTdjNjM3NDFmZjVkOTExZWMyYzZiOWY5MmQ1ZmZiYzY3YmNiMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVs
bC10ZW1wb3JhcnkuanMKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gZW5kVGVzdCgpIHsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgewor
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB2YXIgc2hlbGwgPSBuZXcgRmls
ZVN5c3RlbVRlc3RTaGVsbChURU1QT1JBUlksIDEwMCwgZGVidWcsIGVuZFRlc3QpOworICAgIHNo
ZWxsLnJ1blNjcmlwdHMoJ2ZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Jyk7Cit9IGVsc2UKKyAgICBk
ZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVTeXN0ZW0gQVBJIHN1cHBvcnQuIik7CisKK3dp
bmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5
MDA3MGRjODQ1OTIzOTY0NzhlNzg1NjIxNWMwODVlNmNmNDMxODIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMK
QEAgLTAsMCArMSwzNzggQEAKKy8qCisgICBBdmFpbGFibGUgdmFyaWFibGVzIGFuZCBmdW5jdGlv
bnM6CisgICAgIDxlbnRyeT4uPGVudHJ5TWV0aG9kPiguLi4pIFtyYWlzZSA8Y29kZT5dCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uIENhbGxzIHRoZSBlbnRyeSBtZXRob2Qgc3lu
Y2hyb25vdXNseS4gSXQgZG9lcyBub3QgZXJyb3Igb3V0IGlmICJyYWlzZSA8Y29kZT4iIGlzIGdp
dmVuIGFuZCBpdCBoYXMgdGhyb3duIHRoZSBlcnJvciBjb2RlIDxjb2RlPi4KKyAgICAgcmVzZXQo
KSAgICAgICAgICAgICAgICAgICAuLi4gUmVtb3ZlcyBhbGwgZW50cmllcyBpbiB0aGUgZmlsZSBz
eXN0ZW0uCisgICAgIHByaW50KDxhcmc+KSAgICAgICAgICAgICAgLi4uIFByaW50cyBvdXQgdGhl
IGdpdmVuIGFyZy4KKyAgICAgQVNTRVJUX0VRKDxhcmcxPiwgPGFyZzI+KSAuLi4gQXNzZXJ0cyB0
aGF0IDxhcmcxPiBhbmQgPGFyZzI+IGFyZSBlcXVhbC4KKyAgICAgQVNTRVJUX0dFKDxhcmcxPiwg
PGFyZzI+KSAuLi4gQXNzZXJ0cyB0aGF0IDxhcmcxPiBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWxz
IHRvIDxhcmcyPi4KKyAgICAgUk9PVCAgICAgICAgICAgICAgICAgICAgICAuLi4gVGhlIGZpbGUg
c3lzdGVtJ3Mgcm9vdCBlbnRyeS4KKworICAgRXhhbXBsZToKKyAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisgICAgPGRpdiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorICAgIHJlc2V0KCkKKwor
ICAgICMgY29tbWVudAorICAgIGVudHJ5MSA9IFJPT1QuZ2V0RmlsZSgnZm9vL2EudHh0JykKKyAg
ICBlbnRyeTIgPSBST09ULmdldERpcmVjdG9yeSgnZm9vL2JhcicsIHtDUkVBVEU6dHJ1ZX0pCisg
ICAgZW50cnkzID0gUk9PVC5nZXRGaWxlKCdmb28vbm9uZXhpc3RlbnQnKSByYWlzZXMgOAorICAg
IGVudHJpZXMgPSBST09ULnJlYWREaXJlY3RvcnkoKQorICAgIHByaW50KGVudHJpZXMpCisgICAg
ZW50cnkxLmNvcHlUbyhlbnRyeTIsICdiLnR4dCcpCisgICAgbWV0YWRhdGEgPSBlbnRyeTEuZ2V0
TWV0YWRhdGEoKQorICAgIHByaW50KG1ldGFkYXRhKQorICAgIEFTU0VSVF9HVChtZXRhZGF0YSwg
MCkKKyAgICA8L2Rpdj4KKworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxs
KFRFTVBPUkFSWSwgMTAwKTsKKyAgICBzaGVsbC5ydW5TY3JpcHRzKCJmaWxlLXN5c3RlbS10ZXN0
LXNjcmlwdCIpOworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCit2YXIgRmlsZVN5c3RlbVRl
c3RTaGVsbCA9IGZ1bmN0aW9uKHR5cGUsIHNpemUsIG9wdF9sb2dGdW5jLCBvcHRfZW5kVGVzdENh
bGxiYWNrKQoreworICAgIHRoaXMuZmlsZVN5c3RlbSA9IG51bGw7CisgICAgdGhpcy5maWxlU3lz
dGVtVHlwZSA9IHR5cGU7CisgICAgdGhpcy5maWxlU3lzdGVtU2l6ZSA9IHNpemU7CisKKyAgICB0
aGlzLmxvZyA9IG9wdF9sb2dGdW5jOworICAgIHRoaXMuZW5kVGVzdENhbGxiYWNrID0gb3B0X2Vu
ZFRlc3RDYWxsYmFjazsKKworICAgIHRoaXMubGluZXMgPSBbXTsKKyAgICB0aGlzLmxpbmVDb3Vu
dGVyID0gLTE7CisgICAgdGhpcy5zdGF0ZW1lbnQgPSAnJzsKKyAgICB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlID0gMDsKKyAgICB0aGlzLmRlc3RpbmF0aW9uU3ltYm9sID0gbnVsbDsKKyAgICB0aGlz
LmRpcmVjdG9yeVJlYWRlciA9IG51bGw7CisKKyAgICB0aGlzLnZhcnMgPSB7ICd0cnVlJzogdHJ1
ZSwgJ2ZhbHNlJzogZmFsc2UgfTsKKyAgICB0aGlzLmFyZ1N5bWJvbHMgPSBbXTsKKworICAgIHRo
aXMucnVuU2NyaXB0cyA9IGZ1bmN0aW9uKGVsZW1lbnRJZCkKKyAgICB7CisgICAgICAgIGlmICgh
dGhpcy5lbmRUZXN0Q2FsbGJhY2spCisgICAgICAgICAgICB0aGlzLmVuZFRlc3RDYWxsYmFjayA9
IGZ1bmN0aW9uKCkgeyB9OworCisgICAgICAgIGlmICghdGhpcy5sb2cpCisgICAgICAgICAgICB0
aGlzLmxvZyA9IHRoaXMuZGVmYXVsdExvZ0Z1bmM7CisKKyAgICAgICAgdmFyIGVsZW0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICBpZiAoIWVsZW0pIHsKKyAg
ICAgICAgICAgIHRoaXMuZXJyb3IoJ0VsZW1lbnQgbm90IGZvdW5kOiAnICsgZWxlbWVudElkKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmxpbmVzID0gZWxl
bS5pbm5lckhUTUwuc3BsaXQoL1xyP1xuKy8pOworICAgICAgICBpZiAoIXRoaXMubGluZXMubGVu
Z3RoKSB7CisgICAgICAgICAgICB0aGlzLmVycm9yKCJObyBzY3JpcHRzIHRvIHJ1biEiKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMubGluZUNvdW50ZXIg
PSAwOworICAgICAgICByZXF1ZXN0RmlsZVN5c3RlbSh0aGlzLmZpbGVTeXN0ZW1UeXBlLCB0aGlz
LmZpbGVTeXN0ZW1TaXplLCB0aGlzLmJpbmQodGhpcy5maWxlU3lzdGVtQ2FsbGJhY2spLCB0aGlz
LmJpbmQodGhpcy5lcnJvckNhbGxiYWNrKSk7CisgICAgfQorCisgICAgLy8gQ2FsbGJhY2tzIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisgICAgdGhpcy5iaW5kID0gZnVuY3Rpb24oY2FsbGJhY2ssIGFyZzEsIGFyZzIsIGFyZzMp
CisgICAgeworICAgICAgICB2YXIgb2JqID0gdGhpczsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
KGFyZykgeworICAgICAgICAgICAgaWYgKGFyZyA9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAg
ICAgY2FsbGJhY2suYXBwbHkob2JqLCBbYXJnMSwgYXJnMiwgYXJnM10pOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG9iaiwgW2FyZywgYXJnMSwgYXJn
MiwgYXJnM10pOworICAgICAgICB9OworICAgIH07CisKKyAgICB0aGlzLmVycm9yQ2FsbGJhY2sg
PSBmdW5jdGlvbihlcnJvcikKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cuc2hvdWxkQmUpCisg
ICAgICAgICAgICBzaG91bGRCZS5hcHBseSh0aGlzLCBbInRoaXMuZXhwZWN0ZWRFcnJvckNvZGUi
LCAnIicgKyBlcnJvci5jb2RlICsgJyInXSk7CisgICAgICAgIGlmICh0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlICYmIGVycm9yLmNvZGUgPT0gdGhpcy5leHBlY3RlZEVycm9yQ29kZSkgeworICAgICAg
ICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICB0aGlzLmVycm9yKCdHb3QgZXJyb3I6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIHRoaXMuc3VjY2Vzc0NhbGxiYWNrID0gZnVuY3Rpb24ocmV0dXJuVmFsdWUp
CisgICAgeworICAgICAgICBpZiAodGhpcy5leHBlY3RlZEVycm9yQ29kZSkgeworICAgICAgICAg
ICAgdGhpcy5lcnJvcignT3BlcmF0aW9uIHVuZXhwZWN0ZWRseSBzdWNjZWVkZWQnKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5kZXN0aW5hdGlvblN5
bWJvbCkKKyAgICAgICAgICAgIHRoaXMudmFyc1t0aGlzLmRlc3RpbmF0aW9uU3ltYm9sXSA9IHJl
dHVyblZhbHVlOworICAgICAgICBpZiAodGhpcy5zdGF0ZW1lbnQgJiYgd2luZG93LnRlc3RQYXNz
ZWQpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdWNjZWVkZWQ6ICcgKyB0aGlzLnN0YXRlbWVu
dCk7CisgICAgICAgIHRoaXMucnVuTmV4dFN0YXRlbWVudCgpOworICAgIH0KKworICAgIHRoaXMu
ZW50cmllc0NhbGxiYWNrID0gZnVuY3Rpb24oZW50cmllcykKKyAgICB7CisgICAgICAgIGlmICh0
aGlzLmRlc3RpbmF0aW9uU3ltYm9sKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMudmFyc1t0aGlz
LmRlc3RpbmF0aW9uU3ltYm9sXSkKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnNbdGhpcy5kZXN0
aW5hdGlvblN5bWJvbF0gPSBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW50
cmllcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnNbdGhpcy5kZXN0aW5h
dGlvblN5bWJvbF0ucHVzaChlbnRyaWVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZW50
cmllcy5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLmRpcmVjdG9yeVJlYWRlci5yZWFkRW50cmll
cyh0aGlzLmJpbmQodGhpcy5lbnRyaWVzQ2FsbGJhY2spLCB0aGlzLmJpbmQodGhpcy5lcnJvckNh
bGxiYWNrKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMucnVuTmV4dFN0YXRlbWVu
dCgpOworICAgIH0KKworICAgIHRoaXMuZmlsZVN5c3RlbUNhbGxiYWNrID0gZnVuY3Rpb24oZnMp
CisgICAgeworICAgICAgICB0aGlzLmxvZygnR290IEZpbGVTeXN0ZW06ICcgKyBmcy5uYW1lKTsK
KyAgICAgICAgdGhpcy5maWxlU3lzdGVtID0gZnM7CisgICAgICAgIHRoaXMudmFyc1snUk9PVCdd
ID0gZnMucm9vdDsKKyAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgfQorCisg
ICAgLy8gSGVscGVyIG1ldGhvZHMgZm9yIGNhbGxpbmcgZW50cnkgbWV0aG9kcyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdmFyIGNhbGxFbnRyeU1ldGhvZDAgPSBmdW5jdGlv
bihzaGVsbCwgZW50cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICBlbnRyeVttZXRob2RdKHNoZWxsLmJpbmQoc2hlbGwuc3VjY2Vzc0NhbGxiYWNrKSwg
c2hlbGwuYmluZChzaGVsbC5lcnJvckNhbGxiYWNrKSk7CisgICAgICAgIH0gY2F0Y2ggKGV4Y2Vw
dGlvbikgeworICAgICAgICAgICAgaWYgKHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlICYmIGVycm9y
LmNvZGUgPT0gc2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUpIHsKKyAgICAgICAgICAgICAgICBzaGVs
bC5sb2coJ0dvdCBleGNlcHRpb24gKGV4cGVjdGVkKTogJyArIGVycm9yLmNvZGUpOworICAgICAg
ICAgICAgICAgIHNoZWxsLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgc2hlbGwuZXJyb3IoJ0dvdCBleGNlcHRpb246ICcgKyBlcnJvci5j
b2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZhciBjYWxsRW50
cnlNZXRob2QyID0gZnVuY3Rpb24oc2hlbGwsIGVudHJ5LCBtZXRob2QsIGFyZ3MpCisgICAgewor
ICAgICAgICB0cnkgeworICAgICAgICAgICAgZW50cnlbbWV0aG9kXShhcmdzWzBdLCBhcmdzWzFd
LCBzaGVsbC5iaW5kKHNoZWxsLnN1Y2Nlc3NDYWxsYmFjayksIHNoZWxsLmJpbmQoc2hlbGwuZXJy
b3JDYWxsYmFjaykpOworICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAg
IGlmIChzaGVsbC5leHBlY3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09IHNoZWxsLmV4cGVj
dGVkRXJyb3JDb2RlKSB7CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdHb3QgZXhjZXB0aW9u
IChleHBlY3RlZCk6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAgICBzaGVsbC5ydW5O
ZXh0U3RhdGVtZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNo
ZWxsLmVycm9yKCdHb3QgZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgY2FsbFJlYWREaXJlY3RvcnkgPSBmdW5jdGlv
bihzaGVsbCwgZW50cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICBzaGVsbC5kaXJlY3RvcnlSZWFkZXIgPSBlbnRyeS5jcmVhdGVSZWFkZXIoKTsKKyAg
ICAgICAgICAgIHNoZWxsLmRpcmVjdG9yeVJlYWRlci5yZWFkRW50cmllcyhzaGVsbC5iaW5kKHNo
ZWxsLmVudHJpZXNDYWxsYmFjayksIHNoZWxsLmJpbmQoc2hlbGwuZXJyb3JDYWxsYmFjaykpOwor
ICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGlmIChzaGVsbC5leHBl
Y3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09IHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlKSB7
CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdHb3QgZXhjZXB0aW9uIChleHBlY3RlZCk6ICcg
KyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAgICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50KCk7
CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNoZWxsLmVycm9yKCdHb3Qg
ZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICB2YXIgZW50cnlNZXRob2RzVGFibGUgPSB7CisgICAgICAgICdnZXRNZXRhZGF0
YSc6IGNhbGxFbnRyeU1ldGhvZDAsCisgICAgICAgICdjb3B5VG8nOiBjYWxsRW50cnlNZXRob2Qy
LAorICAgICAgICAnbW92ZVRvJzogY2FsbEVudHJ5TWV0aG9kMiwKKyAgICAgICAgJ3JlbW92ZSc6
IGNhbGxFbnRyeU1ldGhvZDAsCisgICAgICAgICdnZXRQYXJlbnQnOiBjYWxsRW50cnlNZXRob2Qw
LAorICAgICAgICAnZ2V0RmlsZSc6IGNhbGxFbnRyeU1ldGhvZDIsCisgICAgICAgICdnZXREaXJl
Y3RvcnknOiBjYWxsRW50cnlNZXRob2QyLAorICAgICAgICAncmVhZERpcmVjdG9yeSc6IGNhbGxS
ZWFkRGlyZWN0b3J5LAorICAgIH07CisKKyAgICAvLyBCdWlsdC1pbiBmdW5jaXRvbnMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICB2YXIg
dG9TdHJpbmcgPSBmdW5jdGlvbihvYmopCisgICAgeworICAgICAgICBpZiAob2JqID09IHVuZGVm
aW5lZCkgeworICAgICAgICAgICAgcmV0dXJuICJ1bmRlZmluZWQiOworICAgICAgICB9IGVsc2Ug
aWYgKHR5cGVvZiBvYmogPT0gJ29iamVjdCcpIHsKKyAgICAgICAgICAgIGlmIChvYmoubGVuZ3Ro
ICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIHZhciBzdHJpbmdBcnJheSA9IFtdOwor
ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgICAgICAgICBzdHJpbmdBcnJheS5wdXNoKHRvU3RyaW5nKG9ialtpXSkpOworICAg
ICAgICAgICAgICAgIHN0cmluZ0FycmF5LnNvcnQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
J1snICsgc3RyaW5nQXJyYXkuam9pbignLFxuICcpICsgJ10nOworICAgICAgICAgICAgfSBlbHNl
IGlmIChvYmouaXNGaWxlIHx8IG9iai5pc0RpcmVjdG9yeSkgeworICAgICAgICAgICAgICAgIHJl
dHVybiAnRU5UUlkge3BhdGg6JyArIG9iai5mdWxsUGF0aCArICcgbmFtZTonICsgb2JqLm5hbWUg
KyAob2JqLmlzRmlsZSA/ICcgdHlwZTpGSUxFJyA6ICcgdHlwZTpESVJFQ1RPUlknKSArICd9JzsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gb2JqOworICAgIH0K
KworICAgIHRoaXMuQlVJTFRJTl9wcmludCA9IGZ1bmN0aW9uKGFyZ3MpCisgICAgeworICAgICAg
ICB0aGlzLmxvZyh0b1N0cmluZyhhcmdzWzBdKSk7CisgICAgICAgIHRoaXMucnVuTmV4dFN0YXRl
bWVudCgpOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9yZXNldCA9IGZ1bmN0aW9uKGFyZ3Mp
CisgICAgeworICAgICAgICB0aGlzLmxvZygnUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4nKTsK
KyAgICAgICAgdmFyIHNoZWxsID0gdGhpczsKKyAgICAgICAgcmVtb3ZlUmVjdXJzaXZlbHkodGhp
cy5maWxlU3lzdGVtLnJvb3QsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2hlbGwucnVuTmV4
dFN0YXRlbWVudCgpOworICAgICAgICB9LCB0aGlzLmJpbmQodGhpcy5lcnJvckNhbGxiYWNrKSk7
CisgICAgfQorCisgICAgdGhpcy5CVUlMVElOX0FTU0VSVCA9IGZ1bmN0aW9uKGFyZ3MpCisgICAg
eworICAgICAgICB2YXIgb2JqID0gYXJnc1swXTsKKyAgICAgICAgaWYgKHdpbmRvdy5zaG91bGRC
ZU5vbk51bGwpCisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoJyInICsgb2JqICsgJyInKTsK
KyAgICAgICAgaWYgKCFvYmopCisgICAgICAgICAgICB0aGlzLmVycm9yKCdBc3NlcnRpb24gZXJy
b3I6JyArIG9iaik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMucnVuTmV4dFN0YXRl
bWVudCgpOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9BU1NFUlRfR0UgPSBmdW5jdGlvbihh
cmdzKQorICAgIHsKKyAgICAgICAgdmFyIHZhbHVlMSA9IChhcmdzWzBdIGluc3RhbmNlb2YgRGF0
ZSkgPyBhcmdzWzBdLmdldFRpbWUoKSA6IGFyZ3NbMF07CisgICAgICAgIHZhciB2YWx1ZTIgPSAo
YXJnc1sxXSBpbnN0YW5jZW9mIERhdGUpID8gYXJnc1sxXS5nZXRUaW1lKCkgOiBhcmdzWzFdOwor
ICAgICAgICBpZiAod2luZG93LnNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKQorICAgICAgICAg
ICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJyInICsgdmFsdWUxICsgJyInLCAnIicgKyB2
YWx1ZTIgKyAnIicpOworICAgICAgICBpZiAodmFsdWUxIDwgdmFsdWUyKSB7CisgICAgICAgICAg
ICB0aGlzLmVycm9yKCdBc3NlcnRpb24gZXJyb3I6JyArIGFyZ3NbMF0gKyAnID49ICcgKyBhcmdz
WzFdKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJ1bk5l
eHRTdGF0ZW1lbnQoKTsKKyAgICB9CisKKyAgICB0aGlzLkJVSUxUSU5fQVNTRVJUX0VRID0gZnVu
Y3Rpb24oYXJncykKKyAgICB7CisgICAgICAgIHZhciB2YWx1ZTEgPSAoYXJnc1swXSBpbnN0YW5j
ZW9mIERhdGUpID8gYXJnc1swXS5nZXRUaW1lKCkgOiBhcmdzWzBdOworICAgICAgICB2YXIgdmFs
dWUyID0gKGFyZ3NbMV0gaW5zdGFuY2VvZiBEYXRlKSA/IGFyZ3NbMV0uZ2V0VGltZSgpIDogYXJn
c1sxXTsKKyAgICAgICAgaWYgKHdpbmRvdy5zaG91bGRCZSkKKyAgICAgICAgICAgIHNob3VsZEJl
LmFwcGx5KHRoaXMsIFt0aGlzLmFyZ1N5bWJvbHNbMV0sIHRoaXMuYXJnU3ltYm9sc1swXV0pOwor
ICAgICAgICBpZiAodmFsdWUxICE9IHZhbHVlMikgeworICAgICAgICAgICAgdGhpcy5lcnJvcign
QXNzZXJ0aW9uIGVycm9yOicgKyBhcmdzWzBdICsgJyA9PSAnICsgYXJnc1sxXSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7
CisgICAgfQorCisgICAgLy8gUGFyc2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdGhpcy5FTlRSWV9NRVRIT0Rf
UkUgPSAvXlxzKihbQS1aYS16X11cdyopXC4oZ2V0TWV0YWRhdGF8bW92ZVRvfGNvcHlUb3xyZW1v
dmV8Z2V0UGFyZW50fGdldEZpbGV8Z2V0RGlyZWN0b3J5fHJlYWREaXJlY3RvcnkpXCgoLiopXCko
PzpccytyYWlzZXM/XHMqXCg/KFxkKylcKT98KS87CisgICAgdGhpcy5BU1NJR05NRU5UX1JFID0g
L15ccyooW0EtWmEtel9dXHcqKVxzKj1ccyooLiopLzsKKworICAgIHRoaXMucGFyc2VBcmdzID0g
ZnVuY3Rpb24odGV4dCkgeworICAgICAgICB0aGlzLmFyZ1N5bWJvbHMgPSBbXTsKKyAgICAgICAg
dmFyIGFyZ3MgPSBbXTsKKyAgICAgICAgdmFyIHNoZWxsID0gdGhpczsKKyAgICAgICAgdmFyIHZh
cnMgPSB0aGlzLnZhcnM7CisgICAgICAgIHRleHQucmVwbGFjZSgvKD86KHtbXn1dKn0pfChcZCt8
IlteIl0qInwnW14nXSonKXwoW2EtekEtWl9dXHcqKSg/OlxbKFxkK3xbJyJdXHcrWyciXSlcXXxc
LihcdyspfCkpKCx8JClccyovZywgZnVuY3Rpb24obWF0Y2gsIGhhc2gsIGltbWVkaWF0ZSwgc3lt
Ym9sLCBmaWVsZDEsIGZpZWxkMikgeworICAgICAgICAgICAgdmFyIGZpZWxkID0gZmllbGQxICE9
IHVuZGVmaW5lZCA/IGZpZWxkMSA6IGZpZWxkMjsKKyAgICAgICAgICAgIHZhciBvYmogPSBzaGVs
bC52YXJzW3N5bWJvbF07CisgICAgICAgICAgICBpZiAoc3ltYm9sICYmIG9iaiA9PSB1bmRlZmlu
ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3ltYm9sID09ICdudWxsJyB8fCBzeW1ib2wgPT0g
J3VuZGVmaW5lZCcpIHsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gbnVsbDsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzaGVsbC5lcnJvcignVW5kZWZp
bmVkIHN5bWJvbDonICsgc3ltYm9sKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNoZWxsLmFyZ1N5bWJv
bHMucHVzaCgKKyAgICAgICAgICAgICAgICBoYXNoID8gaGFzaCA6CisgICAgICAgICAgICAgICAg
aW1tZWRpYXRlID8gaW1tZWRpYXRlIDoKKyAgICAgICAgICAgICAgICBzeW1ib2wgPyAndGhpcy52
YXJzWyInICsgc3ltYm9sICsgJyJdJyArIChmaWVsZCAhPSB1bmRlZmluZWQgPyAnWyInICsgZmll
bGQgKyAnIl0nIDogJycpIDogbWF0Y2gpOworICAgICAgICAgICAgYXJncy5wdXNoKGhhc2ggPyBl
dmFsKCdvPScgKyBoYXNoKQorICAgICAgICAgICAgICAgIDogaW1tZWRpYXRlID8gZXZhbChpbW1l
ZGlhdGUpCisgICAgICAgICAgICAgICAgOiBzeW1ib2wgPyAoZmllbGQgIT0gdW5kZWZpbmVkID8g
b2JqW2ZpZWxkXSA6IG9iaikKKyAgICAgICAgICAgICAgICA6IG51bGwpOworICAgICAgICB9KTsK
KyAgICAgICAgcmV0dXJuIGFyZ3M7CisgICAgfQorCisgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50
ID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMubGluZUNvdW50ZXIgPCAwIHx8
IHRoaXMubGluZUNvdW50ZXIgPj0gdGhpcy5saW5lcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHRo
aXMubG9nKCdTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLicpOworICAgICAgICAgICAgdGhpcy5l
bmRUZXN0Q2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICB0aGlzLnN0YXRlbWVudCA9IHRoaXMubGluZXNbdGhpcy5saW5lQ291bnRlcisrXTsKKyAgICAg
ICAgaWYgKHRoaXMuc3RhdGVtZW50LnNlYXJjaCgvXlxzKigjLip8KSQvKSA9PSAwKSB7CisgICAg
ICAgICAgICB0aGlzLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICB2YXIgZXhwID0gdGhpcy5zdGF0ZW1lbnQ7CisgICAgICAgIHRoaXMu
ZGVzdGluYXRpb25TeW1ib2wgPSBudWxsOworICAgICAgICB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
ID0gMDsKKyAgICAgICAgdmFyIG1hdGNoZXMgPSB0aGlzLnN0YXRlbWVudC5tYXRjaCh0aGlzLkFT
U0lHTk1FTlRfUkUpOworICAgICAgICBpZiAobWF0Y2hlcykgeworICAgICAgICAgICAgdGhpcy5k
ZXN0aW5hdGlvblN5bWJvbCA9IG1hdGNoZXNbMV07CisgICAgICAgICAgICB0aGlzLnZhcnNbdGhp
cy5kZXN0aW5hdGlvblN5bWJvbF0gPSBudWxsOworICAgICAgICAgICAgZXhwID0gbWF0Y2hlc1sy
XTsKKyAgICAgICAgfQorICAgICAgICBtYXRjaGVzID0gZXhwLm1hdGNoKHRoaXMuRU5UUllfTUVU
SE9EX1JFKTsKKyAgICAgICAgaWYgKG1hdGNoZXMpIHsKKyAgICAgICAgICAgIHZhciBlbnRyeSA9
IHNoZWxsLnZhcnNbbWF0Y2hlc1sxXV07CisgICAgICAgICAgICB2YXIgbWV0aG9kID0gbWF0Y2hl
c1syXTsKKyAgICAgICAgICAgIGlmICghZW50cnkpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmVy
cm9yKCdObyBzdWNoIHN5bWJvbDonICsgbWF0Y2hlc1sxXSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5leHBlY3RlZEVycm9yQ29kZSA9
IG1hdGNoZXNbNF07CisgICAgICAgICAgICBlbnRyeU1ldGhvZHNUYWJsZVttZXRob2RdKHRoaXMs
IGVudHJ5LCBtZXRob2QsIHRoaXMucGFyc2VBcmdzKG1hdGNoZXNbM10pKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtYXRjaGVzID0gZXhwLm1hdGNoKC9eXHMqKFtB
LVphLXpfXVx3KylcKCguKilcKS8pOworICAgICAgICBpZiAobWF0Y2hlcyAmJiB0aGlzWydCVUlM
VElOXycgKyBtYXRjaGVzWzFdXSkgeworICAgICAgICAgICAgdGhpc1snQlVJTFRJTl8nICsgbWF0
Y2hlc1sxXV0odGhpcy5wYXJzZUFyZ3MobWF0Y2hlc1syXSkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLnBhcnNlQXJncyhleHApOwor
ICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICBpZiAodGhpcy5k
ZXN0aW5hdGlvblN5bWJvbCkKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnNbdGhpcy5kZXN0aW5h
dGlvblN5bWJvbF0gPSB2YWx1ZXNbMF07CisgICAgICAgICAgICB0aGlzLnJ1bk5leHRTdGF0ZW1l
bnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmVycm9y
KCdTeW50YXggZXJyb3I6JyArIHRoaXMuc3RhdGVtZW50KTsKKyAgICB9CisKKyAgICAvLyBNaXNj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKyAgICB0aGlzLmR1bXBWYXJzID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgZm9yICh2YXIga2V5IGluIHRoaXMudmFycykKKyAgICAgICAgICAgIHRoaXMubG9nKCcqKiAn
ICsga2V5ICsgJzonICsgdGhpcy52YXJzW2tleV0pOworICAgIH0KKworICAgIHRoaXMuZXJyb3Ig
PSBmdW5jdGlvbihtc2cpCisgICAgeworICAgICAgICB2YXIgcHJpbnRFcnJvciA9IHRoaXMubG9n
CisgICAgICAgIGlmICh3aW5kb3cudGVzdEZhaWxlZCkKKyAgICAgICAgICAgIHByaW50RXJyb3Ig
PSB0ZXN0RmFpbGVkOworICAgICAgICBpZiAodGhpcy5saW5lQ291bnRlciA+IDAgJiYgdGhpcy5s
aW5lQ291bnRlciA8IHRoaXMubGluZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBwcmludEVycm9y
KCdFUlJPUjonICsgbXNnICsgJyBhdCBsaW5lICcgKyB0aGlzLmxpbmVDb3VudGVyKTsKKyAgICAg
ICAgICAgIHByaW50RXJyb3IoJyA+ICcgKyB0aGlzLnN0YXRlbWVudCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgcHJpbnRFcnJvcignRVJST1I6JyArIG1zZyk7CisgICAgICAgIHRoaXMu
ZW5kVGVzdENhbGxiYWNrKCk7CisgICAgfQorCisgICAgdGhpcy5kZWZhdWx0TG9nRnVuYyA9IGZ1
bmN0aW9uKG1zZykKKyAgICB7CisgICAgICAgIHZhciBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKTsKKyAgICAgICAgaWYgKCFlbGVtKSB7CisgICAgICAgICAgICBlbGVt
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICBlbGVtLmlkID0g
J2NvbnNvbGUnOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtKTsK
KyAgICAgICAgfQorICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nw
YW4nKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRD
aGlsZChzcGFuKTsKKyAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsKKyAg
ICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNl
cy9mcy10ZXN0LXV0aWwuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2Vz
L2ZzLXRlc3QtdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGU4Njk3ODU4MzI0ZmQ4NzAzMzg0N2QyM2Rm
ZTNmMGFhZjViODgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwuanMKQEAgLTAsMCArMSwxMDcgQEAKK3ZhciBKb2lu
SGVscGVyID0gZnVuY3Rpb24oY2FsbGJhY2spCit7CisgICAgdGhpcy5wZW5kaW5nT3BlcmF0aW9u
cyA9IDA7CisgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrOworCisgICAgdGhpcy5ydW4gPSBm
dW5jdGlvbihvcGVyYXRpb24pIHsKKyAgICAgICAgdGhpcy5wZW5kaW5nT3BlcmF0aW9ucysrOwor
ICAgICAgICBvcGVyYXRpb24oKTsKKyAgICB9OworCisgICAgdGhpcy5kb25lID0gZnVuY3Rpb24o
KSB7CisgICAgICAgIHRoaXMucGVuZGluZ09wZXJhdGlvbnMtLTsKKyAgICAgICAgaWYgKHRoaXMu
cGVuZGluZ09wZXJhdGlvbnMgPT0gMCkKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgfTsK
K307CisKKy8vIEZJWE1FOiByZXBsYWNlIHRoaXMgd2l0aCB0aGUgQVBJJ3Mgb25lIG9uY2UgdGhl
IGJhY2tlbmQgZnVsbHkgc3VwcG9ydHMgcmVtb3ZlUmVjdXJzaXZlbHkuCitmdW5jdGlvbiByZW1v
dmVSZWN1cnNpdmVseShkaXJlY3RvcnksIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykg
eworICAgIHZhciBSZW1vdmVSZWN1cnNpdmVIZWxwZXIgPSBmdW5jdGlvbihzdWNjZXNzQ2FsbGJh
Y2ssIGVycm9yQ2FsbGJhY2spIHsKKyAgICAgICAgdGhpcy5yZW1vdmVEaXJNYXAgPSB7fTsKKyAg
ICAgICAgdGhpcy5zdWNjZXNzQ2FsbGJhY2sgPSBzdWNjZXNzQ2FsbGJhY2s7CisgICAgICAgIHRo
aXMuZXJyb3JDYWxsYmFjayA9IGVycm9yQ2FsbGJhY2s7CisKKyAgICAgICAgdGhpcy5yZW1vdmVS
ZWN1cnNpdmVseSA9IGZ1bmN0aW9uKGRpcmVjdG9yeSkKKyAgICAgICAgeworICAgICAgICAgICAg
dGhpcy5yZW1vdmVSZWN1cnNpdmVseUludGVybmFsKGRpcmVjdG9yeSk7CisgICAgICAgIH07CisK
KyAgICAgICAgdGhpcy5oYXNNb3JlRW50cmllcyA9IGZ1bmN0aW9uKGhhc2gpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGZvciAoayBpbiBoYXNoKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9OworCisgICAgICAgIHRoaXMu
YmluZCA9IGZ1bmN0aW9uKGNhbGxiYWNrLCBhcmcxLCBhcmcyLCBhcmczKQorICAgICAgICB7Cisg
ICAgICAgICAgICB2YXIgb2JqID0gdGhpczsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihh
cmcpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXJnID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAg
ICAgICAgICAgY2FsbGJhY2suYXBwbHkob2JqLCBbYXJnMSwgYXJnMiwgYXJnM10pOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkob2JqLCBb
YXJnLCBhcmcxLCBhcmcyLCBhcmczXSk7CisgICAgICAgICAgICB9OworICAgICAgICB9OworCisg
ICAgICAgIHRoaXMucmVtb3ZlRGlyZWN0b3J5ID0gZnVuY3Rpb24oZGlyZWN0b3J5LCBwYXJlbnRE
aXJlY3RvcnkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChkaXJlY3RvcnkuZnVsbFBhdGgg
IT0gJy8nKSB7CisgICAgICAgICAgICAgICAgLy8gT2sgdG8gcmVtb3ZlIHRoZSBwYXJlbnQgZGly
ZWN0b3J5LgorICAgICAgICAgICAgICAgIGRpcmVjdG9yeS5yZW1vdmUodGhpcy5iaW5kKHRoaXMu
ZW50cnlSZW1vdmVkQ2FsbGJhY2ssIHBhcmVudERpcmVjdG9yeSwgZGlyZWN0b3J5KSwgdGhpcy5i
aW5kKHRoaXMuRXJyb3JDYWxsYmFjaykpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgZGVsZXRlIHRoaXMucmVtb3ZlRGlyTWFwW2RpcmVjdG9yeS5mdWxsUGF0aF07CisgICAg
ICAgICAgICBpZiAoIXRoaXMuaGFzTW9yZUVudHJpZXModGhpcy5yZW1vdmVEaXJNYXApICYmIHRo
aXMuc3VjY2Vzc0NhbGxiYWNrKQorICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzc0NhbGxiYWNr
KCk7CisgICAgICAgIH07CisKKyAgICAgICAgdGhpcy5lbnRyeVJlbW92ZWRDYWxsYmFjayA9IGZ1
bmN0aW9uKGRpcmVjdG9yeSwgZW50cnkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlbnRy
eS5pc0RpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5yZW1vdmVEaXJNYXBb
ZW50cnkuZnVsbFBhdGhdOworCisgICAgICAgICAgICBpZiAoZGlyZWN0b3J5KSB7CisgICAgICAg
ICAgICAgICAgdmFyIGRpckluZm8gPSB0aGlzLnJlbW92ZURpck1hcFtkaXJlY3RvcnkuZnVsbFBh
dGhdOworICAgICAgICAgICAgICAgIGlmICgtLWRpckluZm8uZW50cmllcyA9PSAwICYmIGRpcklu
Zm8uaGFzTW9yZSA9PSBmYWxzZSkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVEaXJl
Y3RvcnkoZGlyZWN0b3J5LCBkaXJJbmZvLnBhcmVudERpcmVjdG9yeSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH07CisKKyAgICAgICAgdGhpcy5yZW1vdmVSZWN1cnNpdmVseUNhbGxiYWNrID0g
ZnVuY3Rpb24oZW50cmllcywgZGlyZWN0b3J5KQorICAgICAgICB7CisgICAgICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB0
aGlzLnJlbW92ZURpck1hcFtkaXJlY3RvcnkuZnVsbFBhdGhdLmVudHJpZXMrKzsKKyAgICAgICAg
ICAgICAgICBpZiAoZW50cmllc1tpXS5pc0RpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5yZW1vdmVSZWN1cnNpdmVseUludGVybmFsKGVudHJpZXNbaV0sIGRpcmVjdG9yeSk7Cisg
ICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IGVu
dHJpZXNbaV07CisgICAgICAgICAgICAgICAgICAgIGVudHJ5LnJlbW92ZSh0aGlzLmJpbmQodGhp
cy5lbnRyeVJlbW92ZWRDYWxsYmFjaywgZGlyZWN0b3J5LCBlbnRyeSksIHRoaXMuYmluZCh0aGlz
LmVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAoZW50cmllcy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICB0aGlzLnJlbW92
ZURpck1hcFtkaXJlY3RvcnkuZnVsbFBhdGhdLnJlYWRlci5yZWFkRW50cmllcyh0aGlzLmJpbmQo
dGhpcy5yZW1vdmVSZWN1cnNpdmVseUNhbGxiYWNrLCBkaXJlY3RvcnkpLCB0aGlzLmJpbmQodGhp
cy5lcnJvckNhbGxiYWNrKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IHZhciBkaXJJbmZvID0gdGhpcy5yZW1vdmVEaXJNYXBbZGlyZWN0b3J5LmZ1bGxQYXRoXTsKKyAg
ICAgICAgICAgICAgICBkaXJJbmZvLmhhc01vcmUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBp
ZiAoZGlySW5mby5lbnRyaWVzID09IDApCisgICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3Zl
RGlyZWN0b3J5KGRpcmVjdG9yeSwgZGlySW5mby5wYXJlbnREaXJlY3RvcnkpOworICAgICAgICAg
ICAgfQorICAgICAgICB9OworCisgICAgICAgIHRoaXMucmVtb3ZlUmVjdXJzaXZlbHlJbnRlcm5h
bCA9IGZ1bmN0aW9uKGRpcmVjdG9yeSwgcGFyZW50RGlyZWN0b3J5KQorICAgICAgICB7CisgICAg
ICAgICAgICBkaXJlY3RvcnlSZWFkZXIgPSBkaXJlY3RvcnkuY3JlYXRlUmVhZGVyKCk7CisgICAg
ICAgICAgICB0aGlzLnJlbW92ZURpck1hcFtkaXJlY3RvcnkuZnVsbFBhdGhdID0geworICAgICAg
ICAgICAgICAgIGhhc01vcmU6IHRydWUsCisgICAgICAgICAgICAgICAgcGFyZW50RGlyZWN0b3J5
OiBwYXJlbnREaXJlY3RvcnksCisgICAgICAgICAgICAgICAgZW50cmllczogMCwKKyAgICAgICAg
ICAgICAgICByZWFkZXI6IGRpcmVjdG9yeVJlYWRlciwKKyAgICAgICAgICAgIH07CisgICAgICAg
ICAgICBkaXJlY3RvcnlSZWFkZXIucmVhZEVudHJpZXModGhpcy5iaW5kKHRoaXMucmVtb3ZlUmVj
dXJzaXZlbHlDYWxsYmFjaywgZGlyZWN0b3J5KSwgdGhpcy5iaW5kKHRoaXMuZXJyb3JDYWxsYmFj
aykpOworICAgICAgICB9OworICAgIH07CisKKyAgICB2YXIgaGVscGVyID0gbmV3IFJlbW92ZVJl
Y3Vyc2l2ZUhlbHBlcihzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworICAgIGhlbHBl
ci5yZW1vdmVSZWN1cnNpdmVseShkaXJlY3RvcnkpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtY2hhcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtY2hhcnMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ2NzhiYzdhYWFlZDc2MDNhODYwNzNkNzE3YWVlOTNhM2Q5NTRlZDkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZp
bGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIHRoaXMuZXhwZWN0ZWRF
cnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BB
U1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1Mg
dGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhp
cy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUg
aXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5l
eHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMg
IjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBl
Y3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEz
IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3Rl
ZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgor
UEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVy
cm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFT
UyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9y
Q29kZSBpcyAiMTMiCitQQVNTIFN1Y2NlZWRlZDogICAgIGFiID0gUk9PVC5nZXRGaWxlKCdhYics
IHtjcmVhdGU6dHJ1ZX0pCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFT
UyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9y
Q29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0
aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29k
ZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlz
LmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBp
cyAiMTMiCitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLWNoYXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzZGNlZWZmNDJmMDcx
YmEyMTNlZjVmMjM4Mzk0OWM0MjZmNzFiYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy5odG1sCkBAIC0wLDAgKzEsNTggQEAK
KzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11
dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmls
ZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorCisgICAgcmVzZXQoKQorCisgICAgUk9PVC5nZXRGaWxl
KCdhXFxiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhPGInKSByYWlzZXMgMTMKKyAg
ICBST09ULmdldEZpbGUoJ2E+YicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYTpiJykg
cmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhP2InKSByYWlzZXMgMTMKKyAgICBST09ULmdl
dEZpbGUoJ2EqYicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYSJiJykgcmFpc2VzIDEz
CisgICAgUk9PVC5nZXRGaWxlKCdhfGInKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgn
XFxhYicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnPGFiJykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXRGaWxlKCc+YWInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJzphYicpIHJh
aXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnP2FiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRG
aWxlKCcqYWInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJyJhYicpIHJhaXNlcyAxMwor
ICAgIFJPT1QuZ2V0RmlsZSgnfGFiJykgcmFpc2VzIDEzCisKKyAgICBST09ULmdldEZpbGUoJ2Fi
XFwnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2FiPCcpIHJhaXNlcyAxMworICAgIFJP
T1QuZ2V0RmlsZSgnYWI+JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYjonKSByYWlz
ZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2FiPycpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0Rmls
ZSgnYWIqJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYiInKSByYWlzZXMgMTMKKyAg
ICBST09ULmdldEZpbGUoJ2FifCcpIHJhaXNlcyAxMworCisgICAgYWIgPSBST09ULmdldEZpbGUo
J2FiJywge2NyZWF0ZTp0cnVlfSkKKyAgICBhYi5jb3B5VG8oUk9PVCwgJ2FcXGInKSByYWlzZXMg
MTMKKyAgICBhYi5jb3B5VG8oUk9PVCwgJ2E8YicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhS
T09ULCAnYT5iJykgcmFpc2VzIDEzCisgICAgYWIuY29weVRvKFJPT1QsICdhOmInKSByYWlzZXMg
MTMKKyAgICBhYi5jb3B5VG8oUk9PVCwgJ2E/YicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhS
T09ULCAnYSpiJykgcmFpc2VzIDEzCisgICAgYWIuY29weVRvKFJPT1QsICdhImInKSByYWlzZXMg
MTMKKyAgICBhYi5jb3B5VG8oUk9PVCwgJ2F8YicpIHJhaXNlcyAxMworCisgICAgIyBOYW1lIHNo
b3VsZCBub3QgY29udGFpbiAnLycKKyAgICBhYi5jb3B5VG8oUk9PVCwgJ2EvYicpIHJhaXNlcyAx
MworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1w
b3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIxMjgyZTNmMmQ3YzhkNjgzMTAyMjRhYzM2NjgzOTVjNDQyMGQ3ZTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1uYW1l
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVs
bEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDog
ICAgIGZpbGUgPSBST09ULmdldEZpbGUoJ2FhYScsIHtjcmVhdGU6dHJ1ZX0pCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGRpciA9IFJPT1QuZ2V0RmlsZSgnYmJiJywge2NyZWF0ZTp0cnVlfSkKK1BBU1Mg
dGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhp
cy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUg
aXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5l
eHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMg
IjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBl
Y3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEz
IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3Rl
ZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgor
UEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVy
cm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFT
UyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9y
Q29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0
aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29k
ZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlz
LmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBp
cyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4
cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAi
MTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVj
dGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMi
CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlIGlzICIxMyIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3RyaWN0ZWQtbmFtZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLW5hbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMxZDBi
YzEyYjkwMDFlYmIyNWVkYjQzMzc1NTBhZDIyNzExZjYxNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVkLW5hbWVzLmh0bWwKQEAgLTAsMCAr
MSw2NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9m
cy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0
LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwi
IGlkPSJmaWxlLXN5c3RlbS10ZXN0LXNjcmlwdCI+CisKKyAgICByZXNldCgpCisgICAgZmlsZSA9
IFJPT1QuZ2V0RmlsZSgnYWFhJywge2NyZWF0ZTp0cnVlfSkKKyAgICBkaXIgPSBST09ULmdldEZp
bGUoJ2JiYicsIHtjcmVhdGU6dHJ1ZX0pCisKKyAgICBST09ULmdldEZpbGUoJ2NvbicpIHJhaXNl
cyAxMworICAgIFJPT1QuZ2V0RmlsZSgnQ09OJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxl
KCdDb24nKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2NPbi50eHQnKSByYWlzZXMgMTMK
KyAgICBST09ULmdldERpcmVjdG9yeSgnYmJiL2NvTicpIHJhaXNlcyAxMworCisgICAgUk9PVC5n
ZXRGaWxlKCdwcm4nKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ1BSTicpIHJhaXNlcyAx
MworICAgIFJPT1QuZ2V0RmlsZSgnUHJuJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdw
Um4udHh0JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXREaXJlY3RvcnkoJ2JiYi9wck4nKSByYWlz
ZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgnYXV4JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRG
aWxlKCdBVVgnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ0F1eCcpIHJhaXNlcyAxMwor
ICAgIFJPT1QuZ2V0RmlsZSgnYVV4LnR4dCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RGlyZWN0
b3J5KCdiYmIvYXVYJykgcmFpc2VzIDEzCisKKyAgICBST09ULmdldEZpbGUoJ251bCcpIHJhaXNl
cyAxMworICAgIFJPT1QuZ2V0RmlsZSgnTlVMJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxl
KCdOdWwnKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ25VbC50eHQnKSByYWlzZXMgMTMK
KyAgICBST09ULmdldERpcmVjdG9yeSgnYmJiL251TCcpIHJhaXNlcyAxMworCisgICAgUk9PVC5n
ZXRGaWxlKCdjb20xJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdDT00yJykgcmFpc2Vz
IDEzCisgICAgUk9PVC5nZXRGaWxlKCdDb200JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxl
KCdjT003LmZvbycpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdiYmIvY29NOScp
IHJhaXNlcyAxMworCisgICAgUk9PVC5nZXRGaWxlKCdscHQxJykgcmFpc2VzIDEzCisgICAgUk9P
VC5nZXRGaWxlKCdMUFQyJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdMcHQ0JykgcmFp
c2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdsUFQ3LmZvbycpIHJhaXNlcyAxMworICAgIFJPT1Qu
Z2V0RGlyZWN0b3J5KCdiYmIvbHBUOScpIHJhaXNlcyAxMworCisgICAgIyBOYW1lcyBzaG91bGQg
bm90IGVuZCB3aXRoIHBlcmlvZCBvciB3aGl0ZXNwYWNlLgorICAgIFJPT1QuZ2V0RmlsZSgnZm9v
ICcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnZm9vXG4nKSByYWlzZXMgMTMKKyAgICBS
T09ULmdldEZpbGUoJ2Zvby4nKSByYWlzZXMgMTMKKyAgICBmaWxlLmNvcHlUbyhkaXIsICdmb28g
JykgcmFpc2VzIDEzCisgICAgZmlsZS5jb3B5VG8oZGlyLCAnZm9vXHQnKSByYWlzZXMgMTMKKyAg
ICBmaWxlLmNvcHlUbyhkaXIsICdmb28uJykgcmFpc2VzIDEzCisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
c2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
c2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKaW5kZXggOGExYTE1ZTVjMzg3NDExNTAyZGM2MjA5
MjYzZTAxYTdiYjRhNDk3Ny4uZjIwN2YxZjFmYzQ2YTNhNGJlMGY2YTJmYmVlMjE2MjQ2ODE4MmQ0
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9U
RU1QTEFURS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVz
dHMvVEVNUExBVEUuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDxoZWFkPgogPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgogPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eT4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9mbGFncy1wYXNzaW5nLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9mbGFncy1wYXNzaW5nLmpzCmluZGV4IDRiMjcy
MjllNGQ3OTIwZTkxNzYyMWMxYjI5ZWE1Y2M1ZTEwM2I1YzcuLjA3ODlhOTljZGFlZmM3NTE3ZjVm
NTE0ZmYwMzc4YzUyYjgzODkwMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9zY3JpcHQtdGVzdHMvZmxhZ3MtcGFzc2luZy5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL2ZsYWdzLXBhc3NpbmcuanMKQEAgLTE2LDI2ICsxNiwx
OSBAQCB2YXIgdGVzdHNMaXN0ID0gWwogXTsKIHZhciB0ZXN0Q291bnRlciA9IDA7CiAKLWZ1bmN0
aW9uIGVuZFRlc3QoKSB7Ci0gICAgZGVidWcoIkZpbmlzaGVkIHJ1bm5pbmcgdGVzdHMuIik7Ci0g
ICAgc2hvdWxkQmUoJ2V4cGVjdGVkQ2FsbGJhY2tzQ291bnQnLCAnMycpOwotICAgIHNob3VsZEJl
KCd1bmV4cGVjdGVkQ2FsbGJhY2tzQ291bnQnLCAnMCcpOwotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKLX0KLQogZnVuY3Rpb24gcnVuTmV4dFRlc3QodikgewotICAgIGlmICh0ZXN0Q291bnRlciA9
PSB0ZXN0c0xpc3QubGVuZ3RoKQotICAgICAgICBlbmRUZXN0KCk7Ci0gICAgZWxzZQorICAgIGlm
ICh0ZXN0Q291bnRlciA9PSB0ZXN0c0xpc3QubGVuZ3RoKSB7CisgICAgICAgIGRlYnVnKCJGaW5p
c2hlZCBydW5uaW5nIHRlc3RzLiIpOworICAgICAgICBzaG91bGRCZSgnZXhwZWN0ZWRDYWxsYmFj
a3NDb3VudCcsICczJyk7CisgICAgICAgIHNob3VsZEJlKCd1bmV4cGVjdGVkQ2FsbGJhY2tzQ291
bnQnLCAnMCcpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9IGVsc2UKICAgICAgICAg
dGhpc1t0ZXN0c0xpc3RbdGVzdENvdW50ZXIrK11dKCk7CiB9CiAKIGZ1bmN0aW9uIGVycm9yQ2Fs
bGJhY2soZXJyb3IpIHsKICAgICBkZWJ1ZygiRXJyb3Igb2NjdXJlZCBkdXJpbmcgcmVxdWVzdGlu
ZyBUZW1wb3JhcnkgRmlsZVN5c3RlbToiICsgZXJyb3IuY29kZSk7Ci0KLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKIC8vIFRlc3QgYm9keSBmdW5jdGlv
bnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpA
QCAtOTMsMTEgKzg2LDkgQEAgZnVuY3Rpb24gZmlsZVN5c3RlbUNhbGxiYWNrKGZzKSB7CiB9CiAK
IGlmICh3aW5kb3cucmVxdWVzdEZpbGVTeXN0ZW0pIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Ci0KICAgICByZXF1ZXN0RmlsZVN5c3RlbSh3aW5kb3cuVEVNUE9SQVJZLCAxMDAsIGZpbGVT
eXN0ZW1DYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwogfSBlbHNlCiAgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBGaWxlU3lzdGVt
IEFQSSBzdXBwb3J0LiIpOwogCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKK3dpbmRv
dy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9wYXJhbGxlbC1vcGVyYXRpb25zLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9wYXJhbGxlbC1vcGVyYXRpb25zLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJhMzhiNTU0N2Q5ODY1YzllMzNmY2M0ZGIxNjhmYTlmMTYyNWQyZGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3Rz
L3BhcmFsbGVsLW9wZXJhdGlvbnMuanMKQEAgLTAsMCArMSw5MyBAQAorZGVzY3JpcHRpb24oIlRl
c3QgbWFraW5nIG11bHRpcGxlIEZpbGVTeXN0ZW0gb3BlcmF0aW9ucyBpbiBwYXJhbGxlbC4iKTsK
KwordmFyIGZpbGVTeXN0ZW0gPSBudWxsOworCit2YXIgYTsKK3ZhciBiOwordmFyIGM7CisKK2Z1
bmN0aW9uIGVuZFRlc3QoKSB7CisgICAgcmVtb3ZlUmVjdXJzaXZlbHkoZmlsZVN5c3RlbS5yb290
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhlcnJv
cikgeworICAgIGRlYnVnKCJHb3QgZXJyb3I6ICIgKyBlcnJvci5jb2RlKTsKKyAgICBlbmRUZXN0
KCk7Cit9CisKK3ZhciBwYXRocyA9IFtdOwordmFyIGRpcnMgPSAwOwordmFyIHJlYWRlciA9IG51
bGw7CisKK2Z1bmN0aW9uIGVudHJpZXNDYWxsYmFjayhlbnRyaWVzKSB7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHBhdGhzLnB1c2goZW50
cmllc1tpXS5mdWxsUGF0aCk7CisgICAgICAgIGlmIChlbnRyaWVzW2ldLmlzRGlyZWN0b3J5KQor
ICAgICAgICAgICAgZGlycysrOworICAgIH0KKyAgICBpZiAoIWVudHJpZXMubGVuZ3RoKSB7Cisg
ICAgICAgIHJlYWRlci5yZWFkRW50cmllcyhlbnRyaWVzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2sp
OworICAgIH0gZWxzZSB7CisgICAgICAgIHBhdGhzLnNvcnQoKTsKKyAgICAgICAgc2hvdWxkQmUo
JyInICsgcGF0aHMuam9pbignLCcpICsgJyInLCAnIi9hLC9iMiwvYywvZCwvZSInKTsKKyAgICAg
ICAgZW5kVGVzdCgpOworICAgIH0KK30KKworZnVuY3Rpb24gdmVyaWZ5KCkgeworICAgIGRlYnVn
KCJWZXJpZnlpbmcgdGhlIEZpbGVTeXN0ZW0gc3RhdHVzLiIpOworICAgIHJlYWRlciA9IGZpbGVT
eXN0ZW0ucm9vdC5jcmVhdGVSZWFkZXIoKTsKKyAgICByZWFkZXIucmVhZEVudHJpZXMoZW50cmll
c0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gcGFyYWxsZWxUZXN0Migp
IHsKKyAgICBkZWJ1ZygiU3RhcnRpbmcgcGFyYWxsZWwgdGVzdCBzdGFnZSAyLiIpOworCisgICAg
dmFyIGpvaW4gPSBuZXcgSm9pbkhlbHBlcih2ZXJpZnkpOworICAgIHZhciBkb25lID0gZnVuY3Rp
b24oKSB7IGpvaW4uZG9uZSgpOyB9OworCisgICAgam9pbi5ydW4oZnVuY3Rpb24oKSB7IGEuY29w
eVRvKGIsICd0bXAnLCBkb25lLCBlcnJvckNhbGxiYWNrKTsgfSk7CisgICAgam9pbi5ydW4oZnVu
Y3Rpb24oKSB7IGEuZ2V0TWV0YWRhdGEoZG9uZSwgZXJyb3JDYWxsYmFjayk7IH0pOworICAgIGpv
aW4ucnVuKGZ1bmN0aW9uKCkgeyBiLmdldFBhcmVudChkb25lLCBlcnJvckNhbGxiYWNrKTsgfSk7
CisgICAgam9pbi5ydW4oZnVuY3Rpb24oKSB7IGIubW92ZVRvKGZpbGVTeXN0ZW0ucm9vdCwgJ2Iy
JywgZG9uZSwgZXJyb3JDYWxsYmFjayk7IH0pOworICAgIGpvaW4ucnVuKGZ1bmN0aW9uKCkgeyBj
LmNvcHlUbyhmaWxlU3lzdGVtLnJvb3QsICdkJywgZG9uZSwgZXJyb3JDYWxsYmFjayk7IH0pOwor
ICAgIGpvaW4ucnVuKGZ1bmN0aW9uKCkgeyBmaWxlU3lzdGVtLnJvb3QuZ2V0RmlsZSgnZScsIHtj
cmVhdGU6dHJ1ZX0sIGRvbmUsIGVycm9yQ2FsbGJhY2spOyB9KTsKK30KKworZnVuY3Rpb24gcGFy
YWxsZWxUZXN0MSgpIHsKKyAgICBkZWJ1ZygiU3RhcnRpbmcgcGFyYWxsZWwgdGVzdCBzdGFnZSAx
LiIpOworCisgICAgdmFyIGpvaW4gPSBuZXcgSm9pbkhlbHBlcihwYXJhbGxlbFRlc3QyKTsKKyAg
ICB2YXIgcm9vdCA9IGZpbGVTeXN0ZW0ucm9vdDsKKworICAgIGpvaW4ucnVuKGZ1bmN0aW9uKCkg
eyByb290LmdldEZpbGUoJ2EnLCB7Y3JlYXRlOnRydWV9LCBmdW5jdGlvbihlbnRyeSkgeworICAg
ICAgICBhID0gZW50cnk7CisgICAgICAgIGpvaW4uZG9uZSgpOworICAgIH0sIGVycm9yQ2FsbGJh
Y2spOyB9KTsKKworICAgIGpvaW4ucnVuKGZ1bmN0aW9uKCkgeyByb290LmdldERpcmVjdG9yeSgn
YicsIHtjcmVhdGU6dHJ1ZX0sIGZ1bmN0aW9uKGVudHJ5KSB7CisgICAgICAgIGIgPSBlbnRyeTsK
KyAgICAgICAgam9pbi5kb25lKCk7CisgICAgfSwgZXJyb3JDYWxsYmFjayk7IH0pOworCisgICAg
am9pbi5ydW4oZnVuY3Rpb24oKSB7IHJvb3QuZ2V0RGlyZWN0b3J5KCdjJywge2NyZWF0ZTp0cnVl
fSwgZnVuY3Rpb24oZW50cnkpIHsKKyAgICAgICAgYyA9IGVudHJ5OworICAgICAgICBqb2luLmRv
bmUoKTsKKyAgICB9LCBlcnJvckNhbGxiYWNrKTsgfSk7Cit9CisKK2lmICh3aW5kb3cucmVxdWVz
dEZpbGVTeXN0ZW0pIHsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdmFy
IGpvaW4gPSBuZXcgSm9pbkhlbHBlcihwYXJhbGxlbFRlc3QxKTsKKyAgICBqb2luLnJ1bihmdW5j
dGlvbigpIHsKKyAgICByZXF1ZXN0RmlsZVN5c3RlbS5hcHBseSh0aGlzLCBbd2luZG93LlRFTVBP
UkFSWSwgMTAwLCBmdW5jdGlvbihmcykgeworICAgICAgICBkZWJ1ZygiR290IEZpbGVTeXN0ZW06
IiArIGZzLm5hbWUpOworICAgICAgICBmaWxlU3lzdGVtID0gZnM7CisgICAgICAgIHJlbW92ZVJl
Y3Vyc2l2ZWx5KGZpbGVTeXN0ZW0ucm9vdCwgZnVuY3Rpb24oKXsgam9pbi5kb25lKCk7IH0sIGVy
cm9yQ2FsbGJhY2spOworICAgIH0sIGVycm9yQ2FsbGJhY2tdKTsgfSk7CisgICAgZGVidWcoInJl
cXVlc3RlZCBGaWxlU3lzdGVtLiIpOworfSBlbHNlCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1
aXJlcyBGaWxlU3lzdGVtIEFQSSBzdXBwb3J0LiIpOworCit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3Jp
cHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS1wZXJzaXN0ZW50LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2NjdlYWUx
Zjc2ZThlMzI1ZmI0ZWUzMTYyMDM3ZWI1MGI4ODA0ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS1wZXJzaXN0ZW50Lmpz
CkBAIC0wLDAgKzEsMjkgQEAKK2Rlc2NyaXB0aW9uKCJQZXJzaXN0ZW50IEZpbGVTeXN0ZW0gc2lt
cGxlIHRlc3QuIik7Cit2YXIgZmlsZVN5c3RlbSA9IG51bGw7CisKK2Z1bmN0aW9uIGVycm9yQ2Fs
bGJhY2soZmlsZVN5c3RlbSkgeworICAgIGRlYnVnKCJFcnJvciBvY2N1cmVkIGR1cmluZyByZXF1
ZXN0aW5nIFBlcnNpc3RlbnQgRmlsZVN5c3RlbToiICsgZmlsZVN5c3RlbS5uYW1lKTsKKworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrKGZzKSB7
CisgICAgZmlsZVN5c3RlbSA9IGZzOworICAgIGRlYnVnKCJTdWNjZXNzZnVsbHkgb2J0YWluZWQg
UGVyc2lzdGVudCBGaWxlU3lzdGVtOiIgKyBmaWxlU3lzdGVtLm5hbWUpOworICAgIHNob3VsZEJl
VHJ1ZSgiZmlsZVN5c3RlbS5uYW1lLmxlbmd0aCA+IDAiKTsKKyAgICBzaG91bGRCZSgiZmlsZVN5
c3RlbS5yb290LmZ1bGxQYXRoIiwgJyIvIicpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
fQorCitpZiAod2luZG93LnJlcXVlc3RGaWxlU3lzdGVtKSB7CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworCisgICAgcmVxdWVzdEZpbGVTeXN0ZW0od2luZG93LlBFUlNJU1RFTlQsIDEwMCwg
c3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30gZWxzZQorICAgIGRlYnVnKCJUaGlz
IHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKword2luZG93LnN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
eXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS10ZW1wb3JhcnkuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS10ZW1wb3JhcnkuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTRjMDc1NmE4MDI3ODMxYzZlYWJkMTkzNTIzMWI5ZTIyMTc5MzdmOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxlLXRlbXBv
cmFyeS5qcwpAQCAtMCwwICsxLDI5IEBACitkZXNjcmlwdGlvbigiVGVtcG9yYXJ5IEZpbGVTeXN0
ZW0gc2ltcGxlIHRlc3QuIik7Cit2YXIgZmlsZVN5c3RlbSA9IG51bGw7CisKK2Z1bmN0aW9uIGVy
cm9yQ2FsbGJhY2soZmlsZVN5c3RlbSkgeworICAgIGRlYnVnKCJFcnJvciBvY2N1cmVkIGR1cmlu
ZyByZXF1ZXN0aW5nIFRlbXBvcmFyeSBGaWxlU3lzdGVtOiIgKyBmaWxlU3lzdGVtLm5hbWUpOwor
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2so
ZnMpIHsKKyAgICBmaWxlU3lzdGVtID0gZnM7CisgICAgZGVidWcoIlN1Y2Nlc3NmdWxseSBvYnRh
aW5lZCBUZW1wb3JhcnkgRmlsZVN5c3RlbToiICsgZmlsZVN5c3RlbS5uYW1lKTsKKyAgICBzaG91
bGRCZVRydWUoImZpbGVTeXN0ZW0ubmFtZS5sZW5ndGggPiAwIik7CisgICAgc2hvdWxkQmUoImZp
bGVTeXN0ZW0ucm9vdC5mdWxsUGF0aCIsICciLyInKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgeworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKworICAgIHJlcXVlc3RGaWxlU3lzdGVtKHdpbmRvdy5URU1QT1JBUlksIDEw
MCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30gZWxzZQorICAgIGRlYnVnKCJU
aGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKword2luZG93LnN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL3NpbXBsZS1wZXJzaXN0ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
N2Q1YzY5M2RhNWY2NDk1N2QwN2ZiNTk5MzBlMWJkYjliMDJmNDNlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1wZXJzaXN0ZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEyIEBACitQZXJzaXN0ZW50IEZpbGVTeXN0ZW0gc2ltcGxlIHRlc3Qu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdWNjZXNzZnVsbHkgb2J0YWluZWQg
UGVyc2lzdGVudCBGaWxlU3lzdGVtOlRlc3RTaGVsbEZpbGVTeXN0ZW0KK1BBU1MgZmlsZVN5c3Rl
bS5uYW1lLmxlbmd0aCA+IDAgaXMgdHJ1ZQorUEFTUyBmaWxlU3lzdGVtLnJvb3QuZnVsbFBhdGgg
aXMgIi8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1wZXJzaXN0
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zYjVhMTNhNjdkNjNhYmUwMGMzYWFkMDlmODlhNDc1NjhjNDM3NDE1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1w
ZXJzaXN0ZW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zaW1wbGUtcGVyc2lzdGVudC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk0
MjAxODhkN2M0MDA1OGIxMmRmZmRjODE0NmZiOWE3YWY4MzcxNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtdGVtcG9yYXJ5LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitUZW1wb3JhcnkgRmlsZVN5c3RlbSBzaW1wbGUgdGVzdC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N1Y2Nlc3NmdWxseSBvYnRhaW5lZCBUZW1w
b3JhcnkgRmlsZVN5c3RlbTpUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIGZpbGVTeXN0ZW0ubmFt
ZS5sZW5ndGggPiAwIGlzIHRydWUKK1BBU1MgZmlsZVN5c3RlbS5yb290LmZ1bGxQYXRoIGlzICIv
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtdGVtcG9yYXJ5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFyeS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA4ZTkyZmZlYmM0MGQzNzkxNDI4OTlmYjJmNmQwOTU1YThiMjE2NzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFy
eS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc2ltcGxlLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69304</attachid>
            <date>2010-09-29 20:15:50 -0700</date>
            <delta_ts>2010-09-29 20:21:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44920-20100929201549.patch</filename>
            <type>text/plain</type>
            <size>79779</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NjUzOTkyNmY3YWRiOTZhMDBmMzQ1YzcxNzk3MDRhZGVjMmRhZGRkLi4xZmJjY2Rm
ZGE1YWMxMThjN2RjMThlZGM4MzAzYjI3OWM4MjI4OTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAK
KzIwMTAtMDktMjkgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVz
dHMgZm9yIEZpbGVTeXN0ZW0gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDkyMAorCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWNvcHkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRh
ZGF0YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1nZXQt
cGFyZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLW1vdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGly
ZWN0b3J5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3Zl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRp
b25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3BhcmFs
bGVsLW9wZXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jl
YWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dC5vcmlnOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS10
ZW1wb3JhcnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0v
cmVxdWVzdC1mcy10d2ljZS10ZW1wb3JhcnkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
aWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qczogQWRkZWQuCisg
ICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcy5v
cmlnOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVk
LWNoYXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVk
LW5hbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jl
c3RyaWN0ZWQtbmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Nj
cmlwdC10ZXN0cy9wYXJhbGxlbC1vcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3JlYWQtZGlyZWN0b3J5LmpzLm9yaWc6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQu
anM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxl
LXRlbXBvcmFyeS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1w
ZXJzaXN0ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVt
L3NpbXBsZS1wZXJzaXN0ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3Rl
bS9zaW1wbGUtdGVtcG9yYXJ5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
aWxlc3lzdGVtL3NpbXBsZS10ZW1wb3JhcnkuaHRtbDogQWRkZWQuCisKIDIwMTAtMDktMjkgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBUaGlzIHRlc3QgcmVzdWx0
IHNlZW1zIHRvIGJlIHBsYXRmb3JtIHNwZWNpZmljLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0Y2ZmZmVmMzdlZWIx
YTY5ZWZmNDdkM2QwYmZkNTZjYmJhYTk0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4NCBAQAor
R290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBmaWxlc3lz
dGVtLi4uCisqIENvcHlpbmcgYW4gZW50cnkgdG8gdGhlIHNhbWUgZGlyZWN0b3J5CitSZXNldGlu
ZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBST09ULmdl
dERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRp
cjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZmlsZTIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNT
IFN1Y2NlZWRlZDogICAgIGNvcGllZCA9IGRpcjEuY29weVRvKHBhcmVudCwgbmFtZTMpCitQQVNT
IFN1Y2NlZWRlZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpCitQQVNTIFN1Y2NlZWRl
ZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTMpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNv
cGllZCA9IGZpbGUyLmNvcHlUbyhwYXJlbnQsIG5hbWU0KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBw
YXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0
RGlyZWN0b3J5KG5hbWUzKQorKiBDb3B5aW5nIGVudHJpZXMgdG8gYSBkaWZmZXJlbnQgZGlyZWN0
b3J5CitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIx
ID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6
ICAgICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBT
dWNjZWVkZWQ6ICAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2Zs
YWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNvcGllZCA9IGNoaWxkMy5jb3B5VG8oZGly
MiwgbmFtZTEpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdldERpcmVjdG9yeShuYW1lMSkKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgY29waWVkID0gY2hpbGQ0LmNvcHlUbyhkaXIyLCBuYW1lMikKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZGlyMS5nZXRGaWxlKG5hbWU0KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdl
dEZpbGUobmFtZTIpCisqIENvcHlpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzCitSZXNl
dGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gUk9PVC5n
ZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIy
ID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6
ICAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCitQQVNT
IFN1Y2NlZWRlZDogICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcp
CitQQVNTIFN1Y2NlZWRlZDogICAgIGNvcGllZCA9IGNoaWxkMy5jb3B5VG8oZGlyMiwgbnVsbCkK
K1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMS5nZXREaXJlY3RvcnkoY2hpbGQzLm5hbWUpCitQQVNT
IFN1Y2NlZWRlZDogICAgIGRpcjIuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBjb3BpZWQgPSBjaGlsZDQuY29weVRvKGRpcjIsIG51bGwpCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGRpcjEuZ2V0RmlsZShjaGlsZDQubmFtZSkKK1BBU1MgU3VjY2VlZGVkOiAgICAg
ZGlyMi5nZXRGaWxlKGNoaWxkNC5uYW1lKQorKiBDb3B5aW5nIGVudHJpZXMgdG8gdGhlIHNhbWUg
ZGlyZWN0b3J5IHdpdGggdGhlIHNhbWUgbmFtZQorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4K
K1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcs
IGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERpcmVj
dG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUyID0gcGFy
ZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
IGlzICIxMyIKKyogVHJ5aW5nIHRvIGNvcHkgbm9uLWV4aXN0ZW50IGVudHJpZXMKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgbm9uZXhpc3RfZGlyID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMywgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIG5vbmV4aXN0X2ZpbGUgPSBwYXJlbnQuZ2V0
RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIG5vbmV4aXN0X2Rp
ci5yZW1vdmUoKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBub25leGlzdF9maWxlLnJlbW92ZSgpCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCisqIENvcHlpbmcgZW50cmllcyB0byBhIG5vbi1l
eGlzdGVudCBkaXJlY3RvcnkKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BB
U1MgU3VjY2VlZGVkOiAgICAgUk9PVC5nZXREaXJlY3RvcnkoZGlyMS5mdWxsUGF0aCkKK1BBU1Mg
U3VjY2VlZGVkOiAgICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRoKQorUEFTUyB0aGlzLmV4
cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4
IgorKiBDb3B5aW5nIGVudHJpZXMgdG8gaXRzIGNoaWxkCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKKyogQ29w
eWluZyBhIGRpcmVjdG9yeSB3aXRoIGNoaWxkcmVuCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjQg
PSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVk
OiAgICAgY2hpbGQxID0gZGlyNC5nZXRGaWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgY2hpbGQyID0gZGlyNC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFn
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjaGlsZDMgPSBjaGlsZDIuZ2V0RmlsZShuYW1lMywgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNoaWxkNCA9IGNoaWxkMi5nZXREaXJlY3Rv
cnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLnZhcnNbImVudHJpZXMxIl1bImxlbmd0
aCJdIGlzIDIKK1BBU1MgdGhpcy52YXJzWyJlbnRyaWVzMiJdWyJsZW5ndGgiXSBpcyAyCitQQVNT
IFN1Y2NlZWRlZDogICAgIGRpcjRfY29weSA9IGRpcjQuY29weVRvKFJPT1QsICdkaXI0X2NvcHkn
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjaGlsZDJfY29weSA9IGRpcjRfY29weS5nZXREaXJlY3Rv
cnkobmFtZTIpCitQQVNTIHRoaXMudmFyc1siZW50cmllczFfY29weSJdWyJsZW5ndGgiXSBpcyAy
CitQQVNTIHRoaXMudmFyc1siZW50cmllczJfY29weSJdWyJsZW5ndGgiXSBpcyAyCitQQVNTIFN1
Y2NlZWRlZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyNC5mdWxsUGF0aCkKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgZGlyNC5nZXRGaWxlKG5hbWUxKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXI0
LmdldERpcmVjdG9yeShuYW1lMikKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHkuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1jb3B5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1NGI5YzFmZjQ5MWQ1ZjBi
OTkwZmYzNjYwOTY2NjIwNDczYzFlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1jb3B5Lmh0bWwKQEAgLTAsMCArMSwxNDQgQEAKKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVz
dC1zY3JpcHQiPgorICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAn
YicKKyAgICBuYW1lMyA9ICdjJworICAgIG5hbWU0ID0gJ2QnCisgICAgY3JlYXRlX2ZsYWcgPSB7
Y3JlYXRlOnRydWV9CisKKyAgICBwcmludCgnKiBDb3B5aW5nIGFuIGVudHJ5IHRvIHRoZSBzYW1l
IGRpcmVjdG9yeScpCisKKyAgICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJP
T1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIxID0gcGFyZW50
LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBwYXJlbnQuZ2V0
RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICAjIERpcmVjdG9yeQorICAgIGNvcGllZCA9
IGRpcjEuY29weVRvKHBhcmVudCwgbmFtZTMpCisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1l
MSkKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAgIyBGaWxlCisgICAgY29w
aWVkID0gZmlsZTIuY29weVRvKHBhcmVudCwgbmFtZTQpCisgICAgcGFyZW50LmdldERpcmVjdG9y
eShuYW1lMSkKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAgcHJpbnQoJyog
Q29weWluZyBlbnRyaWVzIHRvIGEgZGlmZmVyZW50IGRpcmVjdG9yeScpCisKKyAgICAjIFJlc2V0
CisgICAgcmVzZXQoKQorICAgIGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRl
X2ZsYWcpCisgICAgZGlyMiA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykK
KyAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAg
Y2hpbGQ0ID0gZGlyMS5nZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKKworICAgICMgRGlyZWN0
b3J5CisgICAgY29waWVkID0gY2hpbGQzLmNvcHlUbyhkaXIyLCBuYW1lMSkKKyAgICBkaXIxLmdl
dERpcmVjdG9yeShuYW1lMykKKyAgICBkaXIyLmdldERpcmVjdG9yeShuYW1lMSkKKworICAgICMg
RmlsZQorICAgIGNvcGllZCA9IGNoaWxkNC5jb3B5VG8oZGlyMiwgbmFtZTIpCisgICAgZGlyMS5n
ZXRGaWxlKG5hbWU0KQorICAgIGRpcjIuZ2V0RmlsZShuYW1lMikKKworICAgIHByaW50KCcqIENv
cHlpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzJykKKworICAgICMgUmVzZXQKKyAgICBy
ZXNldCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykK
KyAgICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNo
aWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDQg
PSBkaXIxLmdldEZpbGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBEaXJlY3RvcnkKKyAg
ICBjb3BpZWQgPSBjaGlsZDMuY29weVRvKGRpcjIsIG51bGwpCisgICAgZGlyMS5nZXREaXJlY3Rv
cnkoY2hpbGQzLm5hbWUpCisgICAgZGlyMi5nZXREaXJlY3RvcnkoY2hpbGQzLm5hbWUpCisKKyAg
ICAjIEZpbGUKKyAgICBjb3BpZWQgPSBjaGlsZDQuY29weVRvKGRpcjIsIG51bGwpCisgICAgZGly
MS5nZXRGaWxlKGNoaWxkNC5uYW1lKQorICAgIGRpcjIuZ2V0RmlsZShjaGlsZDQubmFtZSkKKwor
ICAgIHByaW50KCcqIENvcHlpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJlY3Rvcnkgd2l0aCB0
aGUgc2FtZSBuYW1lJykKKworICAgICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0g
Uk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJl
bnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5n
ZXRGaWxlKG5hbWUyLCBjcmVhdGVfZmxhZykKKworICAgIGRpcjEuY29weVRvKHBhcmVudCwgbnVs
bCkgcmFpc2VzIDEzCisgICAgZGlyMS5jb3B5VG8ocGFyZW50LCBuYW1lMSkgcmFpc2VzIDEzCisg
ICAgZmlsZTIuY29weVRvKHBhcmVudCwgbnVsbCkgcmFpc2VzIDEzCisgICAgZmlsZTIuY29weVRv
KHBhcmVudCwgbmFtZTIpIHJhaXNlcyAxMworCisgICAgcHJpbnQoJyogVHJ5aW5nIHRvIGNvcHkg
bm9uLWV4aXN0ZW50IGVudHJpZXMnKQorCisgICAgbm9uZXhpc3RfZGlyID0gcGFyZW50LmdldERp
cmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgbm9uZXhpc3RfZmlsZSA9IHBhcmVudC5n
ZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKKyAgICBub25leGlzdF9kaXIucmVtb3ZlKCkKKyAg
ICBub25leGlzdF9maWxlLnJlbW92ZSgpCisKKyAgICBST09ULmdldERpcmVjdG9yeShub25leGlz
dF9kaXIuZnVsbFBhdGgpIHJhaXNlcyA4CisgICAgUk9PVC5nZXRGaWxlKG5vbmV4aXN0X2ZpbGUu
ZnVsbFBhdGgpIHJhaXNlcyA4CisKKyAgICBub25leGlzdF9kaXIuY29weVRvKGRpcjEsIG5hbWUy
KSByYWlzZXMgOAorICAgIG5vbmV4aXN0X2ZpbGUuY29weVRvKGRpcjIsIG5hbWUxKSByYWlzZXMg
OAorCisgICAgcHJpbnQoJyogQ29weWluZyBlbnRyaWVzIHRvIGEgbm9uLWV4aXN0ZW50IGRpcmVj
dG9yeScpCisKKyAgICBST09ULmdldERpcmVjdG9yeShub25leGlzdF9kaXIuZnVsbFBhdGgpIHJh
aXNlcyA4CisgICAgUk9PVC5nZXREaXJlY3RvcnkoZGlyMS5mdWxsUGF0aCkKKyAgICBST09ULmdl
dEZpbGUoZmlsZTIuZnVsbFBhdGgpCisKKyAgICBkaXIxLmNvcHlUbyhub25leGlzdF9kaXIsIG5h
bWUxKSByYWlzZXMgOAorICAgIGZpbGUyLmNvcHlUbyhub25leGlzdF9kaXIsIG5hbWUzKSByYWlz
ZXMgOAorCisgICAgcHJpbnQoJyogQ29weWluZyBlbnRyaWVzIHRvIGl0cyBjaGlsZCcpCisKKyAg
ICBST09ULmNvcHlUbyhkaXIxKSByYWlzZXMgMTMKKyAgICBwYXJlbnQuY29weVRvKGRpcjEpIHJh
aXNlcyAxMworCisgICAgcHJpbnQoJyogQ29weWluZyBhIGRpcmVjdG9yeSB3aXRoIGNoaWxkcmVu
JykKKworICAgIGRpcjQgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykK
KyAgICBjaGlsZDEgPSBkaXI0LmdldEZpbGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxk
MiA9IGRpcjQuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDMgPSBj
aGlsZDIuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQ0ID0gY2hpbGQyLmdl
dERpcmVjdG9yeShuYW1lNCwgY3JlYXRlX2ZsYWcpCisKKyAgICBlbnRyaWVzMSA9IGRpcjQucmVh
ZERpcmVjdG9yeSgpCisgICAgZW50cmllczIgPSBjaGlsZDIucmVhZERpcmVjdG9yeSgpCisgICAg
QVNTRVJUX0VRKDIsIGVudHJpZXMxLmxlbmd0aCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczIu
bGVuZ3RoKQorCisgICAgZGlyNF9jb3B5ID0gZGlyNC5jb3B5VG8oUk9PVCwgJ2RpcjRfY29weScp
CisgICAgY2hpbGQyX2NvcHkgPSBkaXI0X2NvcHkuZ2V0RGlyZWN0b3J5KG5hbWUyKQorCisgICAg
ZW50cmllczFfY29weSA9IGRpcjRfY29weS5yZWFkRGlyZWN0b3J5KCkKKyAgICBlbnRyaWVzMl9j
b3B5ID0gY2hpbGQyX2NvcHkucmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJp
ZXMxX2NvcHkubGVuZ3RoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMl9jb3B5Lmxlbmd0aCkK
KworICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyNC5mdWxsUGF0aCkKKyAgICBkaXI0LmdldEZp
bGUobmFtZTEpCisgICAgZGlyNC5nZXREaXJlY3RvcnkobmFtZTIpCisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vb3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9vcC1nZXQtZW50cnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YWVmZWQ1ZTZhZmIyYWU2
NDgxMzNkY2Y4YWMyYTgyOTE0NTk3NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk0IEBA
CitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorKiBDcmVhdGluZyB0b3AtbGV2
ZWwgZGlyZWN0b3JpZXMgYW5kIGZpbGVzCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFT
UyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9m
bGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlMiA9IFJPT1QuZ2V0RmlsZShuYW1lMiwgY3Jl
YXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZGlyMSJdWyJuYW1lIl0gaXMgdGhpcy52YXJzWyJu
YW1lMSJdCitQQVNTIHRoaXMudmFyc1siZmlsZTIiXVsibmFtZSJdIGlzIHRoaXMudmFyc1sibmFt
ZTIiXQorUEFTUyB0aGlzLnZhcnNbImRpcjEiXVsiaXNEaXJlY3RvcnkiXSBpcyB0aGlzLnZhcnNb
InRydWUiXQorUEFTUyB0aGlzLnZhcnNbImRpcjEiXVsiaXNGaWxlIl0gaXMgdGhpcy52YXJzWyJm
YWxzZSJdCitQQVNTIHRoaXMudmFyc1siZmlsZTIiXVsiaXNEaXJlY3RvcnkiXSBpcyB0aGlzLnZh
cnNbImZhbHNlIl0KK1BBU1MgdGhpcy52YXJzWyJmaWxlMiJdWyJpc0ZpbGUiXSBpcyB0aGlzLnZh
cnNbInRydWUiXQorKiBDcmVhdGluZyBuZXN0ZWQgZGlyZWN0b3JpZXMgYW5kIGZpbGVzCitQQVNT
IFN1Y2NlZWRlZDogICAgIGRpcjFfZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVh
dGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMV9maWxlMyA9IGRpcjEuZ2V0RmlsZShu
YW1lMywgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZGlyMV9kaXIyIl1bImZ1bGxQYXRo
Il0gaXMgJy9hL2InCitQQVNTIHRoaXMudmFyc1siZGlyMV9maWxlMyJdWyJmdWxsUGF0aCJdIGlz
ICcvYS9jJworKiBDcmVhdGluZyBoZWF2aWx5IG5lc3RlZCBlbnRyaWVzCitSZXNldGluZyB0aGUg
ZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQxID0gUk9PVC5nZXREaXJl
Y3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQyID0g
bmVzdGVkMS5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6
ICAgICBuZXN0ZWQzID0gbmVzdGVkMi5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0ZV9mbGFnKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQ0ID0gbmVzdGVkMy5nZXREaXJlY3RvcnkobmFtZTQs
IGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQ1ID0gbmVzdGVkNC5nZXRG
aWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgdGhpcy52YXJzWyJuZXN0ZWQ1Il1bImZ1bGxQ
YXRoIl0gaXMgJy9hL2IvYy9kL2EnCitQQVNTIHRoaXMudmFyc1sibmVzdGVkNSJdWyJuYW1lIl0g
aXMgdGhpcy52YXJzWyJuYW1lMSJdCisqIEdldHRpbmcgZXhpc3RpbmcgZW50cmllcworUmVzZXRp
bmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5n
ZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBk
aXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFT
UyBTdWNjZWVkZWQ6ICAgICBkaXIxXzIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorUEFT
UyBTdWNjZWVkZWQ6ICAgICBmaWxlMl8yID0gcGFyZW50LmdldEZpbGUobmFtZTIpCitQQVNTIHRo
aXMudmFyc1siZGlyMV8yIl1bImZ1bGxQYXRoIl0gaXMgdGhpcy52YXJzWyJkaXIxIl1bImZ1bGxQ
YXRoIl0KK1BBU1MgdGhpcy52YXJzWyJmaWxlMl8yIl1bImZ1bGxQYXRoIl0gaXMgdGhpcy52YXJz
WyJmaWxlMiJdWyJmdWxsUGF0aCJdCisqIEdldHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCBm
dWxsIHBhdGhzLgorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAg
ICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFT
UyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5h
bWUyLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyID0gUk9PVC5nZXREaXJl
Y3RvcnkoJy9wYXJlbnQvYS9hJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZp
bGUgPSBST09ULmdldEZpbGUoJy9wYXJlbnQvYS9iJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGRpcjEuZ2V0RGlyZWN0b3J5KCdhJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGly
MS5nZXRGaWxlKCdiJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyID0gZGlyMi5nZXREaXJlY3Rv
cnkoJy9wYXJlbnQvYS9jJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUg
PSBkaXIyLmdldEZpbGUoJy9wYXJlbnQvYS9kJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRl
ZDogICAgIGRpcjEuZ2V0RGlyZWN0b3J5KCdjJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMS5n
ZXRGaWxlKCdkJykKKyogR2V0dGluZyBmaWxlcy9kaXJlY3RvcmllcyB3aXRoIHJlbGF0aXZlIHBh
dGhzLgorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFy
ZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcp
CitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMiwgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpciA9IGRpcjEuZ2V0RGlyZWN0b3J5KCdi
L2EnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZSA9IGRpcjEuZ2V0Rmls
ZSgnYi9iJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIFJPT1QuZ2V0RGlyZWN0
b3J5KCcvcGFyZW50L2EvYi9hJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgUk9PVC5nZXRGaWxlKCcv
cGFyZW50L2EvYi9iJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50LmdldERpcmVjdG9yeSgn
YS9iL2EnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RmlsZSgnYS9iL2InKQorKiBU
cnlpbmcgdG8gZ2V0L2NyZWF0ZSBlbnRyaWVzIGF0IG5vbi1leGlzdGVudCBwYXRoCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUg
aXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgaXMgIjgiCisqIENhbGxpbmcgZ2V0RmlsZSBmb3IgYSBkaXJlY3Rvcnks
IGdldERpcmVjdG9yeSBmb3IgYSBmaWxlCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFT
UyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpciA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFt
ZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlID0gcGFyZW50LmdldEZp
bGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIx
MSIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTEiCitQQVNTIHRoaXMuZXhwZWN0
ZWRFcnJvckNvZGUgaXMgIjExIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMSIK
KyogVHJ5aW5nIHRvIGNyZWF0ZSBlbnRyaWVzIHdpdGggZXhjbHVzaXZlIGZsYWcKK1Jlc2V0aW5n
IHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIHBhcmVudCA9IFJPT1QuZ2V0
RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyID0g
cGFyZW50LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDog
ICAgIGZpbGUgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlz
ICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIucmVtb3ZlKCkK
K1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZS5yZW1vdmUoKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBS
T09ULmdldERpcmVjdG9yeShkaXIuZnVsbFBhdGgsIGV4Y2x1c2l2ZV9mbGFnKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBST09ULmdldEZpbGUoZmlsZS5mdWxsUGF0aCwgZXhjbHVzaXZlX2ZsYWcpCitQ
QVNTIFN1Y2NlZWRlZDogICAgIGRpci5yZW1vdmUoKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxl
LnJlbW92ZSgpCitQQVNTIFN1Y2NlZWRlZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyLm5h
bWUsIGV4Y2x1c2l2ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RmlsZShm
aWxlLm5hbWUsIGV4Y2x1c2l2ZV9mbGFnKQorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZi
M2I5ZDNlNzYyOTEzMWY4Y2E3NWNmMmRjMjk0MTc0ZDQzNWE1ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtZW50cnkuaHRtbApAQCAtMCwwICsx
LDE0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9m
cy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0
LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwi
IGlkPSJmaWxlLXN5c3RlbS10ZXN0LXNjcmlwdCI+CisKKyAgICBuYW1lMSA9ICdhJworICAgIG5h
bWUyID0gJ2InCisgICAgbmFtZTMgPSAnYycKKyAgICBuYW1lNCA9ICdkJworCisgICAgY3JlYXRl
X2ZsYWcgPSB7Y3JlYXRlOnRydWV9CisgICAgZXhjbHVzaXZlX2ZsYWcgPSB7Y3JlYXRlOnRydWUs
IGV4Y2x1c2l2ZTp0cnVlfQorCisgICAgcHJpbnQoJyogQ3JlYXRpbmcgdG9wLWxldmVsIGRpcmVj
dG9yaWVzIGFuZCBmaWxlcycpCisKKyAgICByZXNldCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IFJPT1QuZ2V0RmlsZShuYW1l
MiwgY3JlYXRlX2ZsYWcpCisgICAgQVNTRVJUX0VRKG5hbWUxLCBkaXIxLm5hbWUpCisgICAgQVNT
RVJUX0VRKG5hbWUyLCBmaWxlMi5uYW1lKQorICAgIEFTU0VSVF9FUSh0cnVlLCBkaXIxLmlzRGly
ZWN0b3J5KQorICAgIEFTU0VSVF9FUShmYWxzZSwgZGlyMS5pc0ZpbGUpCisgICAgQVNTRVJUX0VR
KGZhbHNlLCBmaWxlMi5pc0RpcmVjdG9yeSkKKyAgICBBU1NFUlRfRVEodHJ1ZSwgZmlsZTIuaXNG
aWxlKQorCisgICAgcHJpbnQoJyogQ3JlYXRpbmcgbmVzdGVkIGRpcmVjdG9yaWVzIGFuZCBmaWxl
cycpCisKKyAgICBkaXIxX2RpcjIgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2Zs
YWcpCisgICAgZGlyMV9maWxlMyA9IGRpcjEuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisg
ICAgQVNTRVJUX0VRKCcvYS9iJywgZGlyMV9kaXIyLmZ1bGxQYXRoKQorICAgIEFTU0VSVF9FUSgn
L2EvYycsIGRpcjFfZmlsZTMuZnVsbFBhdGgpCisKKyAgICBwcmludCgnKiBDcmVhdGluZyBoZWF2
aWx5IG5lc3RlZCBlbnRyaWVzJykKKworICAgIHJlc2V0KCkKKyAgICBuZXN0ZWQxID0gUk9PVC5n
ZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIG5lc3RlZDIgPSBuZXN0ZWQxLmdl
dERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgbmVzdGVkMyA9IG5lc3RlZDIuZ2V0
RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBuZXN0ZWQ0ID0gbmVzdGVkMy5nZXRE
aXJlY3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorICAgIG5lc3RlZDUgPSBuZXN0ZWQ0LmdldEZp
bGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIEFTU0VSVF9FUSgnL2EvYi9jL2QvYScsIG5lc3Rl
ZDUuZnVsbFBhdGgpCisgICAgQVNTRVJUX0VRKG5hbWUxLCBuZXN0ZWQ1Lm5hbWUpCisKKyAgICBw
cmludCgnKiBHZXR0aW5nIGV4aXN0aW5nIGVudHJpZXMnKQorCisgICAgcmVzZXQoKQorICAgIHBh
cmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIx
ID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBw
YXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBkaXIxXzIgPSBwYXJlbnQu
Z2V0RGlyZWN0b3J5KG5hbWUxKQorICAgIGZpbGUyXzIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMikK
KyAgICBBU1NFUlRfRVEoZGlyMS5mdWxsUGF0aCwgZGlyMV8yLmZ1bGxQYXRoKQorICAgIEFTU0VS
VF9FUShmaWxlMi5mdWxsUGF0aCwgZmlsZTJfMi5mdWxsUGF0aCkKKworICAgIHByaW50KCcqIEdl
dHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCBmdWxsIHBhdGhzLicpCisKKyAgICByZXNldCgp
CisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQor
ICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBk
aXIyID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBkaXIg
PSBST09ULmdldERpcmVjdG9yeSgnL3BhcmVudC9hL2EnLCBjcmVhdGVfZmxhZykKKyAgICBmaWxl
ID0gUk9PVC5nZXRGaWxlKCcvcGFyZW50L2EvYicsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEuZ2V0
RGlyZWN0b3J5KCdhJykKKyAgICBkaXIxLmdldEZpbGUoJ2InKQorCisgICAgIyBUaGUgZW50cnkn
cyBwYXRoIG11c3Qgbm90IGJlIHVzZWQgaWYgdGhlIGdpdmVuIHBhdGggaXMgYSBmdWxsIHBhdGgu
CisgICAgZGlyID0gZGlyMi5nZXREaXJlY3RvcnkoJy9wYXJlbnQvYS9jJywgY3JlYXRlX2ZsYWcp
CisgICAgZmlsZSA9IGRpcjIuZ2V0RmlsZSgnL3BhcmVudC9hL2QnLCBjcmVhdGVfZmxhZykKKyAg
ICBkaXIxLmdldERpcmVjdG9yeSgnYycpCisgICAgZGlyMS5nZXRGaWxlKCdkJykKKworICAgIHBy
aW50KCcqIEdldHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCByZWxhdGl2ZSBwYXRocy4nKQor
CisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBj
cmVhdGVfZmxhZykKKyAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRl
X2ZsYWcpCisgICAgZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykK
KworICAgIGRpciA9IGRpcjEuZ2V0RGlyZWN0b3J5KCdiL2EnLCBjcmVhdGVfZmxhZykKKyAgICBm
aWxlID0gZGlyMS5nZXRGaWxlKCdiL2InLCBjcmVhdGVfZmxhZykKKyAgICBST09ULmdldERpcmVj
dG9yeSgnL3BhcmVudC9hL2IvYScpCisgICAgUk9PVC5nZXRGaWxlKCcvcGFyZW50L2EvYi9iJykK
KyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KCdhL2IvYScpCisgICAgcGFyZW50LmdldEZpbGUoJ2Ev
Yi9iJykKKworICAgIHByaW50KCcqIFRyeWluZyB0byBnZXQvY3JlYXRlIGVudHJpZXMgYXQgbm9u
LWV4aXN0ZW50IHBhdGgnKQorCisgICAgZGlyMS5nZXRGaWxlKCdub25leGlzdGVudCcpIHJhaXNl
cyA4CisgICAgZGlyMS5nZXREaXJlY3RvcnkoJ25vbmV4aXN0ZW50JykgcmFpc2VzIDgKKyAgICBk
aXIxLmdldEZpbGUoJ25vbmV4aXN0ZW50L2QnLCBjcmVhdGVfZmxhZykgcmFpc2VzIDgKKyAgICBk
aXIxLmdldERpcmVjdG9yeSgnbm9uZXhpc3RlbnQvZCcsIGNyZWF0ZV9mbGFnKSByYWlzZXMgOAor
CisgICAgcHJpbnQoJyogQ2FsbGluZyBnZXRGaWxlIGZvciBhIGRpcmVjdG9yeSwgZ2V0RGlyZWN0
b3J5IGZvciBhIGZpbGUnKQorCisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBkaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5
KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlID0gcGFyZW50LmdldEZpbGUobmFtZTMsIGNy
ZWF0ZV9mbGFnKQorCisgICAgUk9PVC5nZXREaXJlY3RvcnkoZmlsZS5mdWxsUGF0aCkgcmFpc2Vz
IDExCisgICAgUk9PVC5nZXRGaWxlKGRpci5mdWxsUGF0aCkgcmFpc2VzIDExCisgICAgcGFyZW50
LmdldERpcmVjdG9yeShmaWxlLm5hbWUpIHJhaXNlcyAxMQorICAgIHBhcmVudC5nZXRGaWxlKGRp
ci5uYW1lKSByYWlzZXMgMTEKKworICAgIHByaW50KCcqIFRyeWluZyB0byBjcmVhdGUgZW50cmll
cyB3aXRoIGV4Y2x1c2l2ZSBmbGFnJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09U
LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyID0gcGFyZW50LmdldERp
cmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZSA9IHBhcmVudC5nZXRGaWxlKG5h
bWUzLCBjcmVhdGVfZmxhZykKKworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpci5mdWxsUGF0aCwg
ZXhjbHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZShmaWxlLmZ1bGxQYXRo
LCBleGNsdXNpdmVfZmxhZykgcmFpc2VzIDEzCisgICAgcGFyZW50LmdldERpcmVjdG9yeShkaXIu
bmFtZSwgZXhjbHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworICAgIHBhcmVudC5nZXRGaWxlKGZpbGUu
bmFtZSwgZXhjbHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworCisgICAgZGlyLnJlbW92ZSgpCisgICAg
ZmlsZS5yZW1vdmUoKQorCisgICAgIyBOb3cgdGhpcyBzaG91bGQgc3VjY2VlZC4KKyAgICBST09U
LmdldERpcmVjdG9yeShkaXIuZnVsbFBhdGgsIGV4Y2x1c2l2ZV9mbGFnKQorICAgIFJPT1QuZ2V0
RmlsZShmaWxlLmZ1bGxQYXRoLCBleGNsdXNpdmVfZmxhZykKKworICAgIGRpci5yZW1vdmUoKQor
ICAgIGZpbGUucmVtb3ZlKCkKKworICAgICMgTm93IHRoaXMgc2hvdWxkIHN1Y2NlZWQuCisgICAg
cGFyZW50LmdldERpcmVjdG9yeShkaXIubmFtZSwgZXhjbHVzaXZlX2ZsYWcpCisgICAgcGFyZW50
LmdldEZpbGUoZmlsZS5uYW1lLCBleGNsdXNpdmVfZmxhZykKKworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9v
cC1nZXQtbWV0YWRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLWdldC1tZXRhZGF0YS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUwYTI1ODYxNTQ1NmJj
NTY3NGYxOTI1MGZiNGRiMWU1MDQ4NDkyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjAgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIFN1Y2NlZWRl
ZDogICAgIHN0YXJ0ID0gUk9PVC5nZXRNZXRhZGF0YSgpOworUmVzZXRpbmcgdGhlIGZpbGVzeXN0
ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUx
LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZTIgPSBST09ULmdldEZpbGUo
bmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxX2ZpbGUxID0gZGly
MS5nZXRGaWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMV9k
aXIyID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorKiBHZXQgbWV0YWRh
dGEgZm9yIGRpcmVjdG9yaWVzCitQQVNTIFN1Y2NlZWRlZDogICAgIG1ldGFkYXRhID0gZGlyMS5n
ZXRNZXRhZGF0YSgpCitQQVNTIFN1Y2NlZWRlZDogICAgIG1ldGFkYXRhID0gZGlyMV9kaXIyLmdl
dE1ldGFkYXRhKCkKKyogR2V0IG1ldGFkYXRhIGZvciBmaWxlcworUEFTUyBTdWNjZWVkZWQ6ICAg
ICBtZXRhZGF0YSA9IGZpbGUyLmdldE1ldGFkYXRhKCkKK1BBU1MgU3VjY2VlZGVkOiAgICAgbWV0
YWRhdGEgPSBkaXIxX2ZpbGUxLmdldE1ldGFkYXRhKCkKK1BBU1MgU3VjY2VlZGVkOiAgICAgZW5k
ID0gZGlyMV9maWxlMS5nZXRNZXRhZGF0YSgpCitQQVNTICJbb2JqZWN0IE1ldGFkYXRhXSIgaXMg
Pj0gIltvYmplY3QgTWV0YWRhdGFdIgorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGU0MmJjNTczM2E5NzRjNDE1NzJkMTdkMjAwNjY2YTcxNzQyNzY0OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEuaHRtbApAQCAt
MCwwICsxLDQwIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Zz
LXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1z
aGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIHN0YXJ0ID0gUk9PVC5n
ZXRNZXRhZGF0YSgpOworICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIg
PSAnYicKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIGRpcjEgPSBST09U
LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBST09ULmdldEZp
bGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZmlsZTEgPSBkaXIxLmdldEZpbGUobmFt
ZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUy
LCBjcmVhdGVfZmxhZykKKworICAgIHByaW50KCcqIEdldCBtZXRhZGF0YSBmb3IgZGlyZWN0b3Jp
ZXMnKQorICAgIG1ldGFkYXRhID0gZGlyMS5nZXRNZXRhZGF0YSgpCisgICAgbWV0YWRhdGEgPSBk
aXIxX2RpcjIuZ2V0TWV0YWRhdGEoKQorCisgICAgcHJpbnQoJyogR2V0IG1ldGFkYXRhIGZvciBm
aWxlcycpCisgICAgbWV0YWRhdGEgPSBmaWxlMi5nZXRNZXRhZGF0YSgpCisgICAgbWV0YWRhdGEg
PSBkaXIxX2ZpbGUxLmdldE1ldGFkYXRhKCkKKworICAgICMgTWFrZSBzdXJlIHdlIGdldCB0aGUg
bmV3ZXIgdGltZXN0YW1wLgorICAgIGVuZCA9IGRpcjFfZmlsZTEuZ2V0TWV0YWRhdGEoKQorICAg
IEFTU0VSVF9HRShlbmQsIHN0YXJ0KQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NzUzNDY3Y2JhMjE0MTk5NzI1YjI3ZTUxZmU3YzI3
Y2JiYjIzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
b3AtZ2V0LXBhcmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorR290IEZpbGVTeXN0
ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KKyogR2V0dGluZyBhIHBhcmVudCBvZiBlbnRyaWVzLgor
UmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMSA9IFJP
T1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAg
ZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZmlsZTMgPSBkaXIyLmdldEZpbGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorUEFTUyBT
dWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBmaWxlMy5nZXRQYXJlbnQoKQorUEFTUyB0aGlzLnZhcnNb
ImRpcjIiXVsiZnVsbFBhdGgiXSBpcyB0aGlzLnZhcnNbInBhcmVudCJdWyJmdWxsUGF0aCJdCitQ
QVNTIFN1Y2NlZWRlZDogICAgIHBhcmVudCA9IGRpcjIuZ2V0UGFyZW50KCkKK1BBU1MgdGhpcy52
YXJzWyJkaXIxIl1bImZ1bGxQYXRoIl0gaXMgdGhpcy52YXJzWyJwYXJlbnQiXVsiZnVsbFBhdGgi
XQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBkaXIxLmdldFBhcmVudCgpCitQQVNTIHRo
aXMudmFyc1siUk9PVCJdWyJmdWxsUGF0aCJdIGlzIHRoaXMudmFyc1sicGFyZW50Il1bImZ1bGxQ
YXRoIl0KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXRQYXJlbnQoKQorUEFT
UyB0aGlzLnZhcnNbIlJPT1QiXVsiZnVsbFBhdGgiXSBpcyB0aGlzLnZhcnNbInBhcmVudCJdWyJm
dWxsUGF0aCJdCitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzOWE2NGE4MTFhN2I0Y2Iw
ZjUyM2IxNTRjYTA2Zjc2MjdkNmQ4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCB0eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0
ZW0tdGVzdC1zY3JpcHQiPgorCisgICAgbmFtZTEgPSAnYScKKyAgICBuYW1lMiA9ICdiJworICAg
IG5hbWUzID0gJ2MnCisKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIHBy
aW50KCcqIEdldHRpbmcgYSBwYXJlbnQgb2YgZW50cmllcy4nKQorCisgICAgcmVzZXQoKQorICAg
IGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyMiA9
IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMyA9IGRpcjIu
Z2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisKKyAgICBwYXJlbnQgPSBmaWxlMy5nZXRQYXJl
bnQoKQorICAgIEFTU0VSVF9FUShwYXJlbnQuZnVsbFBhdGgsIGRpcjIuZnVsbFBhdGgpCisKKyAg
ICBwYXJlbnQgPSBkaXIyLmdldFBhcmVudCgpCisgICAgQVNTRVJUX0VRKHBhcmVudC5mdWxsUGF0
aCwgZGlyMS5mdWxsUGF0aCkKKworICAgIHBhcmVudCA9IGRpcjEuZ2V0UGFyZW50KCkKKyAgICBB
U1NFUlRfRVEocGFyZW50LmZ1bGxQYXRoLCBST09ULmZ1bGxQYXRoKQorCisgICAgcGFyZW50ID0g
Uk9PVC5nZXRQYXJlbnQoKQorICAgIEFTU0VSVF9FUShwYXJlbnQuZnVsbFBhdGgsIFJPT1QuZnVs
bFBhdGgpCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxs
LXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE3NDk2YjQ3NWZiNzM0MGI5ODk5MThhMjM5ODAzZDAxMjk2YTk0OTIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw4MiBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0
aW5nIHRoZSBmaWxlc3lzdGVtLi4uCisqIE1vdmluZyBhbiBlbnRyeSB0byB0aGUgc2FtZSBkaXJl
Y3RvcnkKK1Jlc2V0aW5nIHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIHBh
cmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFn
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUyLCBjcmVh
dGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBkaXIxLm1vdmVUbyhwYXJlbnQs
IG5hbWUzKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorUEFTUyBTdWNjZWVk
ZWQ6ICAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBt
b3ZlZCA9IGZpbGUyLm1vdmVUbyhwYXJlbnQsIG5hbWU0KQorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlIGlzICI4IgorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5h
bWUzKQorKiBNb3ZpbmcgZW50cmllcyB0byBhIGRpZmZlcmVudCBkaXJlY3RvcnkKK1Jlc2V0aW5n
IHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEgPSBST09ULmdldERp
cmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBS
T09ULmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAg
IGNoaWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgY2hpbGQ0ID0gZGlyMS5nZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKK1BB
U1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBjaGlsZDMubW92ZVRvKGRpcjIsIG5hbWUxKQorUEFT
UyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIy
LmdldERpcmVjdG9yeShuYW1lMSkKK1BBU1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBjaGlsZDQu
bW92ZVRvKGRpcjIsIG5hbWUyKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4Igor
UEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdldEZpbGUobmFtZTIpCisqIE1vdmluZyBlbnRyaWVz
IHRvIHdpdGggZW1wdHkgbmFtZXMKK1Jlc2V0aW5nIHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1
Y2NlZWRlZDogICAgIGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcp
CitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBST09ULmdldERpcmVjdG9yeShuYW1lMiwgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNoaWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5
KG5hbWUzLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgY2hpbGQ0ID0gZGlyMS5n
ZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBj
aGlsZDMubW92ZVRvKGRpcjIsIG51bGwpCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMg
IjgiCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBtb3ZlZCA9IGNoaWxkNC5tb3ZlVG8oZGlyMiwgbnVsbCkKK1BB
U1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGly
Mi5nZXRGaWxlKGNoaWxkNC5uYW1lKQorKiBNb3ZpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJl
Y3Rvcnkgd2l0aCB0aGUgc2FtZSBuYW1lCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFT
UyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5
KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZTIgPSBwYXJlbnQu
Z2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUg
aXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5l
eHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMg
IjEzIgorKiBUcnlpbmcgdG8gbW92ZSBub24tZXhpc3RlbnQgZW50cmllcworUEFTUyBTdWNjZWVk
ZWQ6ICAgICBub25leGlzdF9kaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVf
ZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbm9uZXhpc3RfZmlsZSA9IHBhcmVudC5nZXRGaWxl
KG5hbWU0LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbm9uZXhpc3RfZGlyLnJl
bW92ZSgpCitQQVNTIFN1Y2NlZWRlZDogICAgIG5vbmV4aXN0X2ZpbGUucmVtb3ZlKCkKK1BBU1Mg
dGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29k
ZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5l
eHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKKyogTW92aW5nIGVudHJpZXMgdG8gYSBub24tZXhpc3Rl
bnQgZGlyZWN0b3J5CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIFN1
Y2NlZWRlZDogICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpcjEuZnVsbFBhdGgpCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIFJPT1QuZ2V0RmlsZShmaWxlMi5mdWxsUGF0aCkKK1BBU1MgdGhpcy5leHBlY3Rl
ZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKKyog
TW92aW5nIGVudHJpZXMgdG8gaXRzIGNoaWxkCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUg
aXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKKyogTW92aW5nIGEg
ZGlyZWN0b3J5IHdpdGggY2hpbGRyZW4KK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyNCA9IHBhcmVu
dC5nZXREaXJlY3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBj
aGlsZDEgPSBkaXI0LmdldEZpbGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6
ICAgICBjaGlsZDIgPSBkaXI0LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNT
IFN1Y2NlZWRlZDogICAgIGNoaWxkMyA9IGNoaWxkMi5nZXRGaWxlKG5hbWUzLCBjcmVhdGVfZmxh
ZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgY2hpbGQ0ID0gY2hpbGQyLmdldERpcmVjdG9yeShuYW1l
NCwgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZW50cmllczEiXVsibGVuZ3RoIl0gaXMg
MgorUEFTUyB0aGlzLnZhcnNbImVudHJpZXMyIl1bImxlbmd0aCJdIGlzIDIKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZGlyNF9uZXcgPSBkaXI0Lm1vdmVUbyhST09ULCAnZGlyNF9uZXcnKQorUEFTUyBT
dWNjZWVkZWQ6ICAgICBjaGlsZDJfbmV3ID0gZGlyNF9uZXcuZ2V0RGlyZWN0b3J5KG5hbWUyKQor
UEFTUyB0aGlzLnZhcnNbImVudHJpZXMxX25ldyJdWyJsZW5ndGgiXSBpcyAyCitQQVNTIHRoaXMu
dmFyc1siZW50cmllczJfbmV3Il1bImxlbmd0aCJdIGlzIDIKK1BBU1MgdGhpcy5leHBlY3RlZEVy
cm9yQ29kZSBpcyAiOCIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9vcC1tb3ZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY1NWI0NTczMzQxNmVkYTlhYjc2MGMy
ZDExOWM2NjM0OTc3NDUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9vcC1tb3ZlLmh0bWwKQEAgLTAsMCArMSwxNDIgQEAKKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBs
aWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3Jp
cHQiPgorICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAg
ICBuYW1lMyA9ICdjJworICAgIG5hbWU0ID0gJ2QnCisgICAgY3JlYXRlX2ZsYWcgPSB7Y3JlYXRl
OnRydWV9CisKKyAgICBwcmludCgnKiBNb3ZpbmcgYW4gZW50cnkgdG8gdGhlIHNhbWUgZGlyZWN0
b3J5JykKKworICAgICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXRE
aXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5h
bWUyLCBjcmVhdGVfZmxhZykKKworICAgICMgRGlyZWN0b3J5CisgICAgbW92ZWQgPSBkaXIxLm1v
dmVUbyhwYXJlbnQsIG5hbWUzKQorICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpIHJhaXNl
cyA4CisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMykKKworICAgICMgRmlsZQorICAgIG1v
dmVkID0gZmlsZTIubW92ZVRvKHBhcmVudCwgbmFtZTQpCisgICAgcGFyZW50LmdldERpcmVjdG9y
eShuYW1lMSkgcmFpc2VzIDgKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAg
cHJpbnQoJyogTW92aW5nIGVudHJpZXMgdG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5JykKKworICAg
ICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUx
LCBjcmVhdGVfZmxhZykKKyAgICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0
ZV9mbGFnKQorICAgIGNoaWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxh
ZykKKyAgICBjaGlsZDQgPSBkaXIxLmdldEZpbGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAg
IyBEaXJlY3RvcnkKKyAgICBtb3ZlZCA9IGNoaWxkMy5tb3ZlVG8oZGlyMiwgbmFtZTEpCisgICAg
ZGlyMS5nZXREaXJlY3RvcnkobmFtZTMpIHJhaXNlcyA4CisgICAgZGlyMi5nZXREaXJlY3Rvcnko
bmFtZTEpCisKKyAgICAjIEZpbGUKKyAgICBtb3ZlZCA9IGNoaWxkNC5tb3ZlVG8oZGlyMiwgbmFt
ZTIpCisgICAgZGlyMS5nZXRGaWxlKG5hbWU0KSByYWlzZXMgOAorICAgIGRpcjIuZ2V0RmlsZShu
YW1lMikKKworICAgIHByaW50KCcqIE1vdmluZyBlbnRyaWVzIHRvIHdpdGggZW1wdHkgbmFtZXMn
KQorCisgICAgIyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJlY3Rv
cnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIgPSBST09ULmdldERpcmVjdG9yeShuYW1l
MiwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQzID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTMsIGNy
ZWF0ZV9mbGFnKQorICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcp
CisKKyAgICAjIERpcmVjdG9yeQorICAgIG1vdmVkID0gY2hpbGQzLm1vdmVUbyhkaXIyLCBudWxs
KQorICAgIGRpcjEuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKSByYWlzZXMgOAorICAgIGRpcjIu
Z2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorCisgICAgIyBGaWxlCisgICAgbW92ZWQgPSBjaGls
ZDQubW92ZVRvKGRpcjIsIG51bGwpCisgICAgZGlyMS5nZXRGaWxlKGNoaWxkNC5uYW1lKSByYWlz
ZXMgOAorICAgIGRpcjIuZ2V0RmlsZShjaGlsZDQubmFtZSkKKworICAgIHByaW50KCcqIE1vdmlu
ZyBlbnRyaWVzIHRvIHRoZSBzYW1lIGRpcmVjdG9yeSB3aXRoIHRoZSBzYW1lIG5hbWUnKQorCisg
ICAgIyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgn
cGFyZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFt
ZTEsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0
ZV9mbGFnKQorCisgICAgZGlyMS5tb3ZlVG8ocGFyZW50LCBudWxsKSByYWlzZXMgMTMKKyAgICBk
aXIxLm1vdmVUbyhwYXJlbnQsIG5hbWUxKSByYWlzZXMgMTMKKyAgICBmaWxlMi5tb3ZlVG8ocGFy
ZW50LCBudWxsKSByYWlzZXMgMTMKKyAgICBmaWxlMi5tb3ZlVG8ocGFyZW50LCBuYW1lMikgcmFp
c2VzIDEzCisKKyAgICBwcmludCgnKiBUcnlpbmcgdG8gbW92ZSBub24tZXhpc3RlbnQgZW50cmll
cycpCisKKyAgICBub25leGlzdF9kaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVh
dGVfZmxhZykKKyAgICBub25leGlzdF9maWxlID0gcGFyZW50LmdldEZpbGUobmFtZTQsIGNyZWF0
ZV9mbGFnKQorICAgIG5vbmV4aXN0X2Rpci5yZW1vdmUoKQorICAgIG5vbmV4aXN0X2ZpbGUucmVt
b3ZlKCkKKworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KG5vbmV4aXN0X2Rpci5mdWxsUGF0aCkgcmFp
c2VzIDgKKyAgICBST09ULmdldEZpbGUobm9uZXhpc3RfZmlsZS5mdWxsUGF0aCkgcmFpc2VzIDgK
KworICAgIG5vbmV4aXN0X2Rpci5tb3ZlVG8oZGlyMSwgbmFtZTIpIHJhaXNlcyA4CisgICAgbm9u
ZXhpc3RfZmlsZS5tb3ZlVG8oZGlyMiwgbmFtZTEpIHJhaXNlcyA4CisKKyAgICBwcmludCgnKiBN
b3ZpbmcgZW50cmllcyB0byBhIG5vbi1leGlzdGVudCBkaXJlY3RvcnknKQorCisgICAgUk9PVC5n
ZXREaXJlY3Rvcnkobm9uZXhpc3RfZGlyLmZ1bGxQYXRoKSByYWlzZXMgOAorICAgIFJPT1QuZ2V0
RGlyZWN0b3J5KGRpcjEuZnVsbFBhdGgpCisgICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRo
KQorCisgICAgZGlyMS5tb3ZlVG8obm9uZXhpc3RfZGlyLCBuYW1lMSkgcmFpc2VzIDgKKyAgICBm
aWxlMi5tb3ZlVG8obm9uZXhpc3RfZGlyLCBuYW1lMykgcmFpc2VzIDgKKworICAgIHByaW50KCcq
IE1vdmluZyBlbnRyaWVzIHRvIGl0cyBjaGlsZCcpCisKKyAgICBST09ULm1vdmVUbyhkaXIxKSBy
YWlzZXMgMTMKKyAgICBwYXJlbnQubW92ZVRvKGRpcjEpIHJhaXNlcyAxMworCisgICAgcHJpbnQo
JyogTW92aW5nIGEgZGlyZWN0b3J5IHdpdGggY2hpbGRyZW4nKQorCisgICAgZGlyNCA9IHBhcmVu
dC5nZXREaXJlY3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMSA9IGRpcjQuZ2V0
RmlsZShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQyID0gZGlyNC5nZXREaXJlY3Rvcnko
bmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMyA9IGNoaWxkMi5nZXRGaWxlKG5hbWUzLCBj
cmVhdGVfZmxhZykKKyAgICBjaGlsZDQgPSBjaGlsZDIuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVh
dGVfZmxhZykKKworICAgIGVudHJpZXMxID0gZGlyNC5yZWFkRGlyZWN0b3J5KCkKKyAgICBlbnRy
aWVzMiA9IGNoaWxkMi5yZWFkRGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczEu
bGVuZ3RoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMi5sZW5ndGgpCisKKyAgICBkaXI0X25l
dyA9IGRpcjQubW92ZVRvKFJPT1QsICdkaXI0X25ldycpCisgICAgY2hpbGQyX25ldyA9IGRpcjRf
bmV3LmdldERpcmVjdG9yeShuYW1lMikKKworICAgIGVudHJpZXMxX25ldyA9IGRpcjRfbmV3LnJl
YWREaXJlY3RvcnkoKQorICAgIGVudHJpZXMyX25ldyA9IGNoaWxkMl9uZXcucmVhZERpcmVjdG9y
eSgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJpZXMxX25ldy5sZW5ndGgpCisgICAgQVNTRVJUX0VR
KDIsIGVudHJpZXMyX25ldy5sZW5ndGgpCisKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KGRpcjQu
ZnVsbFBhdGgpIHJhaXNlcyA4CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9m
cy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVhZC1kaXJlY3Rvcnkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0
b3J5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzYyZjBlY2EyOWRiZDkxZmM0M2ExZWFhMDEz
NzJlZWM5NWJiOWUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitHb3Qg
RmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0u
Li4KK1BBU1MgdGhpcy52YXJzWyJlbnRyaWVzIl1bImxlbmd0aCJdIGlzIDAKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFn
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBhID0gcGFyZW50LmdldERpcmVjdG9yeSgnYScsIGNyZWF0
ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBiID0gcGFyZW50LmdldERpcmVjdG9yeSgnYics
IGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjID0gcGFyZW50LmdldERpcmVjdG9y
eSgnYycsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkID0gcGFyZW50LmdldEZp
bGUoJ2QnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZSA9IHBhcmVudC5nZXRG
aWxlKCdlJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGYgPSBwYXJlbnQuZ2V0
RGlyZWN0b3J5KCdmJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGcgPSBwYXJl
bnQuZ2V0RmlsZSgnZycsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjLmdldEZp
bGUoJ2gnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgYy5nZXREaXJlY3Rvcnko
J2knLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZi5nZXRGaWxlKCdqJywgY3Jl
YXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZW50cmllcyJdWyJsZW5ndGgiXSBpcyAxCitQQVNT
IHRoaXMudmFyc1siZW50cmllcyJdWyJsZW5ndGgiXSBpcyA3CitbRU5UUlkge3BhdGg6L3BhcmVu
dC9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9iIG5hbWU6
YiB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9jIG5hbWU6YyB0eXBlOkRJ
UkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9kIG5hbWU6ZCB0eXBlOkZJTEV9LAorIEVO
VFJZIHtwYXRoOi9wYXJlbnQvZSBuYW1lOmUgdHlwZTpGSUxFfSwKKyBFTlRSWSB7cGF0aDovcGFy
ZW50L2YgbmFtZTpmIHR5cGU6RElSRUNUT1JZfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50L2cgbmFt
ZTpnIHR5cGU6RklMRX1dCitQQVNTIFN1Y2NlZWRlZDogICAgIGcucmVtb3ZlKCkKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgYi5yZW1vdmUoKQorUEFTUyB0aGlzLnZhcnNbImVudHJpZXMiXVsibGVuZ3Ro
Il0gaXMgNQorW0VOVFJZIHtwYXRoOi9wYXJlbnQvYSBuYW1lOmEgdHlwZTpESVJFQ1RPUll9LAor
IEVOVFJZIHtwYXRoOi9wYXJlbnQvYyBuYW1lOmMgdHlwZTpESVJFQ1RPUll9LAorIEVOVFJZIHtw
YXRoOi9wYXJlbnQvZCBuYW1lOmQgdHlwZTpGSUxFfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50L2Ug
bmFtZTplIHR5cGU6RklMRX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9mIG5hbWU6ZiB0eXBlOkRJ
UkVDVE9SWX1dCitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRpcmVjdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNmZDFlMTFm
ZWJiYzFkNzM4NjU4ZDYzZmIyNWYyNTlkY2Q4YjE0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRpcmVjdG9yeS5odG1sCkBAIC0wLDAgKzEs
NTQgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMt
dGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1z
aGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBp
ZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorCisgICAgbmFtZTEgPSAnYScKKyAgICBuYW1l
MiA9ICdiJworICAgIG5hbWUzID0gJ2MnCisgICAgbmFtZTQgPSAnZCcKKworICAgIGNyZWF0ZV9m
bGFnID0ge2NyZWF0ZTp0cnVlfQorCisgICAgcmVzZXQoKQorCisgICAgZW50cmllcyA9IFJPT1Qu
cmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDAsIGVudHJpZXMubGVuZ3RoKQorCisgICAg
cGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGEg
PSBwYXJlbnQuZ2V0RGlyZWN0b3J5KCdhJywgY3JlYXRlX2ZsYWcpCisgICAgYiA9IHBhcmVudC5n
ZXREaXJlY3RvcnkoJ2InLCBjcmVhdGVfZmxhZykKKyAgICBjID0gcGFyZW50LmdldERpcmVjdG9y
eSgnYycsIGNyZWF0ZV9mbGFnKQorICAgIGQgPSBwYXJlbnQuZ2V0RmlsZSgnZCcsIGNyZWF0ZV9m
bGFnKQorICAgIGUgPSBwYXJlbnQuZ2V0RmlsZSgnZScsIGNyZWF0ZV9mbGFnKQorICAgIGYgPSBw
YXJlbnQuZ2V0RGlyZWN0b3J5KCdmJywgY3JlYXRlX2ZsYWcpCisgICAgZyA9IHBhcmVudC5nZXRG
aWxlKCdnJywgY3JlYXRlX2ZsYWcpCisKKyAgICBjLmdldEZpbGUoJ2gnLCBjcmVhdGVfZmxhZykK
KyAgICBjLmdldERpcmVjdG9yeSgnaScsIGNyZWF0ZV9mbGFnKQorICAgIGYuZ2V0RmlsZSgnaics
IGNyZWF0ZV9mbGFnKQorCisgICAgZW50cmllcyA9IFJPT1QucmVhZERpcmVjdG9yeSgpCisgICAg
QVNTRVJUX0VRKDEsIGVudHJpZXMubGVuZ3RoKQorCisgICAgZW50cmllcyA9IHBhcmVudC5yZWFk
RGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoNywgZW50cmllcy5sZW5ndGgpCisgICAgcHJpbnQo
ZW50cmllcykKKworICAgIGcucmVtb3ZlKCkKKyAgICBiLnJlbW92ZSgpCisgICAgZW50cmllcyA9
IHBhcmVudC5yZWFkRGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoNSwgZW50cmllcy5sZW5ndGgp
CisgICAgcHJpbnQoZW50cmllcykKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmJmYjJkNjYwNjU0NzY0OGRjZjk3NzYxNDFkNzdiNWIxYWVhNmU2Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxG
aWxlU3lzdGVtCisqIFJlbW92aW5nIGZpbGVzIGFuZCBkaXJlY3RvcmllcworUmVzZXRpbmcgdGhl
IGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJl
Y3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0g
cGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDog
ICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorUEFTUyBTdWNjZWVkZWQ6ICAg
ICBwYXJlbnQuZ2V0RmlsZShuYW1lMikKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMS5yZW1vdmUo
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlMi5yZW1vdmUoKQorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlIGlzICI4IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorKiBS
ZW1vdmluZyBub24tZXhpc3RlbnQgZmlsZSBvciBkaXJlY3RvcnkKK1BBU1MgdGhpcy5leHBlY3Rl
ZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKKyog
UmVtb3ZpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbgorUmVzZXRpbmcgdGhlIGZpbGVzeXN0
ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3Bh
cmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50Lmdl
dERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUy
ID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlIGlzICIxMyIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMDcyYjRjMzIyNWIxMzI0
MTdhMDAyMzI5YWM1NWViYWEwMjQyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5
cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJmaWxlLXN5c3RlbS10
ZXN0LXNjcmlwdCI+CisKKyAgICBuYW1lMSA9ICdhJworICAgIG5hbWUyID0gJ2InCisKKyAgICBj
cmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIHByaW50KCcqIFJlbW92aW5nIGZpbGVz
IGFuZCBkaXJlY3RvcmllcycpCisKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXRE
aXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5h
bWUyLCBjcmVhdGVfZmxhZykKKworICAgICMgTWFrZSBzdXJlIHRoZSBlbnRyaWVzIGV4aXN0Cisg
ICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkKKyAgICBwYXJlbnQuZ2V0RmlsZShuYW1lMikK
KworICAgIGRpcjEucmVtb3ZlKCkKKyAgICBmaWxlMi5yZW1vdmUoKQorCisgICAgIyBOb3cgdGhl
eSBzaG91bGQgYmUgZ29uZSBhd2F5CisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkgcmFp
c2VzIDgKKyAgICBwYXJlbnQuZ2V0RmlsZShuYW1lMikgcmFpc2VzIDgKKworICAgIHByaW50KCcq
IFJlbW92aW5nIG5vbi1leGlzdGVudCBmaWxlIG9yIGRpcmVjdG9yeScpCisKKyAgICBkaXIxLnJl
bW92ZSgpIHJhaXNlcyA4CisgICAgZmlsZTIucmVtb3ZlKCkgcmFpc2VzIDgKKworICAgIHByaW50
KCcqIFJlbW92aW5nIGEgZGlyZWN0b3J5IHdpdGggY2hpbGRyZW4nKQorCisgICAgcmVzZXQoKQor
ICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAg
ICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmls
ZTIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBwYXJlbnQucmVt
b3ZlKCkgcmFpc2VzIDEzCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10
ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRpb25z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVy
YXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGFjYWU3MTE1NmEzODZkMDAzNDk1ODAy
YTAzNGNjZTFkZWQyOTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAK
K1Rlc3QgbWFraW5nIG11bHRpcGxlIEZpbGVTeXN0ZW0gb3BlcmF0aW9ucyBpbiBwYXJhbGxlbC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0dvdCBGaWxlU3lzdGVtOlRlc3RTaGVs
bEZpbGVTeXN0ZW0KK3JlcXVlc3RlZCBGaWxlU3lzdGVtLgorU3RhcnRpbmcgcGFyYWxsZWwgdGVz
dCBzdGFnZSAxLgorU3RhcnRpbmcgcGFyYWxsZWwgdGVzdCBzdGFnZSAyLgorVmVyaWZ5aW5nIHRo
ZSBGaWxlU3lzdGVtIHN0YXR1cy4KK1BBU1MgIi9hLC9iMiwvYywvZCwvZSIgaXMgIi9hLC9iMiwv
YywvZCwvZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcGFyYWxsZWwtb3Bl
cmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFsbGVsLW9wZXJh
dGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjQ1NjkyOGYyM2RiY2YyM2I1NDAzMTIzYzI0NTA3ZGIy
ZTczOWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Bh
cmFsbGVsLW9wZXJhdGlvbnMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BhcmFsbGVsLW9wZXJhdGlv
bnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0
ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmRiNTM5M2FmYzAxYTE5Yzc1MGM1YzUyNGE5
MTNkNjZhNGJkZTkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MiBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBm
aWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdhYScs
IHtjcmVhdGU6dHJ1ZX0pOworU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK0dvdCBGaWxlU3lz
dGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHRoaXMudmFyc1siZW50cmllcyJdWyJsZW5n
dGgiXSBpcyAxCitQQVNTIHRoaXMudmFyc1siZW50cnkiXVsiZnVsbFBhdGgiXSBpcyAnL2FhJwor
U2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
eXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODEzODEwZjlhYTQ2YmVlZmI3Mjc1MjMxMDc3MGQxZThiNDM5YjlhMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3Rl
bnQuaHRtbApAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1z
eXN0ZW0tdGVzdC1zaGVsbCIgaWQ9InNjcmlwdDEiPgorICAgIHJlc2V0KCk7CisgICAgUk9PVC5n
ZXREaXJlY3RvcnkoJ2FhJywge2NyZWF0ZTp0cnVlfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0iYXBwbGljYXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9InNjcmlwdDIiPgorICAg
ICMgU2VlIGlmIHdlIGdldCB0aGUgc2FtZSBmaWxlIHN5c3RlbS4KKyAgICBlbnRyaWVzID0gUk9P
VC5yZWFkRGlyZWN0b3J5KCk7CisgICAgZW50cnkgPSBlbnRyaWVzWzBdCisgICAgQVNTRVJUX0VR
KDEsIGVudHJpZXMubGVuZ3RoKTsKKyAgICBBU1NFUlRfRVEoJy9hYScsIGVudHJ5LmZ1bGxQYXRo
KTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blNlY29uZFRlc3QoKSB7CisgICAg
dmFyIHNoZWxsID0gbmV3IEZpbGVTeXN0ZW1UZXN0U2hlbGwoUEVSU0lTVEVOVCwgMTAwLCBkZWJ1
ZywgZnVuY3Rpb24oKXsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CisgICAgc2hl
bGwucnVuU2NyaXB0cygnc2NyaXB0MicpOworfQorCitpZiAod2luZG93LnJlcXVlc3RGaWxlU3lz
dGVtKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHZhciBzaGVsbCA9
IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFBFUlNJU1RFTlQsIDEwMCwgZGVidWcsIHJ1blNlY29u
ZFRlc3QpOworICAgIHNoZWxsLnJ1blNjcmlwdHMoJ3NjcmlwdDEnKTsKK30gZWxzZQorICAgIGRl
YnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKword2lu
ZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3
aWNlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
cmVxdWVzdC1mcy10d2ljZS10ZW1wb3JhcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZGI1
MzkzYWZjMDFhMTljNzUwYzVjNTI0YTkxM2Q2NmE0YmRlOTAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS10ZW1wb3JhcnktZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxl
U3lzdGVtCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBS
T09ULmdldERpcmVjdG9yeSgnYWEnLCB7Y3JlYXRlOnRydWV9KTsKK1NjcmlwdCBleGVjdXRpb24g
ZmluaXNoZWQuCitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorUEFTUyB0aGlz
LnZhcnNbImVudHJpZXMiXVsibGVuZ3RoIl0gaXMgMQorUEFTUyB0aGlzLnZhcnNbImVudHJ5Il1b
ImZ1bGxQYXRoIl0gaXMgJy9hYScKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS10ZW1wb3Jh
cnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yY2EyYTYwZDZlM2IzZTUwN2I3MmI2MzQwMzQwMmExYWFjM2Yz
MTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVl
c3QtZnMtdHdpY2UtdGVtcG9yYXJ5Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9
ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJzY3JpcHQxIj4KKyAgICBy
ZXNldCgpOworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdhYScsIHtjcmVhdGU6dHJ1ZX0pOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwi
IGlkPSJzY3JpcHQyIj4KKyAgICAjIFNlZSBpZiB3ZSBnZXQgdGhlIHNhbWUgZmlsZSBzeXN0ZW0u
CisgICAgZW50cmllcyA9IFJPT1QucmVhZERpcmVjdG9yeSgpOworICAgIGVudHJ5ID0gZW50cmll
c1swXQorICAgIEFTU0VSVF9FUSgxLCBlbnRyaWVzLmxlbmd0aCk7CisgICAgQVNTRVJUX0VRKCcv
YWEnLCBlbnRyeS5mdWxsUGF0aCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5T
ZWNvbmRUZXN0KCkgeworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFRF
TVBPUkFSWSwgMTAwLCBkZWJ1ZywgZnVuY3Rpb24oKXsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfSk7CisgICAgc2hlbGwucnVuU2NyaXB0cygnc2NyaXB0MicpOworfQorCitpZiAod2lu
ZG93LnJlcXVlc3RGaWxlU3lzdGVtKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFRFTVBPUkFSWSwgMTAw
LCBkZWJ1ZywgcnVuU2Vjb25kVGVzdCk7CisgICAgc2hlbGwucnVuU2NyaXB0cygnc2NyaXB0MScp
OworfSBlbHNlCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBGaWxlU3lzdGVtIEFQSSBz
dXBwb3J0LiIpOworCit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTgyOTdjNjM3NDFmZjVkOTExZWMyYzZiOWY5MmQ1ZmZiYzY3YmNiMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1z
aGVsbC10ZW1wb3JhcnkuanMKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gZW5kVGVzdCgpIHsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkg
eworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB2YXIgc2hlbGwgPSBuZXcg
RmlsZVN5c3RlbVRlc3RTaGVsbChURU1QT1JBUlksIDEwMCwgZGVidWcsIGVuZFRlc3QpOworICAg
IHNoZWxsLnJ1blNjcmlwdHMoJ2ZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Jyk7Cit9IGVsc2UKKyAg
ICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVTeXN0ZW0gQVBJIHN1cHBvcnQuIik7CisK
K3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc1MDlmYTNjY2EzNjkzNWE2NWIzNmJjYWQ4MzQwMmNlMWQ4OTI5YWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwu
anMKQEAgLTAsMCArMSwzNzggQEAKKy8qCisgICBBdmFpbGFibGUgdmFyaWFibGVzIGFuZCBmdW5j
dGlvbnM6CisgICAgIDxlbnRyeT4uPGVudHJ5TWV0aG9kPiguLi4pIFtyYWlzZSA8Y29kZT5dCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uIENhbGxzIHRoZSBlbnRyeSBtZXRob2Qg
c3luY2hyb25vdXNseS4gSXQgZG9lcyBub3QgZXJyb3Igb3V0IGlmICJyYWlzZSA8Y29kZT4iIGlz
IGdpdmVuIGFuZCBpdCBoYXMgdGhyb3duIHRoZSBlcnJvciBjb2RlIDxjb2RlPi4KKyAgICAgcmVz
ZXQoKSAgICAgICAgICAgICAgICAgICAuLi4gUmVtb3ZlcyBhbGwgZW50cmllcyBpbiB0aGUgZmls
ZSBzeXN0ZW0uCisgICAgIHByaW50KDxhcmc+KSAgICAgICAgICAgICAgLi4uIFByaW50cyBvdXQg
dGhlIGdpdmVuIGFyZy4KKyAgICAgQVNTRVJUX0VRKDxhcmcxPiwgPGFyZzI+KSAuLi4gQXNzZXJ0
cyB0aGF0IDxhcmcxPiBhbmQgPGFyZzI+IGFyZSBlcXVhbC4KKyAgICAgQVNTRVJUX0dFKDxhcmcx
PiwgPGFyZzI+KSAuLi4gQXNzZXJ0cyB0aGF0IDxhcmcxPiBpcyBncmVhdGVyIHRoYW4gb3IgZXF1
YWxzIHRvIDxhcmcyPi4KKyAgICAgUk9PVCAgICAgICAgICAgICAgICAgICAgICAuLi4gVGhlIGZp
bGUgc3lzdGVtJ3Mgcm9vdCBlbnRyeS4KKworICAgRXhhbXBsZToKKyAgICAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgPGRpdiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorICAgIHJlc2V0KCkK
KworICAgICMgY29tbWVudAorICAgIGVudHJ5MSA9IFJPT1QuZ2V0RmlsZSgnZm9vL2EudHh0JykK
KyAgICBlbnRyeTIgPSBST09ULmdldERpcmVjdG9yeSgnZm9vL2JhcicsIHtDUkVBVEU6dHJ1ZX0p
CisgICAgZW50cnkzID0gUk9PVC5nZXRGaWxlKCdmb28vbm9uZXhpc3RlbnQnKSByYWlzZXMgOAor
ICAgIGVudHJpZXMgPSBST09ULnJlYWREaXJlY3RvcnkoKQorICAgIHByaW50KGVudHJpZXMpCisg
ICAgZW50cnkxLmNvcHlUbyhlbnRyeTIsICdiLnR4dCcpCisgICAgbWV0YWRhdGEgPSBlbnRyeTEu
Z2V0TWV0YWRhdGEoKQorICAgIHByaW50KG1ldGFkYXRhKQorICAgIEFTU0VSVF9HVChtZXRhZGF0
YSwgMCkKKyAgICA8L2Rpdj4KKworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNo
ZWxsKFRFTVBPUkFSWSwgMTAwKTsKKyAgICBzaGVsbC5ydW5TY3JpcHRzKCJmaWxlLXN5c3RlbS10
ZXN0LXNjcmlwdCIpOworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCit2YXIgRmlsZVN5c3Rl
bVRlc3RTaGVsbCA9IGZ1bmN0aW9uKHR5cGUsIHNpemUsIG9wdF9sb2dGdW5jLCBvcHRfZW5kVGVz
dENhbGxiYWNrKQoreworICAgIHRoaXMuZmlsZVN5c3RlbSA9IG51bGw7CisgICAgdGhpcy5maWxl
U3lzdGVtVHlwZSA9IHR5cGU7CisgICAgdGhpcy5maWxlU3lzdGVtU2l6ZSA9IHNpemU7CisKKyAg
ICB0aGlzLmxvZyA9IG9wdF9sb2dGdW5jOworICAgIHRoaXMuZW5kVGVzdENhbGxiYWNrID0gb3B0
X2VuZFRlc3RDYWxsYmFjazsKKworICAgIHRoaXMubGluZXMgPSBbXTsKKyAgICB0aGlzLmxpbmVD
b3VudGVyID0gLTE7CisgICAgdGhpcy5zdGF0ZW1lbnQgPSAnJzsKKyAgICB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlID0gMDsKKyAgICB0aGlzLmRlc3RpbmF0aW9uU3ltYm9sID0gbnVsbDsKKyAgICB0
aGlzLmRpcmVjdG9yeVJlYWRlciA9IG51bGw7CisKKyAgICB0aGlzLnZhcnMgPSB7ICd0cnVlJzog
dHJ1ZSwgJ2ZhbHNlJzogZmFsc2UgfTsKKyAgICB0aGlzLmFyZ1N5bWJvbHMgPSBbXTsKKworICAg
IHRoaXMucnVuU2NyaXB0cyA9IGZ1bmN0aW9uKGVsZW1lbnRJZCkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy5lbmRUZXN0Q2FsbGJhY2spCisgICAgICAgICAgICB0aGlzLmVuZFRlc3RDYWxsYmFj
ayA9IGZ1bmN0aW9uKCkgeyB9OworCisgICAgICAgIGlmICghdGhpcy5sb2cpCisgICAgICAgICAg
ICB0aGlzLmxvZyA9IHRoaXMuZGVmYXVsdExvZ0Z1bmM7CisKKyAgICAgICAgdmFyIGVsZW0gPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICBpZiAoIWVsZW0pIHsK
KyAgICAgICAgICAgIHRoaXMuZXJyb3IoJ0VsZW1lbnQgbm90IGZvdW5kOiAnICsgZWxlbWVudElk
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmxpbmVzID0g
ZWxlbS5pbm5lckhUTUwuc3BsaXQoL1xyP1xuKy8pOworICAgICAgICBpZiAoIXRoaXMubGluZXMu
bGVuZ3RoKSB7CisgICAgICAgICAgICB0aGlzLmVycm9yKCJObyBzY3JpcHRzIHRvIHJ1biEiKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMubGluZUNvdW50
ZXIgPSAwOworICAgICAgICByZXF1ZXN0RmlsZVN5c3RlbSh0aGlzLmZpbGVTeXN0ZW1UeXBlLCB0
aGlzLmZpbGVTeXN0ZW1TaXplLCB0aGlzLmJpbmQodGhpcy5maWxlU3lzdGVtQ2FsbGJhY2spLCB0
aGlzLmJpbmQodGhpcy5lcnJvckNhbGxiYWNrKSk7CisgICAgfQorCisgICAgLy8gQ2FsbGJhY2tz
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisgICAgdGhpcy5iaW5kID0gZnVuY3Rpb24oY2FsbGJhY2ssIGFyZzEsIGFyZzIsIGFy
ZzMpCisgICAgeworICAgICAgICB2YXIgb2JqID0gdGhpczsKKyAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKGFyZykgeworICAgICAgICAgICAgaWYgKGFyZyA9PSB1bmRlZmluZWQpCisgICAgICAgICAg
ICAgICAgY2FsbGJhY2suYXBwbHkob2JqLCBbYXJnMSwgYXJnMiwgYXJnM10pOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG9iaiwgW2FyZywgYXJnMSwg
YXJnMiwgYXJnM10pOworICAgICAgICB9OworICAgIH07CisKKyAgICB0aGlzLmVycm9yQ2FsbGJh
Y2sgPSBmdW5jdGlvbihlcnJvcikKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cuc2hvdWxkQmUp
CisgICAgICAgICAgICBzaG91bGRCZS5hcHBseSh0aGlzLCBbInRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUiLCAnIicgKyBlcnJvci5jb2RlICsgJyInXSk7CisgICAgICAgIGlmICh0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlICYmIGVycm9yLmNvZGUgPT0gdGhpcy5leHBlY3RlZEVycm9yQ29kZSkgeworICAg
ICAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0aGlzLmVycm9yKCdHb3QgZXJyb3I6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHRoaXMuc3VjY2Vzc0NhbGxiYWNrID0gZnVuY3Rpb24ocmV0dXJuVmFs
dWUpCisgICAgeworICAgICAgICBpZiAodGhpcy5leHBlY3RlZEVycm9yQ29kZSkgeworICAgICAg
ICAgICAgdGhpcy5lcnJvcignT3BlcmF0aW9uIHVuZXhwZWN0ZWRseSBzdWNjZWVkZWQnKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5kZXN0aW5hdGlv
blN5bWJvbCkKKyAgICAgICAgICAgIHRoaXMudmFyc1t0aGlzLmRlc3RpbmF0aW9uU3ltYm9sXSA9
IHJldHVyblZhbHVlOworICAgICAgICBpZiAodGhpcy5zdGF0ZW1lbnQgJiYgd2luZG93LnRlc3RQ
YXNzZWQpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdWNjZWVkZWQ6ICcgKyB0aGlzLnN0YXRl
bWVudCk7CisgICAgICAgIHRoaXMucnVuTmV4dFN0YXRlbWVudCgpOworICAgIH0KKworICAgIHRo
aXMuZW50cmllc0NhbGxiYWNrID0gZnVuY3Rpb24oZW50cmllcykKKyAgICB7CisgICAgICAgIGlm
ICh0aGlzLmRlc3RpbmF0aW9uU3ltYm9sKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMudmFyc1t0
aGlzLmRlc3RpbmF0aW9uU3ltYm9sXSkKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnNbdGhpcy5k
ZXN0aW5hdGlvblN5bWJvbF0gPSBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZW50cmllcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnNbdGhpcy5kZXN0
aW5hdGlvblN5bWJvbF0ucHVzaChlbnRyaWVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
ZW50cmllcy5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLmRpcmVjdG9yeVJlYWRlci5yZWFkRW50
cmllcyh0aGlzLmJpbmQodGhpcy5lbnRyaWVzQ2FsbGJhY2spLCB0aGlzLmJpbmQodGhpcy5lcnJv
ckNhbGxiYWNrKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMucnVuTmV4dFN0YXRl
bWVudCgpOworICAgIH0KKworICAgIHRoaXMuZmlsZVN5c3RlbUNhbGxiYWNrID0gZnVuY3Rpb24o
ZnMpCisgICAgeworICAgICAgICB0aGlzLmxvZygnR290IEZpbGVTeXN0ZW06ICcgKyBmcy5uYW1l
KTsKKyAgICAgICAgdGhpcy5maWxlU3lzdGVtID0gZnM7CisgICAgICAgIHRoaXMudmFyc1snUk9P
VCddID0gZnMucm9vdDsKKyAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgfQor
CisgICAgLy8gSGVscGVyIG1ldGhvZHMgZm9yIGNhbGxpbmcgZW50cnkgbWV0aG9kcyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdmFyIGNhbGxFbnRyeU1ldGhvZDAgPSBmdW5j
dGlvbihzaGVsbCwgZW50cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICBlbnRyeVttZXRob2RdKHNoZWxsLmJpbmQoc2hlbGwuc3VjY2Vzc0NhbGxiYWNr
KSwgc2hlbGwuYmluZChzaGVsbC5lcnJvckNhbGxiYWNrKSk7CisgICAgICAgIH0gY2F0Y2ggKGV4
Y2VwdGlvbikgeworICAgICAgICAgICAgaWYgKHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlICYmIGVy
cm9yLmNvZGUgPT0gc2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUpIHsKKyAgICAgICAgICAgICAgICBz
aGVsbC5sb2coJ0dvdCBleGNlcHRpb24gKGV4cGVjdGVkKTogJyArIGVycm9yLmNvZGUpOworICAg
ICAgICAgICAgICAgIHNoZWxsLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgc2hlbGwuZXJyb3IoJ0dvdCBleGNlcHRpb246ICcgKyBlcnJv
ci5jb2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZhciBjYWxs
RW50cnlNZXRob2QyID0gZnVuY3Rpb24oc2hlbGwsIGVudHJ5LCBtZXRob2QsIGFyZ3MpCisgICAg
eworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW50cnlbbWV0aG9kXShhcmdzWzBdLCBhcmdz
WzFdLCBzaGVsbC5iaW5kKHNoZWxsLnN1Y2Nlc3NDYWxsYmFjayksIHNoZWxsLmJpbmQoc2hlbGwu
ZXJyb3JDYWxsYmFjaykpOworICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAg
ICAgIGlmIChzaGVsbC5leHBlY3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09IHNoZWxsLmV4
cGVjdGVkRXJyb3JDb2RlKSB7CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdHb3QgZXhjZXB0
aW9uIChleHBlY3RlZCk6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAgICBzaGVsbC5y
dW5OZXh0U3RhdGVtZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IHNoZWxsLmVycm9yKCdHb3QgZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgY2FsbFJlYWREaXJlY3RvcnkgPSBmdW5j
dGlvbihzaGVsbCwgZW50cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICBzaGVsbC5kaXJlY3RvcnlSZWFkZXIgPSBlbnRyeS5jcmVhdGVSZWFkZXIoKTsK
KyAgICAgICAgICAgIHNoZWxsLmRpcmVjdG9yeVJlYWRlci5yZWFkRW50cmllcyhzaGVsbC5iaW5k
KHNoZWxsLmVudHJpZXNDYWxsYmFjayksIHNoZWxsLmJpbmQoc2hlbGwuZXJyb3JDYWxsYmFjaykp
OworICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGlmIChzaGVsbC5l
eHBlY3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09IHNoZWxsLmV4cGVjdGVkRXJyb3JDb2Rl
KSB7CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdHb3QgZXhjZXB0aW9uIChleHBlY3RlZCk6
ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAgICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50
KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNoZWxsLmVycm9yKCdH
b3QgZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisKKyAgICB2YXIgZW50cnlNZXRob2RzVGFibGUgPSB7CisgICAgICAgICdnZXRNZXRh
ZGF0YSc6IGNhbGxFbnRyeU1ldGhvZDAsCisgICAgICAgICdjb3B5VG8nOiBjYWxsRW50cnlNZXRo
b2QyLAorICAgICAgICAnbW92ZVRvJzogY2FsbEVudHJ5TWV0aG9kMiwKKyAgICAgICAgJ3JlbW92
ZSc6IGNhbGxFbnRyeU1ldGhvZDAsCisgICAgICAgICdnZXRQYXJlbnQnOiBjYWxsRW50cnlNZXRo
b2QwLAorICAgICAgICAnZ2V0RmlsZSc6IGNhbGxFbnRyeU1ldGhvZDIsCisgICAgICAgICdnZXRE
aXJlY3RvcnknOiBjYWxsRW50cnlNZXRob2QyLAorICAgICAgICAncmVhZERpcmVjdG9yeSc6IGNh
bGxSZWFkRGlyZWN0b3J5LAorICAgIH07CisKKyAgICAvLyBCdWlsdC1pbiBmdW5jaXRvbnMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICB2
YXIgdG9TdHJpbmcgPSBmdW5jdGlvbihvYmopCisgICAgeworICAgICAgICBpZiAob2JqID09IHVu
ZGVmaW5lZCkgeworICAgICAgICAgICAgcmV0dXJuICJ1bmRlZmluZWQiOworICAgICAgICB9IGVs
c2UgaWYgKHR5cGVvZiBvYmogPT0gJ29iamVjdCcpIHsKKyAgICAgICAgICAgIGlmIChvYmoubGVu
Z3RoICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIHZhciBzdHJpbmdBcnJheSA9IFtd
OworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgICAgICAgICBzdHJpbmdBcnJheS5wdXNoKHRvU3RyaW5nKG9ialtpXSkpOwor
ICAgICAgICAgICAgICAgIHN0cmluZ0FycmF5LnNvcnQoKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gJ1snICsgc3RyaW5nQXJyYXkuam9pbignLFxuICcpICsgJ10nOworICAgICAgICAgICAgfSBl
bHNlIGlmIChvYmouaXNGaWxlIHx8IG9iai5pc0RpcmVjdG9yeSkgeworICAgICAgICAgICAgICAg
IHJldHVybiAnRU5UUlkge3BhdGg6JyArIG9iai5mdWxsUGF0aCArICcgbmFtZTonICsgb2JqLm5h
bWUgKyAob2JqLmlzRmlsZSA/ICcgdHlwZTpGSUxFJyA6ICcgdHlwZTpESVJFQ1RPUlknKSArICd9
JzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gb2JqOworICAg
IH0KKworICAgIHRoaXMuQlVJTFRJTl9wcmludCA9IGZ1bmN0aW9uKGFyZ3MpCisgICAgeworICAg
ICAgICB0aGlzLmxvZyh0b1N0cmluZyhhcmdzWzBdKSk7CisgICAgICAgIHRoaXMucnVuTmV4dFN0
YXRlbWVudCgpOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9yZXNldCA9IGZ1bmN0aW9uKGFy
Z3MpCisgICAgeworICAgICAgICB0aGlzLmxvZygnUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4n
KTsKKyAgICAgICAgdmFyIHNoZWxsID0gdGhpczsKKyAgICAgICAgcmVtb3ZlUmVjdXJzaXZlbHko
dGhpcy5maWxlU3lzdGVtLnJvb3QsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2hlbGwucnVu
TmV4dFN0YXRlbWVudCgpOworICAgICAgICB9LCB0aGlzLmJpbmQodGhpcy5lcnJvckNhbGxiYWNr
KSk7CisgICAgfQorCisgICAgdGhpcy5CVUlMVElOX0FTU0VSVCA9IGZ1bmN0aW9uKGFyZ3MpCisg
ICAgeworICAgICAgICB2YXIgb2JqID0gYXJnc1swXTsKKyAgICAgICAgaWYgKHdpbmRvdy5zaG91
bGRCZU5vbk51bGwpCisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoJyInICsgb2JqICsgJyIn
KTsKKyAgICAgICAgaWYgKCFvYmopCisgICAgICAgICAgICB0aGlzLmVycm9yKCdBc3NlcnRpb24g
ZXJyb3I6JyArIG9iaik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMucnVuTmV4dFN0
YXRlbWVudCgpOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9BU1NFUlRfR0UgPSBmdW5jdGlv
bihhcmdzKQorICAgIHsKKyAgICAgICAgdmFyIHZhbHVlMSA9IChhcmdzWzBdIGluc3RhbmNlb2Yg
RGF0ZSkgPyBhcmdzWzBdLmdldFRpbWUoKSA6IGFyZ3NbMF07CisgICAgICAgIHZhciB2YWx1ZTIg
PSAoYXJnc1sxXSBpbnN0YW5jZW9mIERhdGUpID8gYXJnc1sxXS5nZXRUaW1lKCkgOiBhcmdzWzFd
OworICAgICAgICBpZiAod2luZG93LnNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKQorICAgICAg
ICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJyInICsgdmFsdWUxICsgJyInLCAnIicg
KyB2YWx1ZTIgKyAnIicpOworICAgICAgICBpZiAodmFsdWUxIDwgdmFsdWUyKSB7CisgICAgICAg
ICAgICB0aGlzLmVycm9yKCdBc3NlcnRpb24gZXJyb3I6JyArIGFyZ3NbMF0gKyAnID49ICcgKyBh
cmdzWzFdKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJ1
bk5leHRTdGF0ZW1lbnQoKTsKKyAgICB9CisKKyAgICB0aGlzLkJVSUxUSU5fQVNTRVJUX0VRID0g
ZnVuY3Rpb24oYXJncykKKyAgICB7CisgICAgICAgIHZhciB2YWx1ZTEgPSAoYXJnc1swXSBpbnN0
YW5jZW9mIERhdGUpID8gYXJnc1swXS5nZXRUaW1lKCkgOiBhcmdzWzBdOworICAgICAgICB2YXIg
dmFsdWUyID0gKGFyZ3NbMV0gaW5zdGFuY2VvZiBEYXRlKSA/IGFyZ3NbMV0uZ2V0VGltZSgpIDog
YXJnc1sxXTsKKyAgICAgICAgaWYgKHdpbmRvdy5zaG91bGRCZSkKKyAgICAgICAgICAgIHNob3Vs
ZEJlLmFwcGx5KHRoaXMsIFt0aGlzLmFyZ1N5bWJvbHNbMV0sIHRoaXMuYXJnU3ltYm9sc1swXV0p
OworICAgICAgICBpZiAodmFsdWUxICE9IHZhbHVlMikgeworICAgICAgICAgICAgdGhpcy5lcnJv
cignQXNzZXJ0aW9uIGVycm9yOicgKyBhcmdzWzBdICsgJyA9PSAnICsgYXJnc1sxXSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50
KCk7CisgICAgfQorCisgICAgLy8gUGFyc2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdGhpcy5FTlRSWV9NRVRI
T0RfUkUgPSAvXlxzKihbQS1aYS16X11cdyopXC4oZ2V0TWV0YWRhdGF8bW92ZVRvfGNvcHlUb3xy
ZW1vdmV8Z2V0UGFyZW50fGdldEZpbGV8Z2V0RGlyZWN0b3J5fHJlYWREaXJlY3RvcnkpXCgoLiop
XCkoPzpccytyYWlzZXM/XHMqXCg/KFxkKylcKT98KS87CisgICAgdGhpcy5BU1NJR05NRU5UX1JF
ID0gL15ccyooW0EtWmEtel9dXHcqKVxzKj1ccyooLiopLzsKKworICAgIHRoaXMucGFyc2VBcmdz
ID0gZnVuY3Rpb24odGV4dCkgeworICAgICAgICB0aGlzLmFyZ1N5bWJvbHMgPSBbXTsKKyAgICAg
ICAgdmFyIGFyZ3MgPSBbXTsKKyAgICAgICAgdmFyIHNoZWxsID0gdGhpczsKKyAgICAgICAgdmFy
IHZhcnMgPSB0aGlzLnZhcnM7CisgICAgICAgIHRleHQucmVwbGFjZSgvKD86KHtbXn1dKn0pfChc
ZCt8IlteIl0qInwnW14nXSonKXwoW2EtekEtWl9dXHcqKSg/OlxbKFxkK3wnXHcrJ3wiXHcrIilc
XXxcLihcdyspfCkpKCx8JClccyovZywgZnVuY3Rpb24obWF0Y2gsIGhhc2gsIGltbWVkaWF0ZSwg
c3ltYm9sLCBmaWVsZDEsIGZpZWxkMikgeworICAgICAgICAgICAgdmFyIGZpZWxkID0gZmllbGQx
ICE9IHVuZGVmaW5lZCA/IGZpZWxkMSA6IGZpZWxkMjsKKyAgICAgICAgICAgIHZhciBvYmogPSBz
aGVsbC52YXJzW3N5bWJvbF07CisgICAgICAgICAgICBpZiAoc3ltYm9sICYmIG9iaiA9PSB1bmRl
ZmluZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3ltYm9sID09ICdudWxsJyB8fCBzeW1ib2wg
PT0gJ3VuZGVmaW5lZCcpIHsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gbnVsbDsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzaGVsbC5lcnJvcignVW5k
ZWZpbmVkIHN5bWJvbDonICsgc3ltYm9sKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNoZWxsLmFyZ1N5
bWJvbHMucHVzaCgKKyAgICAgICAgICAgICAgICBoYXNoID8gaGFzaCA6CisgICAgICAgICAgICAg
ICAgaW1tZWRpYXRlID8gaW1tZWRpYXRlIDoKKyAgICAgICAgICAgICAgICBzeW1ib2wgPyAndGhp
cy52YXJzWyInICsgc3ltYm9sICsgJyJdJyArIChmaWVsZCAhPSB1bmRlZmluZWQgPyAnWyInICsg
ZmllbGQgKyAnIl0nIDogJycpIDogbWF0Y2gpOworICAgICAgICAgICAgYXJncy5wdXNoKGhhc2gg
PyBldmFsKCdvPScgKyBoYXNoKQorICAgICAgICAgICAgICAgIDogaW1tZWRpYXRlID8gZXZhbChp
bW1lZGlhdGUpCisgICAgICAgICAgICAgICAgOiBzeW1ib2wgPyAoZmllbGQgIT0gdW5kZWZpbmVk
ID8gb2JqW2ZpZWxkXSA6IG9iaikKKyAgICAgICAgICAgICAgICA6IG51bGwpOworICAgICAgICB9
KTsKKyAgICAgICAgcmV0dXJuIGFyZ3M7CisgICAgfQorCisgICAgdGhpcy5ydW5OZXh0U3RhdGVt
ZW50ID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMubGluZUNvdW50ZXIgPCAw
IHx8IHRoaXMubGluZUNvdW50ZXIgPj0gdGhpcy5saW5lcy5sZW5ndGgpIHsKKyAgICAgICAgICAg
IHRoaXMubG9nKCdTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLicpOworICAgICAgICAgICAgdGhp
cy5lbmRUZXN0Q2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICB0aGlzLnN0YXRlbWVudCA9IHRoaXMubGluZXNbdGhpcy5saW5lQ291bnRlcisrXTsKKyAg
ICAgICAgaWYgKHRoaXMuc3RhdGVtZW50LnNlYXJjaCgvXlxzKigjLip8KSQvKSA9PSAwKSB7Cisg
ICAgICAgICAgICB0aGlzLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICB2YXIgZXhwID0gdGhpcy5zdGF0ZW1lbnQ7CisgICAgICAgIHRo
aXMuZGVzdGluYXRpb25TeW1ib2wgPSBudWxsOworICAgICAgICB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlID0gMDsKKyAgICAgICAgdmFyIG1hdGNoZXMgPSB0aGlzLnN0YXRlbWVudC5tYXRjaCh0aGlz
LkFTU0lHTk1FTlRfUkUpOworICAgICAgICBpZiAobWF0Y2hlcykgeworICAgICAgICAgICAgdGhp
cy5kZXN0aW5hdGlvblN5bWJvbCA9IG1hdGNoZXNbMV07CisgICAgICAgICAgICB0aGlzLnZhcnNb
dGhpcy5kZXN0aW5hdGlvblN5bWJvbF0gPSBudWxsOworICAgICAgICAgICAgZXhwID0gbWF0Y2hl
c1syXTsKKyAgICAgICAgfQorICAgICAgICBtYXRjaGVzID0gZXhwLm1hdGNoKHRoaXMuRU5UUllf
TUVUSE9EX1JFKTsKKyAgICAgICAgaWYgKG1hdGNoZXMpIHsKKyAgICAgICAgICAgIHZhciBlbnRy
eSA9IHNoZWxsLnZhcnNbbWF0Y2hlc1sxXV07CisgICAgICAgICAgICB2YXIgbWV0aG9kID0gbWF0
Y2hlc1syXTsKKyAgICAgICAgICAgIGlmICghZW50cnkpIHsKKyAgICAgICAgICAgICAgICB0aGlz
LmVycm9yKCdObyBzdWNoIHN5bWJvbDonICsgbWF0Y2hlc1sxXSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5leHBlY3RlZEVycm9yQ29k
ZSA9IG1hdGNoZXNbNF07CisgICAgICAgICAgICBlbnRyeU1ldGhvZHNUYWJsZVttZXRob2RdKHRo
aXMsIGVudHJ5LCBtZXRob2QsIHRoaXMucGFyc2VBcmdzKG1hdGNoZXNbM10pKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtYXRjaGVzID0gZXhwLm1hdGNoKC9eXHMq
KFtBLVphLXpfXVx3KylcKCguKilcKS8pOworICAgICAgICBpZiAobWF0Y2hlcyAmJiB0aGlzWydC
VUlMVElOXycgKyBtYXRjaGVzWzFdXSkgeworICAgICAgICAgICAgdGhpc1snQlVJTFRJTl8nICsg
bWF0Y2hlc1sxXV0odGhpcy5wYXJzZUFyZ3MobWF0Y2hlc1syXSkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLnBhcnNlQXJncyhleHAp
OworICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICBpZiAodGhp
cy5kZXN0aW5hdGlvblN5bWJvbCkKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnNbdGhpcy5kZXN0
aW5hdGlvblN5bWJvbF0gPSB2YWx1ZXNbMF07CisgICAgICAgICAgICB0aGlzLnJ1bk5leHRTdGF0
ZW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmVy
cm9yKCdTeW50YXggZXJyb3I6JyArIHRoaXMuc3RhdGVtZW50KTsKKyAgICB9CisKKyAgICAvLyBN
aXNjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKyAgICB0aGlzLmR1bXBWYXJzID0gZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMudmFycykKKyAgICAgICAgICAgIHRoaXMubG9nKCcq
KiAnICsga2V5ICsgJzonICsgdGhpcy52YXJzW2tleV0pOworICAgIH0KKworICAgIHRoaXMuZXJy
b3IgPSBmdW5jdGlvbihtc2cpCisgICAgeworICAgICAgICB2YXIgcHJpbnRFcnJvciA9IHRoaXMu
bG9nCisgICAgICAgIGlmICh3aW5kb3cudGVzdEZhaWxlZCkKKyAgICAgICAgICAgIHByaW50RXJy
b3IgPSB0ZXN0RmFpbGVkOworICAgICAgICBpZiAodGhpcy5saW5lQ291bnRlciA+IDAgJiYgdGhp
cy5saW5lQ291bnRlciA8IHRoaXMubGluZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBwcmludEVy
cm9yKCdFUlJPUjonICsgbXNnICsgJyBhdCBsaW5lICcgKyB0aGlzLmxpbmVDb3VudGVyKTsKKyAg
ICAgICAgICAgIHByaW50RXJyb3IoJyA+ICcgKyB0aGlzLnN0YXRlbWVudCk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgcHJpbnRFcnJvcignRVJST1I6JyArIG1zZyk7CisgICAgICAgIHRo
aXMuZW5kVGVzdENhbGxiYWNrKCk7CisgICAgfQorCisgICAgdGhpcy5kZWZhdWx0TG9nRnVuYyA9
IGZ1bmN0aW9uKG1zZykKKyAgICB7CisgICAgICAgIHZhciBlbGVtID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKTsKKyAgICAgICAgaWYgKCFlbGVtKSB7CisgICAgICAgICAgICBl
bGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICBlbGVtLmlk
ID0gJ2NvbnNvbGUnOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
KTsKKyAgICAgICAgfQorICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NwYW4nKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBl
bmRDaGlsZChzcGFuKTsKKyAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsK
KyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3Ry
aWN0ZWQtY2hhcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jl
c3RyaWN0ZWQtY2hhcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NzhiYzdhYWFlZDc2MDNh
ODYwNzNkNzE3YWVlOTNhM2Q5NTRlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
MSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBm
aWxlc3lzdGVtLi4uCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0
aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29k
ZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlz
LmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBp
cyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4
cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAi
MTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVj
dGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMi
CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNT
IHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
IGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGFiID0gUk9PVC5nZXRGaWxlKCdhYicsIHtjcmVhdGU6dHJ1ZX0pCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
IGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlz
ICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIx
MyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitTY3JpcHQgZXhlY3V0aW9u
IGZpbmlzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVk
LWNoYXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFy
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMzZGNlZWZmNDJmMDcxYmEyMTNlZjVmMjM4Mzk0OWM0MjZmNzFi
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJp
Y3RlZC1jaGFycy5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlv
bi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgor
CisgICAgcmVzZXQoKQorCisgICAgUk9PVC5nZXRGaWxlKCdhXFxiJykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXRGaWxlKCdhPGInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2E+YicpIHJh
aXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYTpiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRG
aWxlKCdhP2InKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2EqYicpIHJhaXNlcyAxMwor
ICAgIFJPT1QuZ2V0RmlsZSgnYSJiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhfGIn
KSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgnXFxhYicpIHJhaXNlcyAxMworICAgIFJP
T1QuZ2V0RmlsZSgnPGFiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCc+YWInKSByYWlz
ZXMgMTMKKyAgICBST09ULmdldEZpbGUoJzphYicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0Rmls
ZSgnP2FiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCcqYWInKSByYWlzZXMgMTMKKyAg
ICBST09ULmdldEZpbGUoJyJhYicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnfGFiJykg
cmFpc2VzIDEzCisKKyAgICBST09ULmdldEZpbGUoJ2FiXFwnKSByYWlzZXMgMTMKKyAgICBST09U
LmdldEZpbGUoJ2FiPCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYWI+JykgcmFpc2Vz
IDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYjonKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUo
J2FiPycpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYWIqJykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXRGaWxlKCdhYiInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2FifCcpIHJh
aXNlcyAxMworCisgICAgYWIgPSBST09ULmdldEZpbGUoJ2FiJywge2NyZWF0ZTp0cnVlfSkKKyAg
ICBhYi5jb3B5VG8oUk9PVCwgJ2FcXGInKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5VG8oUk9PVCwg
J2E8YicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhST09ULCAnYT5iJykgcmFpc2VzIDEzCisg
ICAgYWIuY29weVRvKFJPT1QsICdhOmInKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5VG8oUk9PVCwg
J2E/YicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhST09ULCAnYSpiJykgcmFpc2VzIDEzCisg
ICAgYWIuY29weVRvKFJPT1QsICdhImInKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5VG8oUk9PVCwg
J2F8YicpIHJhaXNlcyAxMworCisgICAgIyBOYW1lIHNob3VsZCBub3QgY29udGFpbiAnLycKKyAg
ICBhYi5jb3B5VG8oUk9PVCwgJ2EvYicpIHJhaXNlcyAxMworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jl
c3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3Jlc3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMjgyZTNmMmQ3Yzhk
NjgzMTAyMjRhYzM2NjgzOTVjNDQyMGQ3ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1uYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0NSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRo
ZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUgPSBST09ULmdldEZpbGUo
J2FhYScsIHtjcmVhdGU6dHJ1ZX0pCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpciA9IFJPT1QuZ2V0
RmlsZSgnYmJiJywge2NyZWF0ZTp0cnVlfSkKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBp
cyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4
cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAi
MTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVj
dGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMi
CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNT
IHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
IGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlz
ICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIx
MyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0
ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIK
K1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRF
cnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BB
U1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1Mg
dGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1NjcmlwdCBl
eGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jl
c3RyaWN0ZWQtbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmlj
dGVkLW5hbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMxZDBiYzEyYjkwMDFlYmIyNWVkYjQzMzc1NTBh
ZDIyNzExZjYxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9yZXN0cmljdGVkLW5hbWVzLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJmaWxlLXN5c3RlbS10ZXN0LXNj
cmlwdCI+CisKKyAgICByZXNldCgpCisgICAgZmlsZSA9IFJPT1QuZ2V0RmlsZSgnYWFhJywge2Ny
ZWF0ZTp0cnVlfSkKKyAgICBkaXIgPSBST09ULmdldEZpbGUoJ2JiYicsIHtjcmVhdGU6dHJ1ZX0p
CisKKyAgICBST09ULmdldEZpbGUoJ2NvbicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgn
Q09OJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdDb24nKSByYWlzZXMgMTMKKyAgICBS
T09ULmdldEZpbGUoJ2NPbi50eHQnKSByYWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgn
YmJiL2NvTicpIHJhaXNlcyAxMworCisgICAgUk9PVC5nZXRGaWxlKCdwcm4nKSByYWlzZXMgMTMK
KyAgICBST09ULmdldEZpbGUoJ1BSTicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnUHJu
JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdwUm4udHh0JykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXREaXJlY3RvcnkoJ2JiYi9wck4nKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0Rmls
ZSgnYXV4JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdBVVgnKSByYWlzZXMgMTMKKyAg
ICBST09ULmdldEZpbGUoJ0F1eCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYVV4LnR4
dCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdiYmIvYXVYJykgcmFpc2VzIDEz
CisKKyAgICBST09ULmdldEZpbGUoJ251bCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgn
TlVMJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdOdWwnKSByYWlzZXMgMTMKKyAgICBS
T09ULmdldEZpbGUoJ25VbC50eHQnKSByYWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgn
YmJiL251TCcpIHJhaXNlcyAxMworCisgICAgUk9PVC5nZXRGaWxlKCdjb20xJykgcmFpc2VzIDEz
CisgICAgUk9PVC5nZXRGaWxlKCdDT00yJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdD
b200JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdjT003LmZvbycpIHJhaXNlcyAxMwor
ICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdiYmIvY29NOScpIHJhaXNlcyAxMworCisgICAgUk9PVC5n
ZXRGaWxlKCdscHQxJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdMUFQyJykgcmFpc2Vz
IDEzCisgICAgUk9PVC5nZXRGaWxlKCdMcHQ0JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxl
KCdsUFQ3LmZvbycpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdiYmIvbHBUOScp
IHJhaXNlcyAxMworCisgICAgIyBOYW1lcyBzaG91bGQgbm90IGVuZCB3aXRoIHBlcmlvZCBvciB3
aGl0ZXNwYWNlLgorICAgIFJPT1QuZ2V0RmlsZSgnZm9vICcpIHJhaXNlcyAxMworICAgIFJPT1Qu
Z2V0RmlsZSgnZm9vXG4nKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2Zvby4nKSByYWlz
ZXMgMTMKKyAgICBmaWxlLmNvcHlUbyhkaXIsICdmb28gJykgcmFpc2VzIDEzCisgICAgZmlsZS5j
b3B5VG8oZGlyLCAnZm9vXHQnKSByYWlzZXMgMTMKKyAgICBmaWxlLmNvcHlUbyhkaXIsICdmb28u
JykgcmFpc2VzIDEzCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0
LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3BhcmFsbGVsLW9w
ZXJhdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3Bh
cmFsbGVsLW9wZXJhdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmEzOGI1NTQ3ZDk4NjVjOWUzM2ZjYzRk
YjE2OGZhOWYxNjI1ZDJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9zY3JpcHQtdGVzdHMvcGFyYWxsZWwtb3BlcmF0aW9ucy5qcwpAQCAtMCwwICsxLDkz
IEBACitkZXNjcmlwdGlvbigiVGVzdCBtYWtpbmcgbXVsdGlwbGUgRmlsZVN5c3RlbSBvcGVyYXRp
b25zIGluIHBhcmFsbGVsLiIpOworCit2YXIgZmlsZVN5c3RlbSA9IG51bGw7CisKK3ZhciBhOwor
dmFyIGI7Cit2YXIgYzsKKworZnVuY3Rpb24gZW5kVGVzdCgpIHsKKyAgICByZW1vdmVSZWN1cnNp
dmVseShmaWxlU3lzdGVtLnJvb3QpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlv
biBlcnJvckNhbGxiYWNrKGVycm9yKSB7CisgICAgZGVidWcoIkdvdCBlcnJvcjogIiArIGVycm9y
LmNvZGUpOworICAgIGVuZFRlc3QoKTsKK30KKwordmFyIHBhdGhzID0gW107Cit2YXIgZGlycyA9
IDA7Cit2YXIgcmVhZGVyID0gbnVsbDsKKworZnVuY3Rpb24gZW50cmllc0NhbGxiYWNrKGVudHJp
ZXMpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgcGF0aHMucHVzaChlbnRyaWVzW2ldLmZ1bGxQYXRoKTsKKyAgICAgICAgaWYgKGVudHJp
ZXNbaV0uaXNEaXJlY3RvcnkpCisgICAgICAgICAgICBkaXJzKys7CisgICAgfQorICAgIGlmICgh
ZW50cmllcy5sZW5ndGgpIHsKKyAgICAgICAgcmVhZGVyLnJlYWRFbnRyaWVzKGVudHJpZXNDYWxs
YmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcGF0aHMuc29ydCgp
OworICAgICAgICBzaG91bGRCZSgnIicgKyBwYXRocy5qb2luKCcsJykgKyAnIicsICciL2EsL2Iy
LC9jLC9kLC9lIicpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfQorfQorCitmdW5jdGlvbiB2
ZXJpZnkoKSB7CisgICAgZGVidWcoIlZlcmlmeWluZyB0aGUgRmlsZVN5c3RlbSBzdGF0dXMuIik7
CisgICAgcmVhZGVyID0gZmlsZVN5c3RlbS5yb290LmNyZWF0ZVJlYWRlcigpOworICAgIHJlYWRl
ci5yZWFkRW50cmllcyhlbnRyaWVzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworfQorCitmdW5j
dGlvbiBwYXJhbGxlbFRlc3QyKCkgeworICAgIGRlYnVnKCJTdGFydGluZyBwYXJhbGxlbCB0ZXN0
IHN0YWdlIDIuIik7CisKKyAgICB2YXIgam9pbiA9IG5ldyBKb2luSGVscGVyKHZlcmlmeSk7Cisg
ICAgdmFyIGRvbmUgPSBmdW5jdGlvbigpIHsgam9pbi5kb25lKCk7IH07CisKKyAgICBqb2luLnJ1
bihmdW5jdGlvbigpIHsgYS5jb3B5VG8oYiwgJ3RtcCcsIGRvbmUsIGVycm9yQ2FsbGJhY2spOyB9
KTsKKyAgICBqb2luLnJ1bihmdW5jdGlvbigpIHsgYS5nZXRNZXRhZGF0YShkb25lLCBlcnJvckNh
bGxiYWNrKTsgfSk7CisgICAgam9pbi5ydW4oZnVuY3Rpb24oKSB7IGIuZ2V0UGFyZW50KGRvbmUs
IGVycm9yQ2FsbGJhY2spOyB9KTsKKyAgICBqb2luLnJ1bihmdW5jdGlvbigpIHsgYi5tb3ZlVG8o
ZmlsZVN5c3RlbS5yb290LCAnYjInLCBkb25lLCBlcnJvckNhbGxiYWNrKTsgfSk7CisgICAgam9p
bi5ydW4oZnVuY3Rpb24oKSB7IGMuY29weVRvKGZpbGVTeXN0ZW0ucm9vdCwgJ2QnLCBkb25lLCBl
cnJvckNhbGxiYWNrKTsgfSk7CisgICAgam9pbi5ydW4oZnVuY3Rpb24oKSB7IGZpbGVTeXN0ZW0u
cm9vdC5nZXRGaWxlKCdlJywge2NyZWF0ZTp0cnVlfSwgZG9uZSwgZXJyb3JDYWxsYmFjayk7IH0p
OworfQorCitmdW5jdGlvbiBwYXJhbGxlbFRlc3QxKCkgeworICAgIGRlYnVnKCJTdGFydGluZyBw
YXJhbGxlbCB0ZXN0IHN0YWdlIDEuIik7CisKKyAgICB2YXIgam9pbiA9IG5ldyBKb2luSGVscGVy
KHBhcmFsbGVsVGVzdDIpOworICAgIHZhciByb290ID0gZmlsZVN5c3RlbS5yb290OworCisgICAg
am9pbi5ydW4oZnVuY3Rpb24oKSB7IHJvb3QuZ2V0RmlsZSgnYScsIHtjcmVhdGU6dHJ1ZX0sIGZ1
bmN0aW9uKGVudHJ5KSB7CisgICAgICAgIGEgPSBlbnRyeTsKKyAgICAgICAgam9pbi5kb25lKCk7
CisgICAgfSwgZXJyb3JDYWxsYmFjayk7IH0pOworCisgICAgam9pbi5ydW4oZnVuY3Rpb24oKSB7
IHJvb3QuZ2V0RGlyZWN0b3J5KCdiJywge2NyZWF0ZTp0cnVlfSwgZnVuY3Rpb24oZW50cnkpIHsK
KyAgICAgICAgYiA9IGVudHJ5OworICAgICAgICBqb2luLmRvbmUoKTsKKyAgICB9LCBlcnJvckNh
bGxiYWNrKTsgfSk7CisKKyAgICBqb2luLnJ1bihmdW5jdGlvbigpIHsgcm9vdC5nZXREaXJlY3Rv
cnkoJ2MnLCB7Y3JlYXRlOnRydWV9LCBmdW5jdGlvbihlbnRyeSkgeworICAgICAgICBjID0gZW50
cnk7CisgICAgICAgIGpvaW4uZG9uZSgpOworICAgIH0sIGVycm9yQ2FsbGJhY2spOyB9KTsKK30K
KworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgeworICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKyAgICB2YXIgam9pbiA9IG5ldyBKb2luSGVscGVyKHBhcmFsbGVsVGVzdDEp
OworICAgIGpvaW4ucnVuKGZ1bmN0aW9uKCkgeworICAgIHJlcXVlc3RGaWxlU3lzdGVtLmFwcGx5
KHRoaXMsIFt3aW5kb3cuVEVNUE9SQVJZLCAxMDAsIGZ1bmN0aW9uKGZzKSB7CisgICAgICAgIGRl
YnVnKCJHb3QgRmlsZVN5c3RlbToiICsgZnMubmFtZSk7CisgICAgICAgIGZpbGVTeXN0ZW0gPSBm
czsKKyAgICAgICAgcmVtb3ZlUmVjdXJzaXZlbHkoZmlsZVN5c3RlbS5yb290LCBmdW5jdGlvbigp
eyBqb2luLmRvbmUoKTsgfSwgZXJyb3JDYWxsYmFjayk7CisgICAgfSwgZXJyb3JDYWxsYmFja10p
OyB9KTsKKyAgICBkZWJ1ZygicmVxdWVzdGVkIEZpbGVTeXN0ZW0uIik7Cit9IGVsc2UKKyAgICBk
ZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVTeXN0ZW0gQVBJIHN1cHBvcnQuIik7CisKK3dp
bmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9zaW1wbGUtcGVyc2lzdGVudC5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzY2N2VhZTFmNzZlOGUzMjVmYjRlZTMxNjIwMzdlYjUwYjg4MDRlMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMv
c2ltcGxlLXBlcnNpc3RlbnQuanMKQEAgLTAsMCArMSwyOSBAQAorZGVzY3JpcHRpb24oIlBlcnNp
c3RlbnQgRmlsZVN5c3RlbSBzaW1wbGUgdGVzdC4iKTsKK3ZhciBmaWxlU3lzdGVtID0gbnVsbDsK
KworZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhmaWxlU3lzdGVtKSB7CisgICAgZGVidWcoIkVycm9y
IG9jY3VyZWQgZHVyaW5nIHJlcXVlc3RpbmcgUGVyc2lzdGVudCBGaWxlU3lzdGVtOiIgKyBmaWxl
U3lzdGVtLm5hbWUpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBz
dWNjZXNzQ2FsbGJhY2soZnMpIHsKKyAgICBmaWxlU3lzdGVtID0gZnM7CisgICAgZGVidWcoIlN1
Y2Nlc3NmdWxseSBvYnRhaW5lZCBQZXJzaXN0ZW50IEZpbGVTeXN0ZW06IiArIGZpbGVTeXN0ZW0u
bmFtZSk7CisgICAgc2hvdWxkQmVUcnVlKCJmaWxlU3lzdGVtLm5hbWUubGVuZ3RoID4gMCIpOwor
ICAgIHNob3VsZEJlKCJmaWxlU3lzdGVtLnJvb3QuZnVsbFBhdGgiLCAnIi8iJyk7CisKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2lmICh3aW5kb3cucmVxdWVzdEZpbGVTeXN0ZW0pIHsK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICByZXF1ZXN0RmlsZVN5c3RlbSh3aW5k
b3cuUEVSU0lTVEVOVCwgMTAwLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworfSBl
bHNlCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBGaWxlU3lzdGVtIEFQSSBzdXBwb3J0
LiIpOworCit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxlLXRlbXBvcmFyeS5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxlLXRlbXBv
cmFyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xNGMwNzU2YTgwMjc4MzFjNmVhYmQxOTM1MjMxYjllMjIxNzkz
N2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Njcmlw
dC10ZXN0cy9zaW1wbGUtdGVtcG9yYXJ5LmpzCkBAIC0wLDAgKzEsMjkgQEAKK2Rlc2NyaXB0aW9u
KCJUZW1wb3JhcnkgRmlsZVN5c3RlbSBzaW1wbGUgdGVzdC4iKTsKK3ZhciBmaWxlU3lzdGVtID0g
bnVsbDsKKworZnVuY3Rpb24gZXJyb3JDYWxsYmFjayhmaWxlU3lzdGVtKSB7CisgICAgZGVidWco
IkVycm9yIG9jY3VyZWQgZHVyaW5nIHJlcXVlc3RpbmcgVGVtcG9yYXJ5IEZpbGVTeXN0ZW06IiAr
IGZpbGVTeXN0ZW0ubmFtZSk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0
aW9uIHN1Y2Nlc3NDYWxsYmFjayhmcykgeworICAgIGZpbGVTeXN0ZW0gPSBmczsKKyAgICBkZWJ1
ZygiU3VjY2Vzc2Z1bGx5IG9idGFpbmVkIFRlbXBvcmFyeSBGaWxlU3lzdGVtOiIgKyBmaWxlU3lz
dGVtLm5hbWUpOworICAgIHNob3VsZEJlVHJ1ZSgiZmlsZVN5c3RlbS5uYW1lLmxlbmd0aCA+IDAi
KTsKKyAgICBzaG91bGRCZSgiZmlsZVN5c3RlbS5yb290LmZ1bGxQYXRoIiwgJyIvIicpOworCisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitpZiAod2luZG93LnJlcXVlc3RGaWxlU3lzdGVt
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgcmVxdWVzdEZpbGVTeXN0ZW0o
d2luZG93LlRFTVBPUkFSWSwgMTAwLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwor
fSBlbHNlCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBGaWxlU3lzdGVtIEFQSSBzdXBw
b3J0LiIpOworCit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtcGVyc2lzdGVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI3ZDVjNjkzZGE1ZjY0OTU3ZDA3ZmI1OTkzMGUxYmRiOWIwMmY0
M2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2ltcGxl
LXBlcnNpc3RlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1BlcnNpc3RlbnQgRmls
ZVN5c3RlbSBzaW1wbGUgdGVzdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N1
Y2Nlc3NmdWxseSBvYnRhaW5lZCBQZXJzaXN0ZW50IEZpbGVTeXN0ZW06VGVzdFNoZWxsRmlsZVN5
c3RlbQorUEFTUyBmaWxlU3lzdGVtLm5hbWUubGVuZ3RoID4gMCBpcyB0cnVlCitQQVNTIGZpbGVT
eXN0ZW0ucm9vdC5mdWxsUGF0aCBpcyAiLyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
eXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9zaW1wbGUtcGVyc2lzdGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNWExM2E2N2Q2M2FiZTAwYzNh
YWQwOWY4OWE0NzU2OGM0Mzc0MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3NpbXBs
ZS1wZXJzaXN0ZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtdGVtcG9yYXJ5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtdGVtcG9yYXJ5LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yOTQyMDE4OGQ3YzQwMDU4YjEyZGZmZGM4MTQ2ZmI5YTdhZjgzNzE2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS10
ZW1wb3JhcnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1RlbXBvcmFyeSBGaWxlU3lz
dGVtIHNpbXBsZSB0ZXN0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU3VjY2Vz
c2Z1bGx5IG9idGFpbmVkIFRlbXBvcmFyeSBGaWxlU3lzdGVtOlRlc3RTaGVsbEZpbGVTeXN0ZW0K
K1BBU1MgZmlsZVN5c3RlbS5uYW1lLmxlbmd0aCA+IDAgaXMgdHJ1ZQorUEFTUyBmaWxlU3lzdGVt
LnJvb3QuZnVsbFBhdGggaXMgIi8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3NpbXBsZS10ZW1wb3JhcnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1w
bGUtdGVtcG9yYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhlOTJmZmViYzQwZDM3OTE0Mjg5OWZiMmY2
ZDA5NTVhOGIyMTY3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9zaW1wbGUtdGVtcG9yYXJ5Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zaW1wbGUtdGVtcG9y
YXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69306</attachid>
            <date>2010-09-29 20:21:59 -0700</date>
            <delta_ts>2010-10-04 01:48:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44920-20100929202158.patch</filename>
            <type>text/plain</type>
            <size>79879</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NjUzOTkyNmY3YWRiOTZhMDBmMzQ1YzcxNzk3MDRhZGVjMmRhZGRkLi4xZmJjY2Rm
ZGE1YWMxMThjN2RjMThlZGM4MzAzYjI3OWM4MjI4OTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAK
KzIwMTAtMDktMjkgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVz
dHMgZm9yIEZpbGVTeXN0ZW0gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDkyMAorCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWNvcHkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLWdldC1tZXRh
ZGF0YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1nZXQt
cGFyZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLW1vdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGly
ZWN0b3J5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3Zl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRp
b25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3BhcmFs
bGVsLW9wZXJhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jl
YWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dC5vcmlnOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zp
bGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS10
ZW1wb3JhcnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0v
cmVxdWVzdC1mcy10d2ljZS10ZW1wb3JhcnkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
aWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qczogQWRkZWQuCisg
ICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcy5v
cmlnOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVk
LWNoYXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVk
LW5hbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jl
c3RyaWN0ZWQtbmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Nj
cmlwdC10ZXN0cy9wYXJhbGxlbC1vcGVyYXRpb25zLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3JlYWQtZGlyZWN0b3J5LmpzLm9yaWc6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQu
anM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxl
LXRlbXBvcmFyeS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1w
ZXJzaXN0ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVt
L3NpbXBsZS1wZXJzaXN0ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3Rl
bS9zaW1wbGUtdGVtcG9yYXJ5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
aWxlc3lzdGVtL3NpbXBsZS10ZW1wb3JhcnkuaHRtbDogQWRkZWQuCisKIDIwMTAtMDktMjkgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBUaGlzIHRlc3QgcmVzdWx0
IHNlZW1zIHRvIGJlIHBsYXRmb3JtIHNwZWNpZmljLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0Y2ZmZmVmMzdlZWIx
YTY5ZWZmNDdkM2QwYmZkNTZjYmJhYTk0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4NCBAQAor
R290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBmaWxlc3lz
dGVtLi4uCisqIENvcHlpbmcgYW4gZW50cnkgdG8gdGhlIHNhbWUgZGlyZWN0b3J5CitSZXNldGlu
ZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBST09ULmdl
dERpcmVjdG9yeSgncGFyZW50JywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRp
cjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZmlsZTIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNT
IFN1Y2NlZWRlZDogICAgIGNvcGllZCA9IGRpcjEuY29weVRvKHBhcmVudCwgbmFtZTMpCitQQVNT
IFN1Y2NlZWRlZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpCitQQVNTIFN1Y2NlZWRl
ZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTMpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNv
cGllZCA9IGZpbGUyLmNvcHlUbyhwYXJlbnQsIG5hbWU0KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBw
YXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0
RGlyZWN0b3J5KG5hbWUzKQorKiBDb3B5aW5nIGVudHJpZXMgdG8gYSBkaWZmZXJlbnQgZGlyZWN0
b3J5CitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIx
ID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6
ICAgICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBT
dWNjZWVkZWQ6ICAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2Zs
YWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNvcGllZCA9IGNoaWxkMy5jb3B5VG8oZGly
MiwgbmFtZTEpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdldERpcmVjdG9yeShuYW1lMSkKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgY29waWVkID0gY2hpbGQ0LmNvcHlUbyhkaXIyLCBuYW1lMikKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZGlyMS5nZXRGaWxlKG5hbWU0KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdl
dEZpbGUobmFtZTIpCisqIENvcHlpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzCitSZXNl
dGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gUk9PVC5n
ZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIy
ID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6
ICAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCitQQVNT
IFN1Y2NlZWRlZDogICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcp
CitQQVNTIFN1Y2NlZWRlZDogICAgIGNvcGllZCA9IGNoaWxkMy5jb3B5VG8oZGlyMiwgbnVsbCkK
K1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMS5nZXREaXJlY3RvcnkoY2hpbGQzLm5hbWUpCitQQVNT
IFN1Y2NlZWRlZDogICAgIGRpcjIuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBjb3BpZWQgPSBjaGlsZDQuY29weVRvKGRpcjIsIG51bGwpCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGRpcjEuZ2V0RmlsZShjaGlsZDQubmFtZSkKK1BBU1MgU3VjY2VlZGVkOiAgICAg
ZGlyMi5nZXRGaWxlKGNoaWxkNC5uYW1lKQorKiBDb3B5aW5nIGVudHJpZXMgdG8gdGhlIHNhbWUg
ZGlyZWN0b3J5IHdpdGggdGhlIHNhbWUgbmFtZQorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4K
K1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcs
IGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERpcmVj
dG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUyID0gcGFy
ZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
IGlzICIxMyIKKyogVHJ5aW5nIHRvIGNvcHkgbm9uLWV4aXN0ZW50IGVudHJpZXMKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgbm9uZXhpc3RfZGlyID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMywgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIG5vbmV4aXN0X2ZpbGUgPSBwYXJlbnQuZ2V0
RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIG5vbmV4aXN0X2Rp
ci5yZW1vdmUoKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBub25leGlzdF9maWxlLnJlbW92ZSgpCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCisqIENvcHlpbmcgZW50cmllcyB0byBhIG5vbi1l
eGlzdGVudCBkaXJlY3RvcnkKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BB
U1MgU3VjY2VlZGVkOiAgICAgUk9PVC5nZXREaXJlY3RvcnkoZGlyMS5mdWxsUGF0aCkKK1BBU1Mg
U3VjY2VlZGVkOiAgICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRoKQorUEFTUyB0aGlzLmV4
cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4
IgorKiBDb3B5aW5nIGVudHJpZXMgdG8gaXRzIGNoaWxkCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKKyogQ29w
eWluZyBhIGRpcmVjdG9yeSB3aXRoIGNoaWxkcmVuCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjQg
PSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVk
OiAgICAgY2hpbGQxID0gZGlyNC5nZXRGaWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgY2hpbGQyID0gZGlyNC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFn
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjaGlsZDMgPSBjaGlsZDIuZ2V0RmlsZShuYW1lMywgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNoaWxkNCA9IGNoaWxkMi5nZXREaXJlY3Rv
cnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLnZhcnNbImVudHJpZXMxIl1bImxlbmd0
aCJdIGlzIDIKK1BBU1MgdGhpcy52YXJzWyJlbnRyaWVzMiJdWyJsZW5ndGgiXSBpcyAyCitQQVNT
IFN1Y2NlZWRlZDogICAgIGRpcjRfY29weSA9IGRpcjQuY29weVRvKFJPT1QsICdkaXI0X2NvcHkn
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjaGlsZDJfY29weSA9IGRpcjRfY29weS5nZXREaXJlY3Rv
cnkobmFtZTIpCitQQVNTIHRoaXMudmFyc1siZW50cmllczFfY29weSJdWyJsZW5ndGgiXSBpcyAy
CitQQVNTIHRoaXMudmFyc1siZW50cmllczJfY29weSJdWyJsZW5ndGgiXSBpcyAyCitQQVNTIFN1
Y2NlZWRlZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyNC5mdWxsUGF0aCkKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgZGlyNC5nZXRGaWxlKG5hbWUxKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXI0
LmdldERpcmVjdG9yeShuYW1lMikKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHkuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1jb3B5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1NGI5YzFmZjQ5MWQ1ZjBi
OTkwZmYzNjYwOTY2NjIwNDczYzFlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1jb3B5Lmh0bWwKQEAgLTAsMCArMSwxNDQgQEAKKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBl
PSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVz
dC1zY3JpcHQiPgorICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAn
YicKKyAgICBuYW1lMyA9ICdjJworICAgIG5hbWU0ID0gJ2QnCisgICAgY3JlYXRlX2ZsYWcgPSB7
Y3JlYXRlOnRydWV9CisKKyAgICBwcmludCgnKiBDb3B5aW5nIGFuIGVudHJ5IHRvIHRoZSBzYW1l
IGRpcmVjdG9yeScpCisKKyAgICAjIFJlc2V0CisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJP
T1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIxID0gcGFyZW50
LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBwYXJlbnQuZ2V0
RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICAjIERpcmVjdG9yeQorICAgIGNvcGllZCA9
IGRpcjEuY29weVRvKHBhcmVudCwgbmFtZTMpCisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1l
MSkKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAgIyBGaWxlCisgICAgY29w
aWVkID0gZmlsZTIuY29weVRvKHBhcmVudCwgbmFtZTQpCisgICAgcGFyZW50LmdldERpcmVjdG9y
eShuYW1lMSkKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAgcHJpbnQoJyog
Q29weWluZyBlbnRyaWVzIHRvIGEgZGlmZmVyZW50IGRpcmVjdG9yeScpCisKKyAgICAjIFJlc2V0
CisgICAgcmVzZXQoKQorICAgIGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRl
X2ZsYWcpCisgICAgZGlyMiA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykK
KyAgICBjaGlsZDMgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAg
Y2hpbGQ0ID0gZGlyMS5nZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKKworICAgICMgRGlyZWN0
b3J5CisgICAgY29waWVkID0gY2hpbGQzLmNvcHlUbyhkaXIyLCBuYW1lMSkKKyAgICBkaXIxLmdl
dERpcmVjdG9yeShuYW1lMykKKyAgICBkaXIyLmdldERpcmVjdG9yeShuYW1lMSkKKworICAgICMg
RmlsZQorICAgIGNvcGllZCA9IGNoaWxkNC5jb3B5VG8oZGlyMiwgbmFtZTIpCisgICAgZGlyMS5n
ZXRGaWxlKG5hbWU0KQorICAgIGRpcjIuZ2V0RmlsZShuYW1lMikKKworICAgIHByaW50KCcqIENv
cHlpbmcgZW50cmllcyB0byB3aXRoIGVtcHR5IG5hbWVzJykKKworICAgICMgUmVzZXQKKyAgICBy
ZXNldCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykK
KyAgICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNo
aWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDQg
PSBkaXIxLmdldEZpbGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAgIyBEaXJlY3RvcnkKKyAg
ICBjb3BpZWQgPSBjaGlsZDMuY29weVRvKGRpcjIsIG51bGwpCisgICAgZGlyMS5nZXREaXJlY3Rv
cnkoY2hpbGQzLm5hbWUpCisgICAgZGlyMi5nZXREaXJlY3RvcnkoY2hpbGQzLm5hbWUpCisKKyAg
ICAjIEZpbGUKKyAgICBjb3BpZWQgPSBjaGlsZDQuY29weVRvKGRpcjIsIG51bGwpCisgICAgZGly
MS5nZXRGaWxlKGNoaWxkNC5uYW1lKQorICAgIGRpcjIuZ2V0RmlsZShjaGlsZDQubmFtZSkKKwor
ICAgIHByaW50KCcqIENvcHlpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJlY3Rvcnkgd2l0aCB0
aGUgc2FtZSBuYW1lJykKKworICAgICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0g
Uk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJl
bnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5n
ZXRGaWxlKG5hbWUyLCBjcmVhdGVfZmxhZykKKworICAgIGRpcjEuY29weVRvKHBhcmVudCwgbnVs
bCkgcmFpc2VzIDEzCisgICAgZGlyMS5jb3B5VG8ocGFyZW50LCBuYW1lMSkgcmFpc2VzIDEzCisg
ICAgZmlsZTIuY29weVRvKHBhcmVudCwgbnVsbCkgcmFpc2VzIDEzCisgICAgZmlsZTIuY29weVRv
KHBhcmVudCwgbmFtZTIpIHJhaXNlcyAxMworCisgICAgcHJpbnQoJyogVHJ5aW5nIHRvIGNvcHkg
bm9uLWV4aXN0ZW50IGVudHJpZXMnKQorCisgICAgbm9uZXhpc3RfZGlyID0gcGFyZW50LmdldERp
cmVjdG9yeShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgbm9uZXhpc3RfZmlsZSA9IHBhcmVudC5n
ZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKKyAgICBub25leGlzdF9kaXIucmVtb3ZlKCkKKyAg
ICBub25leGlzdF9maWxlLnJlbW92ZSgpCisKKyAgICBST09ULmdldERpcmVjdG9yeShub25leGlz
dF9kaXIuZnVsbFBhdGgpIHJhaXNlcyA4CisgICAgUk9PVC5nZXRGaWxlKG5vbmV4aXN0X2ZpbGUu
ZnVsbFBhdGgpIHJhaXNlcyA4CisKKyAgICBub25leGlzdF9kaXIuY29weVRvKGRpcjEsIG5hbWUy
KSByYWlzZXMgOAorICAgIG5vbmV4aXN0X2ZpbGUuY29weVRvKGRpcjIsIG5hbWUxKSByYWlzZXMg
OAorCisgICAgcHJpbnQoJyogQ29weWluZyBlbnRyaWVzIHRvIGEgbm9uLWV4aXN0ZW50IGRpcmVj
dG9yeScpCisKKyAgICBST09ULmdldERpcmVjdG9yeShub25leGlzdF9kaXIuZnVsbFBhdGgpIHJh
aXNlcyA4CisgICAgUk9PVC5nZXREaXJlY3RvcnkoZGlyMS5mdWxsUGF0aCkKKyAgICBST09ULmdl
dEZpbGUoZmlsZTIuZnVsbFBhdGgpCisKKyAgICBkaXIxLmNvcHlUbyhub25leGlzdF9kaXIsIG5h
bWUxKSByYWlzZXMgOAorICAgIGZpbGUyLmNvcHlUbyhub25leGlzdF9kaXIsIG5hbWUzKSByYWlz
ZXMgOAorCisgICAgcHJpbnQoJyogQ29weWluZyBlbnRyaWVzIHRvIGl0cyBjaGlsZCcpCisKKyAg
ICBST09ULmNvcHlUbyhkaXIxKSByYWlzZXMgMTMKKyAgICBwYXJlbnQuY29weVRvKGRpcjEpIHJh
aXNlcyAxMworCisgICAgcHJpbnQoJyogQ29weWluZyBhIGRpcmVjdG9yeSB3aXRoIGNoaWxkcmVu
JykKKworICAgIGRpcjQgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVhdGVfZmxhZykK
KyAgICBjaGlsZDEgPSBkaXI0LmdldEZpbGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxk
MiA9IGRpcjQuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBjaGlsZDMgPSBj
aGlsZDIuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQ0ID0gY2hpbGQyLmdl
dERpcmVjdG9yeShuYW1lNCwgY3JlYXRlX2ZsYWcpCisKKyAgICBlbnRyaWVzMSA9IGRpcjQucmVh
ZERpcmVjdG9yeSgpCisgICAgZW50cmllczIgPSBjaGlsZDIucmVhZERpcmVjdG9yeSgpCisgICAg
QVNTRVJUX0VRKDIsIGVudHJpZXMxLmxlbmd0aCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczIu
bGVuZ3RoKQorCisgICAgZGlyNF9jb3B5ID0gZGlyNC5jb3B5VG8oUk9PVCwgJ2RpcjRfY29weScp
CisgICAgY2hpbGQyX2NvcHkgPSBkaXI0X2NvcHkuZ2V0RGlyZWN0b3J5KG5hbWUyKQorCisgICAg
ZW50cmllczFfY29weSA9IGRpcjRfY29weS5yZWFkRGlyZWN0b3J5KCkKKyAgICBlbnRyaWVzMl9j
b3B5ID0gY2hpbGQyX2NvcHkucmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJp
ZXMxX2NvcHkubGVuZ3RoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMl9jb3B5Lmxlbmd0aCkK
KworICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyNC5mdWxsUGF0aCkKKyAgICBkaXI0LmdldEZp
bGUobmFtZTEpCisgICAgZGlyNC5nZXREaXJlY3RvcnkobmFtZTIpCisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vb3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9vcC1nZXQtZW50cnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YWVmZWQ1ZTZhZmIyYWU2
NDgxMzNkY2Y4YWMyYTgyOTE0NTk3NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk0IEBA
CitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorKiBDcmVhdGluZyB0b3AtbGV2
ZWwgZGlyZWN0b3JpZXMgYW5kIGZpbGVzCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFT
UyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9m
bGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlMiA9IFJPT1QuZ2V0RmlsZShuYW1lMiwgY3Jl
YXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZGlyMSJdWyJuYW1lIl0gaXMgdGhpcy52YXJzWyJu
YW1lMSJdCitQQVNTIHRoaXMudmFyc1siZmlsZTIiXVsibmFtZSJdIGlzIHRoaXMudmFyc1sibmFt
ZTIiXQorUEFTUyB0aGlzLnZhcnNbImRpcjEiXVsiaXNEaXJlY3RvcnkiXSBpcyB0aGlzLnZhcnNb
InRydWUiXQorUEFTUyB0aGlzLnZhcnNbImRpcjEiXVsiaXNGaWxlIl0gaXMgdGhpcy52YXJzWyJm
YWxzZSJdCitQQVNTIHRoaXMudmFyc1siZmlsZTIiXVsiaXNEaXJlY3RvcnkiXSBpcyB0aGlzLnZh
cnNbImZhbHNlIl0KK1BBU1MgdGhpcy52YXJzWyJmaWxlMiJdWyJpc0ZpbGUiXSBpcyB0aGlzLnZh
cnNbInRydWUiXQorKiBDcmVhdGluZyBuZXN0ZWQgZGlyZWN0b3JpZXMgYW5kIGZpbGVzCitQQVNT
IFN1Y2NlZWRlZDogICAgIGRpcjFfZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVh
dGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMV9maWxlMyA9IGRpcjEuZ2V0RmlsZShu
YW1lMywgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZGlyMV9kaXIyIl1bImZ1bGxQYXRo
Il0gaXMgJy9hL2InCitQQVNTIHRoaXMudmFyc1siZGlyMV9maWxlMyJdWyJmdWxsUGF0aCJdIGlz
ICcvYS9jJworKiBDcmVhdGluZyBoZWF2aWx5IG5lc3RlZCBlbnRyaWVzCitSZXNldGluZyB0aGUg
ZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQxID0gUk9PVC5nZXREaXJl
Y3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQyID0g
bmVzdGVkMS5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6
ICAgICBuZXN0ZWQzID0gbmVzdGVkMi5nZXREaXJlY3RvcnkobmFtZTMsIGNyZWF0ZV9mbGFnKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQ0ID0gbmVzdGVkMy5nZXREaXJlY3RvcnkobmFtZTQs
IGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBuZXN0ZWQ1ID0gbmVzdGVkNC5nZXRG
aWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgdGhpcy52YXJzWyJuZXN0ZWQ1Il1bImZ1bGxQ
YXRoIl0gaXMgJy9hL2IvYy9kL2EnCitQQVNTIHRoaXMudmFyc1sibmVzdGVkNSJdWyJuYW1lIl0g
aXMgdGhpcy52YXJzWyJuYW1lMSJdCisqIEdldHRpbmcgZXhpc3RpbmcgZW50cmllcworUmVzZXRp
bmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5n
ZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBk
aXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFT
UyBTdWNjZWVkZWQ6ICAgICBkaXIxXzIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorUEFT
UyBTdWNjZWVkZWQ6ICAgICBmaWxlMl8yID0gcGFyZW50LmdldEZpbGUobmFtZTIpCitQQVNTIHRo
aXMudmFyc1siZGlyMV8yIl1bImZ1bGxQYXRoIl0gaXMgdGhpcy52YXJzWyJkaXIxIl1bImZ1bGxQ
YXRoIl0KK1BBU1MgdGhpcy52YXJzWyJmaWxlMl8yIl1bImZ1bGxQYXRoIl0gaXMgdGhpcy52YXJz
WyJmaWxlMiJdWyJmdWxsUGF0aCJdCisqIEdldHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCBm
dWxsIHBhdGhzLgorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAg
ICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFT
UyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5h
bWUyLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyID0gUk9PVC5nZXREaXJl
Y3RvcnkoJy9wYXJlbnQvYS9hJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZp
bGUgPSBST09ULmdldEZpbGUoJy9wYXJlbnQvYS9iJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGRpcjEuZ2V0RGlyZWN0b3J5KCdhJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGly
MS5nZXRGaWxlKCdiJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyID0gZGlyMi5nZXREaXJlY3Rv
cnkoJy9wYXJlbnQvYS9jJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUg
PSBkaXIyLmdldEZpbGUoJy9wYXJlbnQvYS9kJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRl
ZDogICAgIGRpcjEuZ2V0RGlyZWN0b3J5KCdjJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMS5n
ZXRGaWxlKCdkJykKKyogR2V0dGluZyBmaWxlcy9kaXJlY3RvcmllcyB3aXRoIHJlbGF0aXZlIHBh
dGhzLgorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFy
ZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcp
CitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMiwgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpciA9IGRpcjEuZ2V0RGlyZWN0b3J5KCdi
L2EnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZSA9IGRpcjEuZ2V0Rmls
ZSgnYi9iJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIFJPT1QuZ2V0RGlyZWN0
b3J5KCcvcGFyZW50L2EvYi9hJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgUk9PVC5nZXRGaWxlKCcv
cGFyZW50L2EvYi9iJykKK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50LmdldERpcmVjdG9yeSgn
YS9iL2EnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RmlsZSgnYS9iL2InKQorKiBU
cnlpbmcgdG8gZ2V0L2NyZWF0ZSBlbnRyaWVzIGF0IG5vbi1leGlzdGVudCBwYXRoCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUg
aXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgaXMgIjgiCisqIENhbGxpbmcgZ2V0RmlsZSBmb3IgYSBkaXJlY3Rvcnks
IGdldERpcmVjdG9yeSBmb3IgYSBmaWxlCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFT
UyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRl
X2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpciA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFt
ZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlID0gcGFyZW50LmdldEZp
bGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIx
MSIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTEiCitQQVNTIHRoaXMuZXhwZWN0
ZWRFcnJvckNvZGUgaXMgIjExIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMSIK
KyogVHJ5aW5nIHRvIGNyZWF0ZSBlbnRyaWVzIHdpdGggZXhjbHVzaXZlIGZsYWcKK1Jlc2V0aW5n
IHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIHBhcmVudCA9IFJPT1QuZ2V0
RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyID0g
cGFyZW50LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDog
ICAgIGZpbGUgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlz
ICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIucmVtb3ZlKCkK
K1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZS5yZW1vdmUoKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBS
T09ULmdldERpcmVjdG9yeShkaXIuZnVsbFBhdGgsIGV4Y2x1c2l2ZV9mbGFnKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBST09ULmdldEZpbGUoZmlsZS5mdWxsUGF0aCwgZXhjbHVzaXZlX2ZsYWcpCitQ
QVNTIFN1Y2NlZWRlZDogICAgIGRpci5yZW1vdmUoKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxl
LnJlbW92ZSgpCitQQVNTIFN1Y2NlZWRlZDogICAgIHBhcmVudC5nZXREaXJlY3RvcnkoZGlyLm5h
bWUsIGV4Y2x1c2l2ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RmlsZShm
aWxlLm5hbWUsIGV4Y2x1c2l2ZV9mbGFnKQorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZi
M2I5ZDNlNzYyOTEzMWY4Y2E3NWNmMmRjMjk0MTc0ZDQzNWE1ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtZW50cnkuaHRtbApAQCAtMCwwICsx
LDE0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9m
cy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0
LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwi
IGlkPSJmaWxlLXN5c3RlbS10ZXN0LXNjcmlwdCI+CisKKyAgICBuYW1lMSA9ICdhJworICAgIG5h
bWUyID0gJ2InCisgICAgbmFtZTMgPSAnYycKKyAgICBuYW1lNCA9ICdkJworCisgICAgY3JlYXRl
X2ZsYWcgPSB7Y3JlYXRlOnRydWV9CisgICAgZXhjbHVzaXZlX2ZsYWcgPSB7Y3JlYXRlOnRydWUs
IGV4Y2x1c2l2ZTp0cnVlfQorCisgICAgcHJpbnQoJyogQ3JlYXRpbmcgdG9wLWxldmVsIGRpcmVj
dG9yaWVzIGFuZCBmaWxlcycpCisKKyAgICByZXNldCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IFJPT1QuZ2V0RmlsZShuYW1l
MiwgY3JlYXRlX2ZsYWcpCisgICAgQVNTRVJUX0VRKG5hbWUxLCBkaXIxLm5hbWUpCisgICAgQVNT
RVJUX0VRKG5hbWUyLCBmaWxlMi5uYW1lKQorICAgIEFTU0VSVF9FUSh0cnVlLCBkaXIxLmlzRGly
ZWN0b3J5KQorICAgIEFTU0VSVF9FUShmYWxzZSwgZGlyMS5pc0ZpbGUpCisgICAgQVNTRVJUX0VR
KGZhbHNlLCBmaWxlMi5pc0RpcmVjdG9yeSkKKyAgICBBU1NFUlRfRVEodHJ1ZSwgZmlsZTIuaXNG
aWxlKQorCisgICAgcHJpbnQoJyogQ3JlYXRpbmcgbmVzdGVkIGRpcmVjdG9yaWVzIGFuZCBmaWxl
cycpCisKKyAgICBkaXIxX2RpcjIgPSBkaXIxLmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2Zs
YWcpCisgICAgZGlyMV9maWxlMyA9IGRpcjEuZ2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisg
ICAgQVNTRVJUX0VRKCcvYS9iJywgZGlyMV9kaXIyLmZ1bGxQYXRoKQorICAgIEFTU0VSVF9FUSgn
L2EvYycsIGRpcjFfZmlsZTMuZnVsbFBhdGgpCisKKyAgICBwcmludCgnKiBDcmVhdGluZyBoZWF2
aWx5IG5lc3RlZCBlbnRyaWVzJykKKworICAgIHJlc2V0KCkKKyAgICBuZXN0ZWQxID0gUk9PVC5n
ZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIG5lc3RlZDIgPSBuZXN0ZWQxLmdl
dERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgbmVzdGVkMyA9IG5lc3RlZDIuZ2V0
RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKKyAgICBuZXN0ZWQ0ID0gbmVzdGVkMy5nZXRE
aXJlY3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorICAgIG5lc3RlZDUgPSBuZXN0ZWQ0LmdldEZp
bGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIEFTU0VSVF9FUSgnL2EvYi9jL2QvYScsIG5lc3Rl
ZDUuZnVsbFBhdGgpCisgICAgQVNTRVJUX0VRKG5hbWUxLCBuZXN0ZWQ1Lm5hbWUpCisKKyAgICBw
cmludCgnKiBHZXR0aW5nIGV4aXN0aW5nIGVudHJpZXMnKQorCisgICAgcmVzZXQoKQorICAgIHBh
cmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAgICBkaXIx
ID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBw
YXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBkaXIxXzIgPSBwYXJlbnQu
Z2V0RGlyZWN0b3J5KG5hbWUxKQorICAgIGZpbGUyXzIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMikK
KyAgICBBU1NFUlRfRVEoZGlyMS5mdWxsUGF0aCwgZGlyMV8yLmZ1bGxQYXRoKQorICAgIEFTU0VS
VF9FUShmaWxlMi5mdWxsUGF0aCwgZmlsZTJfMi5mdWxsUGF0aCkKKworICAgIHByaW50KCcqIEdl
dHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCBmdWxsIHBhdGhzLicpCisKKyAgICByZXNldCgp
CisgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQor
ICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBk
aXIyID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBkaXIg
PSBST09ULmdldERpcmVjdG9yeSgnL3BhcmVudC9hL2EnLCBjcmVhdGVfZmxhZykKKyAgICBmaWxl
ID0gUk9PVC5nZXRGaWxlKCcvcGFyZW50L2EvYicsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEuZ2V0
RGlyZWN0b3J5KCdhJykKKyAgICBkaXIxLmdldEZpbGUoJ2InKQorCisgICAgIyBUaGUgZW50cnkn
cyBwYXRoIG11c3Qgbm90IGJlIHVzZWQgaWYgdGhlIGdpdmVuIHBhdGggaXMgYSBmdWxsIHBhdGgu
CisgICAgZGlyID0gZGlyMi5nZXREaXJlY3RvcnkoJy9wYXJlbnQvYS9jJywgY3JlYXRlX2ZsYWcp
CisgICAgZmlsZSA9IGRpcjIuZ2V0RmlsZSgnL3BhcmVudC9hL2QnLCBjcmVhdGVfZmxhZykKKyAg
ICBkaXIxLmdldERpcmVjdG9yeSgnYycpCisgICAgZGlyMS5nZXRGaWxlKCdkJykKKworICAgIHBy
aW50KCcqIEdldHRpbmcgZmlsZXMvZGlyZWN0b3JpZXMgd2l0aCByZWxhdGl2ZSBwYXRocy4nKQor
CisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBj
cmVhdGVfZmxhZykKKyAgICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRl
X2ZsYWcpCisgICAgZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykK
KworICAgIGRpciA9IGRpcjEuZ2V0RGlyZWN0b3J5KCdiL2EnLCBjcmVhdGVfZmxhZykKKyAgICBm
aWxlID0gZGlyMS5nZXRGaWxlKCdiL2InLCBjcmVhdGVfZmxhZykKKyAgICBST09ULmdldERpcmVj
dG9yeSgnL3BhcmVudC9hL2IvYScpCisgICAgUk9PVC5nZXRGaWxlKCcvcGFyZW50L2EvYi9iJykK
KyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KCdhL2IvYScpCisgICAgcGFyZW50LmdldEZpbGUoJ2Ev
Yi9iJykKKworICAgIHByaW50KCcqIFRyeWluZyB0byBnZXQvY3JlYXRlIGVudHJpZXMgYXQgbm9u
LWV4aXN0ZW50IHBhdGgnKQorCisgICAgZGlyMS5nZXRGaWxlKCdub25leGlzdGVudCcpIHJhaXNl
cyA4CisgICAgZGlyMS5nZXREaXJlY3RvcnkoJ25vbmV4aXN0ZW50JykgcmFpc2VzIDgKKyAgICBk
aXIxLmdldEZpbGUoJ25vbmV4aXN0ZW50L2QnLCBjcmVhdGVfZmxhZykgcmFpc2VzIDgKKyAgICBk
aXIxLmdldERpcmVjdG9yeSgnbm9uZXhpc3RlbnQvZCcsIGNyZWF0ZV9mbGFnKSByYWlzZXMgOAor
CisgICAgcHJpbnQoJyogQ2FsbGluZyBnZXRGaWxlIGZvciBhIGRpcmVjdG9yeSwgZ2V0RGlyZWN0
b3J5IGZvciBhIGZpbGUnKQorCisgICAgcmVzZXQoKQorICAgIHBhcmVudCA9IFJPT1QuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBkaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5
KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlID0gcGFyZW50LmdldEZpbGUobmFtZTMsIGNy
ZWF0ZV9mbGFnKQorCisgICAgUk9PVC5nZXREaXJlY3RvcnkoZmlsZS5mdWxsUGF0aCkgcmFpc2Vz
IDExCisgICAgUk9PVC5nZXRGaWxlKGRpci5mdWxsUGF0aCkgcmFpc2VzIDExCisgICAgcGFyZW50
LmdldERpcmVjdG9yeShmaWxlLm5hbWUpIHJhaXNlcyAxMQorICAgIHBhcmVudC5nZXRGaWxlKGRp
ci5uYW1lKSByYWlzZXMgMTEKKworICAgIHByaW50KCcqIFRyeWluZyB0byBjcmVhdGUgZW50cmll
cyB3aXRoIGV4Y2x1c2l2ZSBmbGFnJykKKworICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09U
LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyID0gcGFyZW50LmdldERp
cmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZSA9IHBhcmVudC5nZXRGaWxlKG5h
bWUzLCBjcmVhdGVfZmxhZykKKworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpci5mdWxsUGF0aCwg
ZXhjbHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZShmaWxlLmZ1bGxQYXRo
LCBleGNsdXNpdmVfZmxhZykgcmFpc2VzIDEzCisgICAgcGFyZW50LmdldERpcmVjdG9yeShkaXIu
bmFtZSwgZXhjbHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworICAgIHBhcmVudC5nZXRGaWxlKGZpbGUu
bmFtZSwgZXhjbHVzaXZlX2ZsYWcpIHJhaXNlcyAxMworCisgICAgZGlyLnJlbW92ZSgpCisgICAg
ZmlsZS5yZW1vdmUoKQorCisgICAgIyBOb3cgdGhpcyBzaG91bGQgc3VjY2VlZC4KKyAgICBST09U
LmdldERpcmVjdG9yeShkaXIuZnVsbFBhdGgsIGV4Y2x1c2l2ZV9mbGFnKQorICAgIFJPT1QuZ2V0
RmlsZShmaWxlLmZ1bGxQYXRoLCBleGNsdXNpdmVfZmxhZykKKworICAgIGRpci5yZW1vdmUoKQor
ICAgIGZpbGUucmVtb3ZlKCkKKworICAgICMgTm93IHRoaXMgc2hvdWxkIHN1Y2NlZWQuCisgICAg
cGFyZW50LmdldERpcmVjdG9yeShkaXIubmFtZSwgZXhjbHVzaXZlX2ZsYWcpCisgICAgcGFyZW50
LmdldEZpbGUoZmlsZS5uYW1lLCBleGNsdXNpdmVfZmxhZykKKworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9v
cC1nZXQtbWV0YWRhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLWdldC1tZXRhZGF0YS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUwYTI1ODYxNTQ1NmJj
NTY3NGYxOTI1MGZiNGRiMWU1MDQ4NDkyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MjAgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIFN1Y2NlZWRl
ZDogICAgIHN0YXJ0ID0gUk9PVC5nZXRNZXRhZGF0YSgpOworUmVzZXRpbmcgdGhlIGZpbGVzeXN0
ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUx
LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZTIgPSBST09ULmdldEZpbGUo
bmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxX2ZpbGUxID0gZGly
MS5nZXRGaWxlKG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMV9k
aXIyID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0ZV9mbGFnKQorKiBHZXQgbWV0YWRh
dGEgZm9yIGRpcmVjdG9yaWVzCitQQVNTIFN1Y2NlZWRlZDogICAgIG1ldGFkYXRhID0gZGlyMS5n
ZXRNZXRhZGF0YSgpCitQQVNTIFN1Y2NlZWRlZDogICAgIG1ldGFkYXRhID0gZGlyMV9kaXIyLmdl
dE1ldGFkYXRhKCkKKyogR2V0IG1ldGFkYXRhIGZvciBmaWxlcworUEFTUyBTdWNjZWVkZWQ6ICAg
ICBtZXRhZGF0YSA9IGZpbGUyLmdldE1ldGFkYXRhKCkKK1BBU1MgU3VjY2VlZGVkOiAgICAgbWV0
YWRhdGEgPSBkaXIxX2ZpbGUxLmdldE1ldGFkYXRhKCkKK1BBU1MgU3VjY2VlZGVkOiAgICAgZW5k
ID0gZGlyMV9maWxlMS5nZXRNZXRhZGF0YSgpCitQQVNTICJbb2JqZWN0IE1ldGFkYXRhXSIgaXMg
Pj0gIltvYmplY3QgTWV0YWRhdGFdIgorU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LW1ldGFkYXRhLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGU0MmJjNTczM2E5NzRjNDE1NzJkMTdkMjAwNjY2YTcxNzQyNzY0OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtbWV0YWRhdGEuaHRtbApAQCAt
MCwwICsxLDQwIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Zz
LXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1z
aGVsbCIgaWQ9ImZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Ij4KKworICAgIHN0YXJ0ID0gUk9PVC5n
ZXRNZXRhZGF0YSgpOworICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIg
PSAnYicKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIGRpcjEgPSBST09U
LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmlsZTIgPSBST09ULmdldEZp
bGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZmlsZTEgPSBkaXIxLmdldEZpbGUobmFt
ZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjFfZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUy
LCBjcmVhdGVfZmxhZykKKworICAgIHByaW50KCcqIEdldCBtZXRhZGF0YSBmb3IgZGlyZWN0b3Jp
ZXMnKQorICAgIG1ldGFkYXRhID0gZGlyMS5nZXRNZXRhZGF0YSgpCisgICAgbWV0YWRhdGEgPSBk
aXIxX2RpcjIuZ2V0TWV0YWRhdGEoKQorCisgICAgcHJpbnQoJyogR2V0IG1ldGFkYXRhIGZvciBm
aWxlcycpCisgICAgbWV0YWRhdGEgPSBmaWxlMi5nZXRNZXRhZGF0YSgpCisgICAgbWV0YWRhdGEg
PSBkaXIxX2ZpbGUxLmdldE1ldGFkYXRhKCkKKworICAgICMgTWFrZSBzdXJlIHdlIGdldCB0aGUg
bmV3ZXIgdGltZXN0YW1wLgorICAgIGVuZCA9IGRpcjFfZmlsZTEuZ2V0TWV0YWRhdGEoKQorICAg
IEFTU0VSVF9HRShlbmQsIHN0YXJ0KQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NzUzNDY3Y2JhMjE0MTk5NzI1YjI3ZTUxZmU3YzI3
Y2JiYjIzNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
b3AtZ2V0LXBhcmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorR290IEZpbGVTeXN0
ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KKyogR2V0dGluZyBhIHBhcmVudCBvZiBlbnRyaWVzLgor
UmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMSA9IFJP
T1QuZ2V0RGlyZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAg
ZGlyMiA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZmlsZTMgPSBkaXIyLmdldEZpbGUobmFtZTMsIGNyZWF0ZV9mbGFnKQorUEFTUyBT
dWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBmaWxlMy5nZXRQYXJlbnQoKQorUEFTUyB0aGlzLnZhcnNb
ImRpcjIiXVsiZnVsbFBhdGgiXSBpcyB0aGlzLnZhcnNbInBhcmVudCJdWyJmdWxsUGF0aCJdCitQ
QVNTIFN1Y2NlZWRlZDogICAgIHBhcmVudCA9IGRpcjIuZ2V0UGFyZW50KCkKK1BBU1MgdGhpcy52
YXJzWyJkaXIxIl1bImZ1bGxQYXRoIl0gaXMgdGhpcy52YXJzWyJwYXJlbnQiXVsiZnVsbFBhdGgi
XQorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBkaXIxLmdldFBhcmVudCgpCitQQVNTIHRo
aXMudmFyc1siUk9PVCJdWyJmdWxsUGF0aCJdIGlzIHRoaXMudmFyc1sicGFyZW50Il1bImZ1bGxQ
YXRoIl0KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXRQYXJlbnQoKQorUEFT
UyB0aGlzLnZhcnNbIlJPT1QiXVsiZnVsbFBhdGgiXSBpcyB0aGlzLnZhcnNbInBhcmVudCJdWyJm
dWxsUGF0aCJdCitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzOWE2NGE4MTFhN2I0Y2Iw
ZjUyM2IxNTRjYTA2Zjc2MjdkNmQ4MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlw
dCB0eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0
ZW0tdGVzdC1zY3JpcHQiPgorCisgICAgbmFtZTEgPSAnYScKKyAgICBuYW1lMiA9ICdiJworICAg
IG5hbWUzID0gJ2MnCisKKyAgICBjcmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIHBy
aW50KCcqIEdldHRpbmcgYSBwYXJlbnQgb2YgZW50cmllcy4nKQorCisgICAgcmVzZXQoKQorICAg
IGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZGlyMiA9
IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUyLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMyA9IGRpcjIu
Z2V0RmlsZShuYW1lMywgY3JlYXRlX2ZsYWcpCisKKyAgICBwYXJlbnQgPSBmaWxlMy5nZXRQYXJl
bnQoKQorICAgIEFTU0VSVF9FUShwYXJlbnQuZnVsbFBhdGgsIGRpcjIuZnVsbFBhdGgpCisKKyAg
ICBwYXJlbnQgPSBkaXIyLmdldFBhcmVudCgpCisgICAgQVNTRVJUX0VRKHBhcmVudC5mdWxsUGF0
aCwgZGlyMS5mdWxsUGF0aCkKKworICAgIHBhcmVudCA9IGRpcjEuZ2V0UGFyZW50KCkKKyAgICBB
U1NFUlRfRVEocGFyZW50LmZ1bGxQYXRoLCBST09ULmZ1bGxQYXRoKQorCisgICAgcGFyZW50ID0g
Uk9PVC5nZXRQYXJlbnQoKQorICAgIEFTU0VSVF9FUShwYXJlbnQuZnVsbFBhdGgsIFJPT1QuZnVs
bFBhdGgpCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxs
LXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE3NDk2YjQ3NWZiNzM0MGI5ODk5MThhMjM5ODAzZDAxMjk2YTk0OTIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw4MiBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0
aW5nIHRoZSBmaWxlc3lzdGVtLi4uCisqIE1vdmluZyBhbiBlbnRyeSB0byB0aGUgc2FtZSBkaXJl
Y3RvcnkKK1Jlc2V0aW5nIHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIHBh
cmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEsIGNyZWF0ZV9mbGFn
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5hbWUyLCBjcmVh
dGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBkaXIxLm1vdmVUbyhwYXJlbnQs
IG5hbWUzKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorUEFTUyBTdWNjZWVk
ZWQ6ICAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBt
b3ZlZCA9IGZpbGUyLm1vdmVUbyhwYXJlbnQsIG5hbWU0KQorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlIGlzICI4IgorUEFTUyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5h
bWUzKQorKiBNb3ZpbmcgZW50cmllcyB0byBhIGRpZmZlcmVudCBkaXJlY3RvcnkKK1Jlc2V0aW5n
IHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEgPSBST09ULmdldERp
cmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBS
T09ULmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAg
IGNoaWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxhZykKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgY2hpbGQ0ID0gZGlyMS5nZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKK1BB
U1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBjaGlsZDMubW92ZVRvKGRpcjIsIG5hbWUxKQorUEFT
UyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIy
LmdldERpcmVjdG9yeShuYW1lMSkKK1BBU1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBjaGlsZDQu
bW92ZVRvKGRpcjIsIG5hbWUyKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4Igor
UEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIyLmdldEZpbGUobmFtZTIpCisqIE1vdmluZyBlbnRyaWVz
IHRvIHdpdGggZW1wdHkgbmFtZXMKK1Jlc2V0aW5nIHRoZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1
Y2NlZWRlZDogICAgIGRpcjEgPSBST09ULmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcp
CitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIgPSBST09ULmdldERpcmVjdG9yeShuYW1lMiwgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGNoaWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5
KG5hbWUzLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgY2hpbGQ0ID0gZGlyMS5n
ZXRGaWxlKG5hbWU0LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbW92ZWQgPSBj
aGlsZDMubW92ZVRvKGRpcjIsIG51bGwpCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMg
IjgiCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjIuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQor
UEFTUyBTdWNjZWVkZWQ6ICAgICBtb3ZlZCA9IGNoaWxkNC5tb3ZlVG8oZGlyMiwgbnVsbCkKK1BB
U1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGly
Mi5nZXRGaWxlKGNoaWxkNC5uYW1lKQorKiBNb3ZpbmcgZW50cmllcyB0byB0aGUgc2FtZSBkaXJl
Y3Rvcnkgd2l0aCB0aGUgc2FtZSBuYW1lCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFT
UyBTdWNjZWVkZWQ6ICAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgncGFyZW50JywgY3Jl
YXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5
KG5hbWUxLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZmlsZTIgPSBwYXJlbnQu
Z2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUg
aXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5l
eHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMg
IjEzIgorKiBUcnlpbmcgdG8gbW92ZSBub24tZXhpc3RlbnQgZW50cmllcworUEFTUyBTdWNjZWVk
ZWQ6ICAgICBub25leGlzdF9kaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVf
ZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbm9uZXhpc3RfZmlsZSA9IHBhcmVudC5nZXRGaWxl
KG5hbWU0LCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgbm9uZXhpc3RfZGlyLnJl
bW92ZSgpCitQQVNTIFN1Y2NlZWRlZDogICAgIG5vbmV4aXN0X2ZpbGUucmVtb3ZlKCkKK1BBU1Mg
dGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29k
ZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5l
eHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKKyogTW92aW5nIGVudHJpZXMgdG8gYSBub24tZXhpc3Rl
bnQgZGlyZWN0b3J5CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjgiCitQQVNTIFN1
Y2NlZWRlZDogICAgIFJPT1QuZ2V0RGlyZWN0b3J5KGRpcjEuZnVsbFBhdGgpCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIFJPT1QuZ2V0RmlsZShmaWxlMi5mdWxsUGF0aCkKK1BBU1MgdGhpcy5leHBlY3Rl
ZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKKyog
TW92aW5nIGVudHJpZXMgdG8gaXRzIGNoaWxkCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUg
aXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKKyogTW92aW5nIGEg
ZGlyZWN0b3J5IHdpdGggY2hpbGRyZW4KK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyNCA9IHBhcmVu
dC5nZXREaXJlY3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBj
aGlsZDEgPSBkaXI0LmdldEZpbGUobmFtZTEsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6
ICAgICBjaGlsZDIgPSBkaXI0LmdldERpcmVjdG9yeShuYW1lMiwgY3JlYXRlX2ZsYWcpCitQQVNT
IFN1Y2NlZWRlZDogICAgIGNoaWxkMyA9IGNoaWxkMi5nZXRGaWxlKG5hbWUzLCBjcmVhdGVfZmxh
ZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgY2hpbGQ0ID0gY2hpbGQyLmdldERpcmVjdG9yeShuYW1l
NCwgY3JlYXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZW50cmllczEiXVsibGVuZ3RoIl0gaXMg
MgorUEFTUyB0aGlzLnZhcnNbImVudHJpZXMyIl1bImxlbmd0aCJdIGlzIDIKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgZGlyNF9uZXcgPSBkaXI0Lm1vdmVUbyhST09ULCAnZGlyNF9uZXcnKQorUEFTUyBT
dWNjZWVkZWQ6ICAgICBjaGlsZDJfbmV3ID0gZGlyNF9uZXcuZ2V0RGlyZWN0b3J5KG5hbWUyKQor
UEFTUyB0aGlzLnZhcnNbImVudHJpZXMxX25ldyJdWyJsZW5ndGgiXSBpcyAyCitQQVNTIHRoaXMu
dmFyc1siZW50cmllczJfbmV3Il1bImxlbmd0aCJdIGlzIDIKK1BBU1MgdGhpcy5leHBlY3RlZEVy
cm9yQ29kZSBpcyAiOCIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9vcC1tb3ZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY1NWI0NTczMzQxNmVkYTlhYjc2MGMy
ZDExOWM2NjM0OTc3NDUwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9vcC1tb3ZlLmh0bWwKQEAgLTAsMCArMSwxNDIgQEAKKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBs
aWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3Jp
cHQiPgorICAgIHJlc2V0KCkKKworICAgIG5hbWUxID0gJ2EnCisgICAgbmFtZTIgPSAnYicKKyAg
ICBuYW1lMyA9ICdjJworICAgIG5hbWU0ID0gJ2QnCisgICAgY3JlYXRlX2ZsYWcgPSB7Y3JlYXRl
OnRydWV9CisKKyAgICBwcmludCgnKiBNb3ZpbmcgYW4gZW50cnkgdG8gdGhlIHNhbWUgZGlyZWN0
b3J5JykKKworICAgICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXRE
aXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5h
bWUyLCBjcmVhdGVfZmxhZykKKworICAgICMgRGlyZWN0b3J5CisgICAgbW92ZWQgPSBkaXIxLm1v
dmVUbyhwYXJlbnQsIG5hbWUzKQorICAgIHBhcmVudC5nZXREaXJlY3RvcnkobmFtZTEpIHJhaXNl
cyA4CisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMykKKworICAgICMgRmlsZQorICAgIG1v
dmVkID0gZmlsZTIubW92ZVRvKHBhcmVudCwgbmFtZTQpCisgICAgcGFyZW50LmdldERpcmVjdG9y
eShuYW1lMSkgcmFpc2VzIDgKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzKQorCisgICAg
cHJpbnQoJyogTW92aW5nIGVudHJpZXMgdG8gYSBkaWZmZXJlbnQgZGlyZWN0b3J5JykKKworICAg
ICMgUmVzZXQKKyAgICByZXNldCgpCisgICAgZGlyMSA9IFJPT1QuZ2V0RGlyZWN0b3J5KG5hbWUx
LCBjcmVhdGVfZmxhZykKKyAgICBkaXIyID0gUk9PVC5nZXREaXJlY3RvcnkobmFtZTIsIGNyZWF0
ZV9mbGFnKQorICAgIGNoaWxkMyA9IGRpcjEuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVhdGVfZmxh
ZykKKyAgICBjaGlsZDQgPSBkaXIxLmdldEZpbGUobmFtZTQsIGNyZWF0ZV9mbGFnKQorCisgICAg
IyBEaXJlY3RvcnkKKyAgICBtb3ZlZCA9IGNoaWxkMy5tb3ZlVG8oZGlyMiwgbmFtZTEpCisgICAg
ZGlyMS5nZXREaXJlY3RvcnkobmFtZTMpIHJhaXNlcyA4CisgICAgZGlyMi5nZXREaXJlY3Rvcnko
bmFtZTEpCisKKyAgICAjIEZpbGUKKyAgICBtb3ZlZCA9IGNoaWxkNC5tb3ZlVG8oZGlyMiwgbmFt
ZTIpCisgICAgZGlyMS5nZXRGaWxlKG5hbWU0KSByYWlzZXMgOAorICAgIGRpcjIuZ2V0RmlsZShu
YW1lMikKKworICAgIHByaW50KCcqIE1vdmluZyBlbnRyaWVzIHRvIHdpdGggZW1wdHkgbmFtZXMn
KQorCisgICAgIyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBkaXIxID0gUk9PVC5nZXREaXJlY3Rv
cnkobmFtZTEsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjIgPSBST09ULmdldERpcmVjdG9yeShuYW1l
MiwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQzID0gZGlyMS5nZXREaXJlY3RvcnkobmFtZTMsIGNy
ZWF0ZV9mbGFnKQorICAgIGNoaWxkNCA9IGRpcjEuZ2V0RmlsZShuYW1lNCwgY3JlYXRlX2ZsYWcp
CisKKyAgICAjIERpcmVjdG9yeQorICAgIG1vdmVkID0gY2hpbGQzLm1vdmVUbyhkaXIyLCBudWxs
KQorICAgIGRpcjEuZ2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKSByYWlzZXMgOAorICAgIGRpcjIu
Z2V0RGlyZWN0b3J5KGNoaWxkMy5uYW1lKQorCisgICAgIyBGaWxlCisgICAgbW92ZWQgPSBjaGls
ZDQubW92ZVRvKGRpcjIsIG51bGwpCisgICAgZGlyMS5nZXRGaWxlKGNoaWxkNC5uYW1lKSByYWlz
ZXMgOAorICAgIGRpcjIuZ2V0RmlsZShjaGlsZDQubmFtZSkKKworICAgIHByaW50KCcqIE1vdmlu
ZyBlbnRyaWVzIHRvIHRoZSBzYW1lIGRpcmVjdG9yeSB3aXRoIHRoZSBzYW1lIG5hbWUnKQorCisg
ICAgIyBSZXNldAorICAgIHJlc2V0KCkKKyAgICBwYXJlbnQgPSBST09ULmdldERpcmVjdG9yeSgn
cGFyZW50JywgY3JlYXRlX2ZsYWcpCisgICAgZGlyMSA9IHBhcmVudC5nZXREaXJlY3RvcnkobmFt
ZTEsIGNyZWF0ZV9mbGFnKQorICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0
ZV9mbGFnKQorCisgICAgZGlyMS5tb3ZlVG8ocGFyZW50LCBudWxsKSByYWlzZXMgMTMKKyAgICBk
aXIxLm1vdmVUbyhwYXJlbnQsIG5hbWUxKSByYWlzZXMgMTMKKyAgICBmaWxlMi5tb3ZlVG8ocGFy
ZW50LCBudWxsKSByYWlzZXMgMTMKKyAgICBmaWxlMi5tb3ZlVG8ocGFyZW50LCBuYW1lMikgcmFp
c2VzIDEzCisKKyAgICBwcmludCgnKiBUcnlpbmcgdG8gbW92ZSBub24tZXhpc3RlbnQgZW50cmll
cycpCisKKyAgICBub25leGlzdF9kaXIgPSBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUzLCBjcmVh
dGVfZmxhZykKKyAgICBub25leGlzdF9maWxlID0gcGFyZW50LmdldEZpbGUobmFtZTQsIGNyZWF0
ZV9mbGFnKQorICAgIG5vbmV4aXN0X2Rpci5yZW1vdmUoKQorICAgIG5vbmV4aXN0X2ZpbGUucmVt
b3ZlKCkKKworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KG5vbmV4aXN0X2Rpci5mdWxsUGF0aCkgcmFp
c2VzIDgKKyAgICBST09ULmdldEZpbGUobm9uZXhpc3RfZmlsZS5mdWxsUGF0aCkgcmFpc2VzIDgK
KworICAgIG5vbmV4aXN0X2Rpci5tb3ZlVG8oZGlyMSwgbmFtZTIpIHJhaXNlcyA4CisgICAgbm9u
ZXhpc3RfZmlsZS5tb3ZlVG8oZGlyMiwgbmFtZTEpIHJhaXNlcyA4CisKKyAgICBwcmludCgnKiBN
b3ZpbmcgZW50cmllcyB0byBhIG5vbi1leGlzdGVudCBkaXJlY3RvcnknKQorCisgICAgUk9PVC5n
ZXREaXJlY3Rvcnkobm9uZXhpc3RfZGlyLmZ1bGxQYXRoKSByYWlzZXMgOAorICAgIFJPT1QuZ2V0
RGlyZWN0b3J5KGRpcjEuZnVsbFBhdGgpCisgICAgUk9PVC5nZXRGaWxlKGZpbGUyLmZ1bGxQYXRo
KQorCisgICAgZGlyMS5tb3ZlVG8obm9uZXhpc3RfZGlyLCBuYW1lMSkgcmFpc2VzIDgKKyAgICBm
aWxlMi5tb3ZlVG8obm9uZXhpc3RfZGlyLCBuYW1lMykgcmFpc2VzIDgKKworICAgIHByaW50KCcq
IE1vdmluZyBlbnRyaWVzIHRvIGl0cyBjaGlsZCcpCisKKyAgICBST09ULm1vdmVUbyhkaXIxKSBy
YWlzZXMgMTMKKyAgICBwYXJlbnQubW92ZVRvKGRpcjEpIHJhaXNlcyAxMworCisgICAgcHJpbnQo
JyogTW92aW5nIGEgZGlyZWN0b3J5IHdpdGggY2hpbGRyZW4nKQorCisgICAgZGlyNCA9IHBhcmVu
dC5nZXREaXJlY3RvcnkobmFtZTQsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMSA9IGRpcjQuZ2V0
RmlsZShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgY2hpbGQyID0gZGlyNC5nZXREaXJlY3Rvcnko
bmFtZTIsIGNyZWF0ZV9mbGFnKQorICAgIGNoaWxkMyA9IGNoaWxkMi5nZXRGaWxlKG5hbWUzLCBj
cmVhdGVfZmxhZykKKyAgICBjaGlsZDQgPSBjaGlsZDIuZ2V0RGlyZWN0b3J5KG5hbWU0LCBjcmVh
dGVfZmxhZykKKworICAgIGVudHJpZXMxID0gZGlyNC5yZWFkRGlyZWN0b3J5KCkKKyAgICBlbnRy
aWVzMiA9IGNoaWxkMi5yZWFkRGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoMiwgZW50cmllczEu
bGVuZ3RoKQorICAgIEFTU0VSVF9FUSgyLCBlbnRyaWVzMi5sZW5ndGgpCisKKyAgICBkaXI0X25l
dyA9IGRpcjQubW92ZVRvKFJPT1QsICdkaXI0X25ldycpCisgICAgY2hpbGQyX25ldyA9IGRpcjRf
bmV3LmdldERpcmVjdG9yeShuYW1lMikKKworICAgIGVudHJpZXMxX25ldyA9IGRpcjRfbmV3LnJl
YWREaXJlY3RvcnkoKQorICAgIGVudHJpZXMyX25ldyA9IGNoaWxkMl9uZXcucmVhZERpcmVjdG9y
eSgpCisgICAgQVNTRVJUX0VRKDIsIGVudHJpZXMxX25ldy5sZW5ndGgpCisgICAgQVNTRVJUX0VR
KDIsIGVudHJpZXMyX25ldy5sZW5ndGgpCisKKyAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KGRpcjQu
ZnVsbFBhdGgpIHJhaXNlcyA4CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9m
cy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVhZC1kaXJlY3Rvcnkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0
b3J5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzYyZjBlY2EyOWRiZDkxZmM0M2ExZWFhMDEz
NzJlZWM5NWJiOWUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitHb3Qg
RmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0u
Li4KK1BBU1MgdGhpcy52YXJzWyJlbnRyaWVzIl1bImxlbmd0aCJdIGlzIDAKK1BBU1MgU3VjY2Vl
ZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFn
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBhID0gcGFyZW50LmdldERpcmVjdG9yeSgnYScsIGNyZWF0
ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBiID0gcGFyZW50LmdldERpcmVjdG9yeSgnYics
IGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjID0gcGFyZW50LmdldERpcmVjdG9y
eSgnYycsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkID0gcGFyZW50LmdldEZp
bGUoJ2QnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZSA9IHBhcmVudC5nZXRG
aWxlKCdlJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGYgPSBwYXJlbnQuZ2V0
RGlyZWN0b3J5KCdmJywgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGcgPSBwYXJl
bnQuZ2V0RmlsZSgnZycsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBjLmdldEZp
bGUoJ2gnLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgYy5nZXREaXJlY3Rvcnko
J2knLCBjcmVhdGVfZmxhZykKK1BBU1MgU3VjY2VlZGVkOiAgICAgZi5nZXRGaWxlKCdqJywgY3Jl
YXRlX2ZsYWcpCitQQVNTIHRoaXMudmFyc1siZW50cmllcyJdWyJsZW5ndGgiXSBpcyAxCitQQVNT
IHRoaXMudmFyc1siZW50cmllcyJdWyJsZW5ndGgiXSBpcyA3CitbRU5UUlkge3BhdGg6L3BhcmVu
dC9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9iIG5hbWU6
YiB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9jIG5hbWU6YyB0eXBlOkRJ
UkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9kIG5hbWU6ZCB0eXBlOkZJTEV9LAorIEVO
VFJZIHtwYXRoOi9wYXJlbnQvZSBuYW1lOmUgdHlwZTpGSUxFfSwKKyBFTlRSWSB7cGF0aDovcGFy
ZW50L2YgbmFtZTpmIHR5cGU6RElSRUNUT1JZfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50L2cgbmFt
ZTpnIHR5cGU6RklMRX1dCitQQVNTIFN1Y2NlZWRlZDogICAgIGcucmVtb3ZlKCkKK1BBU1MgU3Vj
Y2VlZGVkOiAgICAgYi5yZW1vdmUoKQorUEFTUyB0aGlzLnZhcnNbImVudHJpZXMiXVsibGVuZ3Ro
Il0gaXMgNQorW0VOVFJZIHtwYXRoOi9wYXJlbnQvYSBuYW1lOmEgdHlwZTpESVJFQ1RPUll9LAor
IEVOVFJZIHtwYXRoOi9wYXJlbnQvYyBuYW1lOmMgdHlwZTpESVJFQ1RPUll9LAorIEVOVFJZIHtw
YXRoOi9wYXJlbnQvZCBuYW1lOmQgdHlwZTpGSUxFfSwKKyBFTlRSWSB7cGF0aDovcGFyZW50L2Ug
bmFtZTplIHR5cGU6RklMRX0sCisgRU5UUlkge3BhdGg6L3BhcmVudC9mIG5hbWU6ZiB0eXBlOkRJ
UkVDVE9SWX1dCitTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRpcmVjdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNmZDFlMTFm
ZWJiYzFkNzM4NjU4ZDYzZmIyNWYyNTlkY2Q4YjE0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZWFkLWRpcmVjdG9yeS5odG1sCkBAIC0wLDAgKzEs
NTQgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMt
dGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1z
aGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBp
ZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorCisgICAgbmFtZTEgPSAnYScKKyAgICBuYW1l
MiA9ICdiJworICAgIG5hbWUzID0gJ2MnCisgICAgbmFtZTQgPSAnZCcKKworICAgIGNyZWF0ZV9m
bGFnID0ge2NyZWF0ZTp0cnVlfQorCisgICAgcmVzZXQoKQorCisgICAgZW50cmllcyA9IFJPT1Qu
cmVhZERpcmVjdG9yeSgpCisgICAgQVNTRVJUX0VRKDAsIGVudHJpZXMubGVuZ3RoKQorCisgICAg
cGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGEg
PSBwYXJlbnQuZ2V0RGlyZWN0b3J5KCdhJywgY3JlYXRlX2ZsYWcpCisgICAgYiA9IHBhcmVudC5n
ZXREaXJlY3RvcnkoJ2InLCBjcmVhdGVfZmxhZykKKyAgICBjID0gcGFyZW50LmdldERpcmVjdG9y
eSgnYycsIGNyZWF0ZV9mbGFnKQorICAgIGQgPSBwYXJlbnQuZ2V0RmlsZSgnZCcsIGNyZWF0ZV9m
bGFnKQorICAgIGUgPSBwYXJlbnQuZ2V0RmlsZSgnZScsIGNyZWF0ZV9mbGFnKQorICAgIGYgPSBw
YXJlbnQuZ2V0RGlyZWN0b3J5KCdmJywgY3JlYXRlX2ZsYWcpCisgICAgZyA9IHBhcmVudC5nZXRG
aWxlKCdnJywgY3JlYXRlX2ZsYWcpCisKKyAgICBjLmdldEZpbGUoJ2gnLCBjcmVhdGVfZmxhZykK
KyAgICBjLmdldERpcmVjdG9yeSgnaScsIGNyZWF0ZV9mbGFnKQorICAgIGYuZ2V0RmlsZSgnaics
IGNyZWF0ZV9mbGFnKQorCisgICAgZW50cmllcyA9IFJPT1QucmVhZERpcmVjdG9yeSgpCisgICAg
QVNTRVJUX0VRKDEsIGVudHJpZXMubGVuZ3RoKQorCisgICAgZW50cmllcyA9IHBhcmVudC5yZWFk
RGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoNywgZW50cmllcy5sZW5ndGgpCisgICAgcHJpbnQo
ZW50cmllcykKKworICAgIGcucmVtb3ZlKCkKKyAgICBiLnJlbW92ZSgpCisgICAgZW50cmllcyA9
IHBhcmVudC5yZWFkRGlyZWN0b3J5KCkKKyAgICBBU1NFUlRfRVEoNSwgZW50cmllcy5sZW5ndGgp
CisgICAgcHJpbnQoZW50cmllcykKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2ZzLXRlc3Qtc2hlbGwtdGVtcG9yYXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmJmYjJkNjYwNjU0NzY0OGRjZjk3NzYxNDFkNzdiNWIxYWVhNmU2Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxG
aWxlU3lzdGVtCisqIFJlbW92aW5nIGZpbGVzIGFuZCBkaXJlY3RvcmllcworUmVzZXRpbmcgdGhl
IGZpbGVzeXN0ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJl
Y3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0g
cGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDog
ICAgIGZpbGUyID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNj
ZWVkZWQ6ICAgICBwYXJlbnQuZ2V0RGlyZWN0b3J5KG5hbWUxKQorUEFTUyBTdWNjZWVkZWQ6ICAg
ICBwYXJlbnQuZ2V0RmlsZShuYW1lMikKK1BBU1MgU3VjY2VlZGVkOiAgICAgZGlyMS5yZW1vdmUo
KQorUEFTUyBTdWNjZWVkZWQ6ICAgICBmaWxlMi5yZW1vdmUoKQorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlIGlzICI4IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICI4IgorKiBS
ZW1vdmluZyBub24tZXhpc3RlbnQgZmlsZSBvciBkaXJlY3RvcnkKK1BBU1MgdGhpcy5leHBlY3Rl
ZEVycm9yQ29kZSBpcyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiOCIKKyog
UmVtb3ZpbmcgYSBkaXJlY3Rvcnkgd2l0aCBjaGlsZHJlbgorUmVzZXRpbmcgdGhlIGZpbGVzeXN0
ZW0uLi4KK1BBU1MgU3VjY2VlZGVkOiAgICAgcGFyZW50ID0gUk9PVC5nZXREaXJlY3RvcnkoJ3Bh
cmVudCcsIGNyZWF0ZV9mbGFnKQorUEFTUyBTdWNjZWVkZWQ6ICAgICBkaXIxID0gcGFyZW50Lmdl
dERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUy
ID0gcGFyZW50LmdldEZpbGUobmFtZTIsIGNyZWF0ZV9mbGFnKQorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlIGlzICIxMyIKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL29wLXJlbW92ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwMDcyYjRjMzIyNWIxMzI0
MTdhMDAyMzI5YWM1NWViYWEwMjQyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5
cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJmaWxlLXN5c3RlbS10
ZXN0LXNjcmlwdCI+CisKKyAgICBuYW1lMSA9ICdhJworICAgIG5hbWUyID0gJ2InCisKKyAgICBj
cmVhdGVfZmxhZyA9IHtjcmVhdGU6dHJ1ZX0KKworICAgIHByaW50KCcqIFJlbW92aW5nIGZpbGVz
IGFuZCBkaXJlY3RvcmllcycpCisKKyAgICByZXNldCgpCisgICAgcGFyZW50ID0gUk9PVC5nZXRE
aXJlY3RvcnkoJ3BhcmVudCcsIGNyZWF0ZV9mbGFnKQorICAgIGRpcjEgPSBwYXJlbnQuZ2V0RGly
ZWN0b3J5KG5hbWUxLCBjcmVhdGVfZmxhZykKKyAgICBmaWxlMiA9IHBhcmVudC5nZXRGaWxlKG5h
bWUyLCBjcmVhdGVfZmxhZykKKworICAgICMgTWFrZSBzdXJlIHRoZSBlbnRyaWVzIGV4aXN0Cisg
ICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkKKyAgICBwYXJlbnQuZ2V0RmlsZShuYW1lMikK
KworICAgIGRpcjEucmVtb3ZlKCkKKyAgICBmaWxlMi5yZW1vdmUoKQorCisgICAgIyBOb3cgdGhl
eSBzaG91bGQgYmUgZ29uZSBhd2F5CisgICAgcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSkgcmFp
c2VzIDgKKyAgICBwYXJlbnQuZ2V0RmlsZShuYW1lMikgcmFpc2VzIDgKKworICAgIHByaW50KCcq
IFJlbW92aW5nIG5vbi1leGlzdGVudCBmaWxlIG9yIGRpcmVjdG9yeScpCisKKyAgICBkaXIxLnJl
bW92ZSgpIHJhaXNlcyA4CisgICAgZmlsZTIucmVtb3ZlKCkgcmFpc2VzIDgKKworICAgIHByaW50
KCcqIFJlbW92aW5nIGEgZGlyZWN0b3J5IHdpdGggY2hpbGRyZW4nKQorCisgICAgcmVzZXQoKQor
ICAgIHBhcmVudCA9IFJPT1QuZ2V0RGlyZWN0b3J5KCdwYXJlbnQnLCBjcmVhdGVfZmxhZykKKyAg
ICBkaXIxID0gcGFyZW50LmdldERpcmVjdG9yeShuYW1lMSwgY3JlYXRlX2ZsYWcpCisgICAgZmls
ZTIgPSBwYXJlbnQuZ2V0RmlsZShuYW1lMiwgY3JlYXRlX2ZsYWcpCisKKyAgICBwYXJlbnQucmVt
b3ZlKCkgcmFpc2VzIDEzCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10
ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVyYXRpb25z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9wYXJhbGxlbC1vcGVy
YXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGFjYWU3MTE1NmEzODZkMDAzNDk1ODAy
YTAzNGNjZTFkZWQyOTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL3BhcmFsbGVsLW9wZXJhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAK
K1Rlc3QgbWFraW5nIG11bHRpcGxlIEZpbGVTeXN0ZW0gb3BlcmF0aW9ucyBpbiBwYXJhbGxlbC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0dvdCBGaWxlU3lzdGVtOlRlc3RTaGVs
bEZpbGVTeXN0ZW0KK3JlcXVlc3RlZCBGaWxlU3lzdGVtLgorU3RhcnRpbmcgcGFyYWxsZWwgdGVz
dCBzdGFnZSAxLgorU3RhcnRpbmcgcGFyYWxsZWwgdGVzdCBzdGFnZSAyLgorVmVyaWZ5aW5nIHRo
ZSBGaWxlU3lzdGVtIHN0YXR1cy4KK1BBU1MgIi9hLC9iMiwvYywvZCwvZSIgaXMgIi9hLC9iMiwv
YywvZCwvZSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcGFyYWxsZWwtb3Bl
cmF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3BhcmFsbGVsLW9wZXJh
dGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjQ1NjkyOGYyM2RiY2YyM2I1NDAzMTIzYzI0NTA3ZGIy
ZTczOWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Bh
cmFsbGVsLW9wZXJhdGlvbnMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BhcmFsbGVsLW9wZXJhdGlv
bnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0
ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmRiNTM5M2FmYzAxYTE5Yzc1MGM1YzUyNGE5
MTNkNjZhNGJkZTkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL3JlcXVlc3QtZnMtdHdpY2UtcGVyc2lzdGVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MiBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBm
aWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdhYScs
IHtjcmVhdGU6dHJ1ZX0pOworU2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK0dvdCBGaWxlU3lz
dGVtOiBUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIHRoaXMudmFyc1siZW50cmllcyJdWyJsZW5n
dGgiXSBpcyAxCitQQVNTIHRoaXMudmFyc1siZW50cnkiXVsiZnVsbFBhdGgiXSBpcyAnL2FhJwor
U2NyaXB0IGV4ZWN1dGlvbiBmaW5pc2hlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
eXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS1wZXJzaXN0ZW50Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODEzODEwZjlhYTQ2YmVlZmI3Mjc1MjMxMDc3MGQxZThiNDM5YjlhMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3aWNlLXBlcnNpc3Rl
bnQuaHRtbApAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vZmlsZS1z
eXN0ZW0tdGVzdC1zaGVsbCIgaWQ9InNjcmlwdDEiPgorICAgIHJlc2V0KCk7CisgICAgUk9PVC5n
ZXREaXJlY3RvcnkoJ2FhJywge2NyZWF0ZTp0cnVlfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgdHlw
ZT0iYXBwbGljYXRpb24vZmlsZS1zeXN0ZW0tdGVzdC1zaGVsbCIgaWQ9InNjcmlwdDIiPgorICAg
ICMgU2VlIGlmIHdlIGdldCB0aGUgc2FtZSBmaWxlIHN5c3RlbS4KKyAgICBlbnRyaWVzID0gUk9P
VC5yZWFkRGlyZWN0b3J5KCk7CisgICAgZW50cnkgPSBlbnRyaWVzWzBdCisgICAgQVNTRVJUX0VR
KDEsIGVudHJpZXMubGVuZ3RoKTsKKyAgICBBU1NFUlRfRVEoJy9hYScsIGVudHJ5LmZ1bGxQYXRo
KTsKKzwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blNlY29uZFRlc3QoKSB7CisgICAg
dmFyIHNoZWxsID0gbmV3IEZpbGVTeXN0ZW1UZXN0U2hlbGwoUEVSU0lTVEVOVCwgMTAwLCBkZWJ1
ZywgZnVuY3Rpb24oKXsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CisgICAgc2hl
bGwucnVuU2NyaXB0cygnc2NyaXB0MicpOworfQorCitpZiAod2luZG93LnJlcXVlc3RGaWxlU3lz
dGVtKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHZhciBzaGVsbCA9
IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFBFUlNJU1RFTlQsIDEwMCwgZGVidWcsIHJ1blNlY29u
ZFRlc3QpOworICAgIHNoZWxsLnJ1blNjcmlwdHMoJ3NjcmlwdDEnKTsKK30gZWxzZQorICAgIGRl
YnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKword2lu
ZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXF1ZXN0LWZzLXR3
aWNlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0v
cmVxdWVzdC1mcy10d2ljZS10ZW1wb3JhcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZGI1
MzkzYWZjMDFhMTljNzUwYzVjNTI0YTkxM2Q2NmE0YmRlOTAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS10ZW1wb3JhcnktZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0dvdCBGaWxlU3lzdGVtOiBUZXN0U2hlbGxGaWxl
U3lzdGVtCitSZXNldGluZyB0aGUgZmlsZXN5c3RlbS4uLgorUEFTUyBTdWNjZWVkZWQ6ICAgICBS
T09ULmdldERpcmVjdG9yeSgnYWEnLCB7Y3JlYXRlOnRydWV9KTsKK1NjcmlwdCBleGVjdXRpb24g
ZmluaXNoZWQuCitHb3QgRmlsZVN5c3RlbTogVGVzdFNoZWxsRmlsZVN5c3RlbQorUEFTUyB0aGlz
LnZhcnNbImVudHJpZXMiXVsibGVuZ3RoIl0gaXMgMQorUEFTUyB0aGlzLnZhcnNbImVudHJ5Il1b
ImZ1bGxQYXRoIl0gaXMgJy9hYScKK1NjcmlwdCBleGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVlc3QtZnMtdHdpY2UtdGVtcG9yYXJ5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVxdWVzdC1mcy10d2ljZS10ZW1wb3Jh
cnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yY2EyYTYwZDZlM2IzZTUwN2I3MmI2MzQwMzQwMmExYWFjM2Yz
MTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3JlcXVl
c3QtZnMtdHdpY2UtdGVtcG9yYXJ5Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9
ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJzY3JpcHQxIj4KKyAgICBy
ZXNldCgpOworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdhYScsIHtjcmVhdGU6dHJ1ZX0pOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwi
IGlkPSJzY3JpcHQyIj4KKyAgICAjIFNlZSBpZiB3ZSBnZXQgdGhlIHNhbWUgZmlsZSBzeXN0ZW0u
CisgICAgZW50cmllcyA9IFJPT1QucmVhZERpcmVjdG9yeSgpOworICAgIGVudHJ5ID0gZW50cmll
c1swXQorICAgIEFTU0VSVF9FUSgxLCBlbnRyaWVzLmxlbmd0aCk7CisgICAgQVNTRVJUX0VRKCcv
YWEnLCBlbnRyeS5mdWxsUGF0aCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5T
ZWNvbmRUZXN0KCkgeworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFRF
TVBPUkFSWSwgMTAwLCBkZWJ1ZywgZnVuY3Rpb24oKXsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfSk7CisgICAgc2hlbGwucnVuU2NyaXB0cygnc2NyaXB0MicpOworfQorCitpZiAod2lu
ZG93LnJlcXVlc3RGaWxlU3lzdGVtKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNoZWxsKFRFTVBPUkFSWSwgMTAw
LCBkZWJ1ZywgcnVuU2Vjb25kVGVzdCk7CisgICAgc2hlbGwucnVuU2NyaXB0cygnc2NyaXB0MScp
OworfSBlbHNlCisgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBGaWxlU3lzdGVtIEFQSSBz
dXBwb3J0LiIpOworCit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLXRlbXBvcmFyeS5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTgyOTdjNjM3NDFmZjVkOTExZWMyYzZiOWY5MmQ1ZmZiYzY3YmNiMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVzdC1z
aGVsbC10ZW1wb3JhcnkuanMKQEAgLTAsMCArMSwxMiBAQAorZnVuY3Rpb24gZW5kVGVzdCgpIHsK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkg
eworICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICB2YXIgc2hlbGwgPSBuZXcg
RmlsZVN5c3RlbVRlc3RTaGVsbChURU1QT1JBUlksIDEwMCwgZGVidWcsIGVuZFRlc3QpOworICAg
IHNoZWxsLnJ1blNjcmlwdHMoJ2ZpbGUtc3lzdGVtLXRlc3Qtc2NyaXB0Jyk7Cit9IGVsc2UKKyAg
ICBkZWJ1ZygiVGhpcyB0ZXN0IHJlcXVpcmVzIEZpbGVTeXN0ZW0gQVBJIHN1cHBvcnQuIik7CisK
K3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc1MDlmYTNjY2EzNjkzNWE2NWIzNmJjYWQ4MzQwMmNlMWQ4OTI5YWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3Qtc2hlbGwu
anMKQEAgLTAsMCArMSwzNzggQEAKKy8qCisgICBBdmFpbGFibGUgdmFyaWFibGVzIGFuZCBmdW5j
dGlvbnM6CisgICAgIDxlbnRyeT4uPGVudHJ5TWV0aG9kPiguLi4pIFtyYWlzZSA8Y29kZT5dCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uIENhbGxzIHRoZSBlbnRyeSBtZXRob2Qg
c3luY2hyb25vdXNseS4gSXQgZG9lcyBub3QgZXJyb3Igb3V0IGlmICJyYWlzZSA8Y29kZT4iIGlz
IGdpdmVuIGFuZCBpdCBoYXMgdGhyb3duIHRoZSBlcnJvciBjb2RlIDxjb2RlPi4KKyAgICAgcmVz
ZXQoKSAgICAgICAgICAgICAgICAgICAuLi4gUmVtb3ZlcyBhbGwgZW50cmllcyBpbiB0aGUgZmls
ZSBzeXN0ZW0uCisgICAgIHByaW50KDxhcmc+KSAgICAgICAgICAgICAgLi4uIFByaW50cyBvdXQg
dGhlIGdpdmVuIGFyZy4KKyAgICAgQVNTRVJUX0VRKDxhcmcxPiwgPGFyZzI+KSAuLi4gQXNzZXJ0
cyB0aGF0IDxhcmcxPiBhbmQgPGFyZzI+IGFyZSBlcXVhbC4KKyAgICAgQVNTRVJUX0dFKDxhcmcx
PiwgPGFyZzI+KSAuLi4gQXNzZXJ0cyB0aGF0IDxhcmcxPiBpcyBncmVhdGVyIHRoYW4gb3IgZXF1
YWxzIHRvIDxhcmcyPi4KKyAgICAgUk9PVCAgICAgICAgICAgICAgICAgICAgICAuLi4gVGhlIGZp
bGUgc3lzdGVtJ3Mgcm9vdCBlbnRyeS4KKworICAgRXhhbXBsZToKKyAgICAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgICAgPGRpdiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgorICAgIHJlc2V0KCkK
KworICAgICMgY29tbWVudAorICAgIGVudHJ5MSA9IFJPT1QuZ2V0RmlsZSgnZm9vL2EudHh0JykK
KyAgICBlbnRyeTIgPSBST09ULmdldERpcmVjdG9yeSgnZm9vL2JhcicsIHtDUkVBVEU6dHJ1ZX0p
CisgICAgZW50cnkzID0gUk9PVC5nZXRGaWxlKCdmb28vbm9uZXhpc3RlbnQnKSByYWlzZXMgOAor
ICAgIGVudHJpZXMgPSBST09ULnJlYWREaXJlY3RvcnkoKQorICAgIHByaW50KGVudHJpZXMpCisg
ICAgZW50cnkxLmNvcHlUbyhlbnRyeTIsICdiLnR4dCcpCisgICAgbWV0YWRhdGEgPSBlbnRyeTEu
Z2V0TWV0YWRhdGEoKQorICAgIHByaW50KG1ldGFkYXRhKQorICAgIEFTU0VSVF9HVChtZXRhZGF0
YSwgMCkKKyAgICA8L2Rpdj4KKworICAgIHZhciBzaGVsbCA9IG5ldyBGaWxlU3lzdGVtVGVzdFNo
ZWxsKFRFTVBPUkFSWSwgMTAwKTsKKyAgICBzaGVsbC5ydW5TY3JpcHRzKCJmaWxlLXN5c3RlbS10
ZXN0LXNjcmlwdCIpOworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCit2YXIgRmlsZVN5c3Rl
bVRlc3RTaGVsbCA9IGZ1bmN0aW9uKHR5cGUsIHNpemUsIG9wdF9sb2dGdW5jLCBvcHRfZW5kVGVz
dENhbGxiYWNrKQoreworICAgIHRoaXMuZmlsZVN5c3RlbSA9IG51bGw7CisgICAgdGhpcy5maWxl
U3lzdGVtVHlwZSA9IHR5cGU7CisgICAgdGhpcy5maWxlU3lzdGVtU2l6ZSA9IHNpemU7CisKKyAg
ICB0aGlzLmxvZyA9IG9wdF9sb2dGdW5jOworICAgIHRoaXMuZW5kVGVzdENhbGxiYWNrID0gb3B0
X2VuZFRlc3RDYWxsYmFjazsKKworICAgIHRoaXMubGluZXMgPSBbXTsKKyAgICB0aGlzLmxpbmVD
b3VudGVyID0gLTE7CisgICAgdGhpcy5zdGF0ZW1lbnQgPSAnJzsKKyAgICB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlID0gMDsKKyAgICB0aGlzLmRlc3RpbmF0aW9uU3ltYm9sID0gbnVsbDsKKyAgICB0
aGlzLmRpcmVjdG9yeVJlYWRlciA9IG51bGw7CisKKyAgICB0aGlzLnZhcnMgPSB7ICd0cnVlJzog
dHJ1ZSwgJ2ZhbHNlJzogZmFsc2UgfTsKKyAgICB0aGlzLmFyZ1N5bWJvbHMgPSBbXTsKKworICAg
IHRoaXMucnVuU2NyaXB0cyA9IGZ1bmN0aW9uKGVsZW1lbnRJZCkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy5lbmRUZXN0Q2FsbGJhY2spCisgICAgICAgICAgICB0aGlzLmVuZFRlc3RDYWxsYmFj
ayA9IGZ1bmN0aW9uKCkgeyB9OworCisgICAgICAgIGlmICghdGhpcy5sb2cpCisgICAgICAgICAg
ICB0aGlzLmxvZyA9IHRoaXMuZGVmYXVsdExvZ0Z1bmM7CisKKyAgICAgICAgdmFyIGVsZW0gPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICBpZiAoIWVsZW0pIHsK
KyAgICAgICAgICAgIHRoaXMuZXJyb3IoJ0VsZW1lbnQgbm90IGZvdW5kOiAnICsgZWxlbWVudElk
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmxpbmVzID0g
ZWxlbS5pbm5lckhUTUwuc3BsaXQoL1xyP1xuKy8pOworICAgICAgICBpZiAoIXRoaXMubGluZXMu
bGVuZ3RoKSB7CisgICAgICAgICAgICB0aGlzLmVycm9yKCJObyBzY3JpcHRzIHRvIHJ1biEiKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMubGluZUNvdW50
ZXIgPSAwOworICAgICAgICByZXF1ZXN0RmlsZVN5c3RlbSh0aGlzLmZpbGVTeXN0ZW1UeXBlLCB0
aGlzLmZpbGVTeXN0ZW1TaXplLCB0aGlzLmJpbmQodGhpcy5maWxlU3lzdGVtQ2FsbGJhY2spLCB0
aGlzLmJpbmQodGhpcy5lcnJvckNhbGxiYWNrKSk7CisgICAgfQorCisgICAgLy8gQ2FsbGJhY2tz
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisgICAgdGhpcy5iaW5kID0gZnVuY3Rpb24oY2FsbGJhY2ssIGFyZzEsIGFyZzIsIGFy
ZzMpCisgICAgeworICAgICAgICB2YXIgb2JqID0gdGhpczsKKyAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKGFyZykgeworICAgICAgICAgICAgaWYgKGFyZyA9PSB1bmRlZmluZWQpCisgICAgICAgICAg
ICAgICAgY2FsbGJhY2suYXBwbHkob2JqLCBbYXJnMSwgYXJnMiwgYXJnM10pOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG9iaiwgW2FyZywgYXJnMSwg
YXJnMiwgYXJnM10pOworICAgICAgICB9OworICAgIH07CisKKyAgICB0aGlzLmVycm9yQ2FsbGJh
Y2sgPSBmdW5jdGlvbihlcnJvcikKKyAgICB7CisgICAgICAgIGlmICh3aW5kb3cuc2hvdWxkQmUp
CisgICAgICAgICAgICBzaG91bGRCZS5hcHBseSh0aGlzLCBbInRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUiLCAnIicgKyBlcnJvci5jb2RlICsgJyInXSk7CisgICAgICAgIGlmICh0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlICYmIGVycm9yLmNvZGUgPT0gdGhpcy5leHBlY3RlZEVycm9yQ29kZSkgeworICAg
ICAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0aGlzLmVycm9yKCdHb3QgZXJyb3I6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHRoaXMuc3VjY2Vzc0NhbGxiYWNrID0gZnVuY3Rpb24ocmV0dXJuVmFs
dWUpCisgICAgeworICAgICAgICBpZiAodGhpcy5leHBlY3RlZEVycm9yQ29kZSkgeworICAgICAg
ICAgICAgdGhpcy5lcnJvcignT3BlcmF0aW9uIHVuZXhwZWN0ZWRseSBzdWNjZWVkZWQnKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5kZXN0aW5hdGlv
blN5bWJvbCkKKyAgICAgICAgICAgIHRoaXMudmFyc1t0aGlzLmRlc3RpbmF0aW9uU3ltYm9sXSA9
IHJldHVyblZhbHVlOworICAgICAgICBpZiAodGhpcy5zdGF0ZW1lbnQgJiYgd2luZG93LnRlc3RQ
YXNzZWQpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdWNjZWVkZWQ6ICcgKyB0aGlzLnN0YXRl
bWVudCk7CisgICAgICAgIHRoaXMucnVuTmV4dFN0YXRlbWVudCgpOworICAgIH0KKworICAgIHRo
aXMuZW50cmllc0NhbGxiYWNrID0gZnVuY3Rpb24oZW50cmllcykKKyAgICB7CisgICAgICAgIGlm
ICh0aGlzLmRlc3RpbmF0aW9uU3ltYm9sKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMudmFyc1t0
aGlzLmRlc3RpbmF0aW9uU3ltYm9sXSkKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnNbdGhpcy5k
ZXN0aW5hdGlvblN5bWJvbF0gPSBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZW50cmllcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnNbdGhpcy5kZXN0
aW5hdGlvblN5bWJvbF0ucHVzaChlbnRyaWVzW2ldKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
ZW50cmllcy5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLmRpcmVjdG9yeVJlYWRlci5yZWFkRW50
cmllcyh0aGlzLmJpbmQodGhpcy5lbnRyaWVzQ2FsbGJhY2spLCB0aGlzLmJpbmQodGhpcy5lcnJv
ckNhbGxiYWNrKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMucnVuTmV4dFN0YXRl
bWVudCgpOworICAgIH0KKworICAgIHRoaXMuZmlsZVN5c3RlbUNhbGxiYWNrID0gZnVuY3Rpb24o
ZnMpCisgICAgeworICAgICAgICB0aGlzLmxvZygnR290IEZpbGVTeXN0ZW06ICcgKyBmcy5uYW1l
KTsKKyAgICAgICAgdGhpcy5maWxlU3lzdGVtID0gZnM7CisgICAgICAgIHRoaXMudmFyc1snUk9P
VCddID0gZnMucm9vdDsKKyAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50KCk7CisgICAgfQor
CisgICAgLy8gSGVscGVyIG1ldGhvZHMgZm9yIGNhbGxpbmcgZW50cnkgbWV0aG9kcyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdmFyIGNhbGxFbnRyeU1ldGhvZDAgPSBmdW5j
dGlvbihzaGVsbCwgZW50cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICBlbnRyeVttZXRob2RdKHNoZWxsLmJpbmQoc2hlbGwuc3VjY2Vzc0NhbGxiYWNr
KSwgc2hlbGwuYmluZChzaGVsbC5lcnJvckNhbGxiYWNrKSk7CisgICAgICAgIH0gY2F0Y2ggKGV4
Y2VwdGlvbikgeworICAgICAgICAgICAgaWYgKHNoZWxsLmV4cGVjdGVkRXJyb3JDb2RlICYmIGVy
cm9yLmNvZGUgPT0gc2hlbGwuZXhwZWN0ZWRFcnJvckNvZGUpIHsKKyAgICAgICAgICAgICAgICBz
aGVsbC5sb2coJ0dvdCBleGNlcHRpb24gKGV4cGVjdGVkKTogJyArIGVycm9yLmNvZGUpOworICAg
ICAgICAgICAgICAgIHNoZWxsLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgc2hlbGwuZXJyb3IoJ0dvdCBleGNlcHRpb246ICcgKyBlcnJv
ci5jb2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHZhciBjYWxs
RW50cnlNZXRob2QyID0gZnVuY3Rpb24oc2hlbGwsIGVudHJ5LCBtZXRob2QsIGFyZ3MpCisgICAg
eworICAgICAgICB0cnkgeworICAgICAgICAgICAgZW50cnlbbWV0aG9kXShhcmdzWzBdLCBhcmdz
WzFdLCBzaGVsbC5iaW5kKHNoZWxsLnN1Y2Nlc3NDYWxsYmFjayksIHNoZWxsLmJpbmQoc2hlbGwu
ZXJyb3JDYWxsYmFjaykpOworICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAg
ICAgIGlmIChzaGVsbC5leHBlY3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09IHNoZWxsLmV4
cGVjdGVkRXJyb3JDb2RlKSB7CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdHb3QgZXhjZXB0
aW9uIChleHBlY3RlZCk6ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAgICBzaGVsbC5y
dW5OZXh0U3RhdGVtZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IHNoZWxsLmVycm9yKCdHb3QgZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgY2FsbFJlYWREaXJlY3RvcnkgPSBmdW5j
dGlvbihzaGVsbCwgZW50cnksIG1ldGhvZCwgYXJncykKKyAgICB7CisgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICBzaGVsbC5kaXJlY3RvcnlSZWFkZXIgPSBlbnRyeS5jcmVhdGVSZWFkZXIoKTsK
KyAgICAgICAgICAgIHNoZWxsLmRpcmVjdG9yeVJlYWRlci5yZWFkRW50cmllcyhzaGVsbC5iaW5k
KHNoZWxsLmVudHJpZXNDYWxsYmFjayksIHNoZWxsLmJpbmQoc2hlbGwuZXJyb3JDYWxsYmFjaykp
OworICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgIGlmIChzaGVsbC5l
eHBlY3RlZEVycm9yQ29kZSAmJiBlcnJvci5jb2RlID09IHNoZWxsLmV4cGVjdGVkRXJyb3JDb2Rl
KSB7CisgICAgICAgICAgICAgICAgc2hlbGwubG9nKCdHb3QgZXhjZXB0aW9uIChleHBlY3RlZCk6
ICcgKyBlcnJvci5jb2RlKTsKKyAgICAgICAgICAgICAgICBzaGVsbC5ydW5OZXh0U3RhdGVtZW50
KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHNoZWxsLmVycm9yKCdH
b3QgZXhjZXB0aW9uOiAnICsgZXJyb3IuY29kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisKKyAgICB2YXIgZW50cnlNZXRob2RzVGFibGUgPSB7CisgICAgICAgICdnZXRNZXRh
ZGF0YSc6IGNhbGxFbnRyeU1ldGhvZDAsCisgICAgICAgICdjb3B5VG8nOiBjYWxsRW50cnlNZXRo
b2QyLAorICAgICAgICAnbW92ZVRvJzogY2FsbEVudHJ5TWV0aG9kMiwKKyAgICAgICAgJ3JlbW92
ZSc6IGNhbGxFbnRyeU1ldGhvZDAsCisgICAgICAgICdnZXRQYXJlbnQnOiBjYWxsRW50cnlNZXRo
b2QwLAorICAgICAgICAnZ2V0RmlsZSc6IGNhbGxFbnRyeU1ldGhvZDIsCisgICAgICAgICdnZXRE
aXJlY3RvcnknOiBjYWxsRW50cnlNZXRob2QyLAorICAgICAgICAncmVhZERpcmVjdG9yeSc6IGNh
bGxSZWFkRGlyZWN0b3J5LAorICAgIH07CisKKyAgICAvLyBCdWlsdC1pbiBmdW5jaXRvbnMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICB2
YXIgdG9TdHJpbmcgPSBmdW5jdGlvbihvYmopCisgICAgeworICAgICAgICBpZiAob2JqID09IHVu
ZGVmaW5lZCkgeworICAgICAgICAgICAgcmV0dXJuICJ1bmRlZmluZWQiOworICAgICAgICB9IGVs
c2UgaWYgKHR5cGVvZiBvYmogPT0gJ29iamVjdCcpIHsKKyAgICAgICAgICAgIGlmIChvYmoubGVu
Z3RoICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIHZhciBzdHJpbmdBcnJheSA9IFtd
OworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgICAgICAgICBzdHJpbmdBcnJheS5wdXNoKHRvU3RyaW5nKG9ialtpXSkpOwor
ICAgICAgICAgICAgICAgIHN0cmluZ0FycmF5LnNvcnQoKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gJ1snICsgc3RyaW5nQXJyYXkuam9pbignLFxuICcpICsgJ10nOworICAgICAgICAgICAgfSBl
bHNlIGlmIChvYmouaXNGaWxlIHx8IG9iai5pc0RpcmVjdG9yeSkgeworICAgICAgICAgICAgICAg
IHJldHVybiAnRU5UUlkge3BhdGg6JyArIG9iai5mdWxsUGF0aCArICcgbmFtZTonICsgb2JqLm5h
bWUgKyAob2JqLmlzRmlsZSA/ICcgdHlwZTpGSUxFJyA6ICcgdHlwZTpESVJFQ1RPUlknKSArICd9
JzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG9iajsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gb2JqOworICAg
IH0KKworICAgIHRoaXMuQlVJTFRJTl9wcmludCA9IGZ1bmN0aW9uKGFyZ3MpCisgICAgeworICAg
ICAgICB0aGlzLmxvZyh0b1N0cmluZyhhcmdzWzBdKSk7CisgICAgICAgIHRoaXMucnVuTmV4dFN0
YXRlbWVudCgpOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9yZXNldCA9IGZ1bmN0aW9uKGFy
Z3MpCisgICAgeworICAgICAgICB0aGlzLmxvZygnUmVzZXRpbmcgdGhlIGZpbGVzeXN0ZW0uLi4n
KTsKKyAgICAgICAgdmFyIHNoZWxsID0gdGhpczsKKyAgICAgICAgcmVtb3ZlUmVjdXJzaXZlbHko
dGhpcy5maWxlU3lzdGVtLnJvb3QsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgc2hlbGwucnVu
TmV4dFN0YXRlbWVudCgpOworICAgICAgICB9LCB0aGlzLmJpbmQodGhpcy5lcnJvckNhbGxiYWNr
KSk7CisgICAgfQorCisgICAgdGhpcy5CVUlMVElOX0FTU0VSVCA9IGZ1bmN0aW9uKGFyZ3MpCisg
ICAgeworICAgICAgICB2YXIgb2JqID0gYXJnc1swXTsKKyAgICAgICAgaWYgKHdpbmRvdy5zaG91
bGRCZU5vbk51bGwpCisgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwoJyInICsgb2JqICsgJyIn
KTsKKyAgICAgICAgaWYgKCFvYmopCisgICAgICAgICAgICB0aGlzLmVycm9yKCdBc3NlcnRpb24g
ZXJyb3I6JyArIG9iaik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMucnVuTmV4dFN0
YXRlbWVudCgpOworICAgIH0KKworICAgIHRoaXMuQlVJTFRJTl9BU1NFUlRfR0UgPSBmdW5jdGlv
bihhcmdzKQorICAgIHsKKyAgICAgICAgdmFyIHZhbHVlMSA9IChhcmdzWzBdIGluc3RhbmNlb2Yg
RGF0ZSkgPyBhcmdzWzBdLmdldFRpbWUoKSA6IGFyZ3NbMF07CisgICAgICAgIHZhciB2YWx1ZTIg
PSAoYXJnc1sxXSBpbnN0YW5jZW9mIERhdGUpID8gYXJnc1sxXS5nZXRUaW1lKCkgOiBhcmdzWzFd
OworICAgICAgICBpZiAod2luZG93LnNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKQorICAgICAg
ICAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoJyInICsgdmFsdWUxICsgJyInLCAnIicg
KyB2YWx1ZTIgKyAnIicpOworICAgICAgICBpZiAodmFsdWUxIDwgdmFsdWUyKSB7CisgICAgICAg
ICAgICB0aGlzLmVycm9yKCdBc3NlcnRpb24gZXJyb3I6JyArIGFyZ3NbMF0gKyAnID49ICcgKyBh
cmdzWzFdKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnJ1
bk5leHRTdGF0ZW1lbnQoKTsKKyAgICB9CisKKyAgICB0aGlzLkJVSUxUSU5fQVNTRVJUX0VRID0g
ZnVuY3Rpb24oYXJncykKKyAgICB7CisgICAgICAgIHZhciB2YWx1ZTEgPSAoYXJnc1swXSBpbnN0
YW5jZW9mIERhdGUpID8gYXJnc1swXS5nZXRUaW1lKCkgOiBhcmdzWzBdOworICAgICAgICB2YXIg
dmFsdWUyID0gKGFyZ3NbMV0gaW5zdGFuY2VvZiBEYXRlKSA/IGFyZ3NbMV0uZ2V0VGltZSgpIDog
YXJnc1sxXTsKKyAgICAgICAgaWYgKHdpbmRvdy5zaG91bGRCZSkKKyAgICAgICAgICAgIHNob3Vs
ZEJlLmFwcGx5KHRoaXMsIFt0aGlzLmFyZ1N5bWJvbHNbMV0sIHRoaXMuYXJnU3ltYm9sc1swXV0p
OworICAgICAgICBpZiAodmFsdWUxICE9IHZhbHVlMikgeworICAgICAgICAgICAgdGhpcy5lcnJv
cignQXNzZXJ0aW9uIGVycm9yOicgKyBhcmdzWzBdICsgJyA9PSAnICsgYXJnc1sxXSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5ydW5OZXh0U3RhdGVtZW50
KCk7CisgICAgfQorCisgICAgLy8gUGFyc2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgdGhpcy5FTlRSWV9NRVRI
T0RfUkUgPSAvXlxzKihbQS1aYS16X11cdyopXC4oZ2V0TWV0YWRhdGF8bW92ZVRvfGNvcHlUb3xy
ZW1vdmV8Z2V0UGFyZW50fGdldEZpbGV8Z2V0RGlyZWN0b3J5fHJlYWREaXJlY3RvcnkpXCgoLiop
XCkoPzpccytyYWlzZXM/XHMqXCg/KFxkKylcKT98KS87CisgICAgdGhpcy5BU1NJR05NRU5UX1JF
ID0gL15ccyooW0EtWmEtel9dXHcqKVxzKj1ccyooLiopLzsKKworICAgIHRoaXMucGFyc2VBcmdz
ID0gZnVuY3Rpb24odGV4dCkgeworICAgICAgICB0aGlzLmFyZ1N5bWJvbHMgPSBbXTsKKyAgICAg
ICAgdmFyIGFyZ3MgPSBbXTsKKyAgICAgICAgdmFyIHNoZWxsID0gdGhpczsKKyAgICAgICAgdmFy
IHZhcnMgPSB0aGlzLnZhcnM7CisgICAgICAgIHRleHQucmVwbGFjZSgvKD86KHtbXn1dKn0pfChc
ZCt8IlteIl0qInwnW14nXSonKXwoW2EtekEtWl9dXHcqKSg/OlxbKFxkK3wnXHcrJ3wiXHcrIilc
XXxcLihcdyspfCkpKCx8JClccyovZywgZnVuY3Rpb24obWF0Y2gsIGhhc2gsIGltbWVkaWF0ZSwg
c3ltYm9sLCBmaWVsZDEsIGZpZWxkMikgeworICAgICAgICAgICAgdmFyIGZpZWxkID0gZmllbGQx
ICE9IHVuZGVmaW5lZCA/IGZpZWxkMSA6IGZpZWxkMjsKKyAgICAgICAgICAgIHZhciBvYmogPSBz
aGVsbC52YXJzW3N5bWJvbF07CisgICAgICAgICAgICBpZiAoc3ltYm9sICYmIG9iaiA9PSB1bmRl
ZmluZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3ltYm9sID09ICdudWxsJyB8fCBzeW1ib2wg
PT0gJ3VuZGVmaW5lZCcpIHsKKyAgICAgICAgICAgICAgICAgICAgb2JqID0gbnVsbDsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBzaGVsbC5lcnJvcignVW5k
ZWZpbmVkIHN5bWJvbDonICsgc3ltYm9sKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNoZWxsLmFyZ1N5
bWJvbHMucHVzaCgKKyAgICAgICAgICAgICAgICBoYXNoID8gaGFzaCA6CisgICAgICAgICAgICAg
ICAgaW1tZWRpYXRlID8gaW1tZWRpYXRlIDoKKyAgICAgICAgICAgICAgICBzeW1ib2wgPyAndGhp
cy52YXJzWyInICsgc3ltYm9sICsgJyJdJyArIChmaWVsZCAhPSB1bmRlZmluZWQgPyAnWyInICsg
ZmllbGQgKyAnIl0nIDogJycpIDogbWF0Y2gpOworICAgICAgICAgICAgYXJncy5wdXNoKGhhc2gg
PyBldmFsKCdvPScgKyBoYXNoKQorICAgICAgICAgICAgICAgIDogaW1tZWRpYXRlID8gZXZhbChp
bW1lZGlhdGUpCisgICAgICAgICAgICAgICAgOiBzeW1ib2wgPyAoZmllbGQgIT0gdW5kZWZpbmVk
ID8gb2JqW2ZpZWxkXSA6IG9iaikKKyAgICAgICAgICAgICAgICA6IG51bGwpOworICAgICAgICB9
KTsKKyAgICAgICAgcmV0dXJuIGFyZ3M7CisgICAgfQorCisgICAgdGhpcy5ydW5OZXh0U3RhdGVt
ZW50ID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMubGluZUNvdW50ZXIgPCAw
IHx8IHRoaXMubGluZUNvdW50ZXIgPj0gdGhpcy5saW5lcy5sZW5ndGgpIHsKKyAgICAgICAgICAg
IHRoaXMubG9nKCdTY3JpcHQgZXhlY3V0aW9uIGZpbmlzaGVkLicpOworICAgICAgICAgICAgdGhp
cy5lbmRUZXN0Q2FsbGJhY2soKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICB0aGlzLnN0YXRlbWVudCA9IHRoaXMubGluZXNbdGhpcy5saW5lQ291bnRlcisrXTsKKyAg
ICAgICAgaWYgKHRoaXMuc3RhdGVtZW50LnNlYXJjaCgvXlxzKigjLip8KSQvKSA9PSAwKSB7Cisg
ICAgICAgICAgICB0aGlzLnJ1bk5leHRTdGF0ZW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICB2YXIgZXhwID0gdGhpcy5zdGF0ZW1lbnQ7CisgICAgICAgIHRo
aXMuZGVzdGluYXRpb25TeW1ib2wgPSBudWxsOworICAgICAgICB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlID0gMDsKKyAgICAgICAgdmFyIG1hdGNoZXMgPSB0aGlzLnN0YXRlbWVudC5tYXRjaCh0aGlz
LkFTU0lHTk1FTlRfUkUpOworICAgICAgICBpZiAobWF0Y2hlcykgeworICAgICAgICAgICAgdGhp
cy5kZXN0aW5hdGlvblN5bWJvbCA9IG1hdGNoZXNbMV07CisgICAgICAgICAgICB0aGlzLnZhcnNb
dGhpcy5kZXN0aW5hdGlvblN5bWJvbF0gPSBudWxsOworICAgICAgICAgICAgZXhwID0gbWF0Y2hl
c1syXTsKKyAgICAgICAgfQorICAgICAgICBtYXRjaGVzID0gZXhwLm1hdGNoKHRoaXMuRU5UUllf
TUVUSE9EX1JFKTsKKyAgICAgICAgaWYgKG1hdGNoZXMpIHsKKyAgICAgICAgICAgIHZhciBlbnRy
eSA9IHNoZWxsLnZhcnNbbWF0Y2hlc1sxXV07CisgICAgICAgICAgICB2YXIgbWV0aG9kID0gbWF0
Y2hlc1syXTsKKyAgICAgICAgICAgIGlmICghZW50cnkpIHsKKyAgICAgICAgICAgICAgICB0aGlz
LmVycm9yKCdObyBzdWNoIHN5bWJvbDonICsgbWF0Y2hlc1sxXSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5leHBlY3RlZEVycm9yQ29k
ZSA9IG1hdGNoZXNbNF07CisgICAgICAgICAgICBlbnRyeU1ldGhvZHNUYWJsZVttZXRob2RdKHRo
aXMsIGVudHJ5LCBtZXRob2QsIHRoaXMucGFyc2VBcmdzKG1hdGNoZXNbM10pKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtYXRjaGVzID0gZXhwLm1hdGNoKC9eXHMq
KFtBLVphLXpfXVx3KylcKCguKilcKS8pOworICAgICAgICBpZiAobWF0Y2hlcyAmJiB0aGlzWydC
VUlMVElOXycgKyBtYXRjaGVzWzFdXSkgeworICAgICAgICAgICAgdGhpc1snQlVJTFRJTl8nICsg
bWF0Y2hlc1sxXV0odGhpcy5wYXJzZUFyZ3MobWF0Y2hlc1syXSkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIHZhciB2YWx1ZXMgPSB0aGlzLnBhcnNlQXJncyhleHAp
OworICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICBpZiAodGhp
cy5kZXN0aW5hdGlvblN5bWJvbCkKKyAgICAgICAgICAgICAgICB0aGlzLnZhcnNbdGhpcy5kZXN0
aW5hdGlvblN5bWJvbF0gPSB2YWx1ZXNbMF07CisgICAgICAgICAgICB0aGlzLnJ1bk5leHRTdGF0
ZW1lbnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmVy
cm9yKCdTeW50YXggZXJyb3I6JyArIHRoaXMuc3RhdGVtZW50KTsKKyAgICB9CisKKyAgICAvLyBN
aXNjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKyAgICB0aGlzLmR1bXBWYXJzID0gZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMudmFycykKKyAgICAgICAgICAgIHRoaXMubG9nKCcq
KiAnICsga2V5ICsgJzonICsgdGhpcy52YXJzW2tleV0pOworICAgIH0KKworICAgIHRoaXMuZXJy
b3IgPSBmdW5jdGlvbihtc2cpCisgICAgeworICAgICAgICB2YXIgcHJpbnRFcnJvciA9IHRoaXMu
bG9nCisgICAgICAgIGlmICh3aW5kb3cudGVzdEZhaWxlZCkKKyAgICAgICAgICAgIHByaW50RXJy
b3IgPSB0ZXN0RmFpbGVkOworICAgICAgICBpZiAodGhpcy5saW5lQ291bnRlciA+IDAgJiYgdGhp
cy5saW5lQ291bnRlciA8IHRoaXMubGluZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBwcmludEVy
cm9yKCdFUlJPUjonICsgbXNnICsgJyBhdCBsaW5lICcgKyB0aGlzLmxpbmVDb3VudGVyKTsKKyAg
ICAgICAgICAgIHByaW50RXJyb3IoJyA+ICcgKyB0aGlzLnN0YXRlbWVudCk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgcHJpbnRFcnJvcignRVJST1I6JyArIG1zZyk7CisgICAgICAgIHRo
aXMuZW5kVGVzdENhbGxiYWNrKCk7CisgICAgfQorCisgICAgdGhpcy5kZWZhdWx0TG9nRnVuYyA9
IGZ1bmN0aW9uKG1zZykKKyAgICB7CisgICAgICAgIHZhciBlbGVtID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKTsKKyAgICAgICAgaWYgKCFlbGVtKSB7CisgICAgICAgICAgICBl
bGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICBlbGVtLmlk
ID0gJ2NvbnNvbGUnOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
KTsKKyAgICAgICAgfQorICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NwYW4nKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBl
bmRDaGlsZChzcGFuKTsKKyAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBtc2cgKyAnPGJyIC8+JzsK
KyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc3Ry
aWN0ZWQtY2hhcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jl
c3RyaWN0ZWQtY2hhcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NzhiYzdhYWFlZDc2MDNh
ODYwNzNkNzE3YWVlOTNhM2Q5NTRlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
MSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRoZSBm
aWxlc3lzdGVtLi4uCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0
aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29k
ZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlz
LmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBp
cyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4
cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAi
MTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVj
dGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMi
CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNT
IHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
IGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIFN1Y2Nl
ZWRlZDogICAgIGFiID0gUk9PVC5nZXRGaWxlKCdhYicsIHtjcmVhdGU6dHJ1ZX0pCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
IGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlz
ICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIx
MyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitTY3JpcHQgZXhlY3V0aW9u
IGZpbmlzaGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmljdGVk
LWNoYXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1jaGFy
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMzZGNlZWZmNDJmMDcxYmEyMTNlZjVmMjM4Mzk0OWM0MjZmNzFi
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJp
Y3RlZC1jaGFycy5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlv
bi9maWxlLXN5c3RlbS10ZXN0LXNoZWxsIiBpZD0iZmlsZS1zeXN0ZW0tdGVzdC1zY3JpcHQiPgor
CisgICAgcmVzZXQoKQorCisgICAgUk9PVC5nZXRGaWxlKCdhXFxiJykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXRGaWxlKCdhPGInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2E+YicpIHJh
aXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYTpiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRG
aWxlKCdhP2InKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2EqYicpIHJhaXNlcyAxMwor
ICAgIFJPT1QuZ2V0RmlsZSgnYSJiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdhfGIn
KSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0RmlsZSgnXFxhYicpIHJhaXNlcyAxMworICAgIFJP
T1QuZ2V0RmlsZSgnPGFiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCc+YWInKSByYWlz
ZXMgMTMKKyAgICBST09ULmdldEZpbGUoJzphYicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0Rmls
ZSgnP2FiJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCcqYWInKSByYWlzZXMgMTMKKyAg
ICBST09ULmdldEZpbGUoJyJhYicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnfGFiJykg
cmFpc2VzIDEzCisKKyAgICBST09ULmdldEZpbGUoJ2FiXFwnKSByYWlzZXMgMTMKKyAgICBST09U
LmdldEZpbGUoJ2FiPCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYWI+JykgcmFpc2Vz
IDEzCisgICAgUk9PVC5nZXRGaWxlKCdhYjonKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUo
J2FiPycpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYWIqJykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXRGaWxlKCdhYiInKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2FifCcpIHJh
aXNlcyAxMworCisgICAgYWIgPSBST09ULmdldEZpbGUoJ2FiJywge2NyZWF0ZTp0cnVlfSkKKyAg
ICBhYi5jb3B5VG8oUk9PVCwgJ2FcXGInKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5VG8oUk9PVCwg
J2E8YicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhST09ULCAnYT5iJykgcmFpc2VzIDEzCisg
ICAgYWIuY29weVRvKFJPT1QsICdhOmInKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5VG8oUk9PVCwg
J2E/YicpIHJhaXNlcyAxMworICAgIGFiLmNvcHlUbyhST09ULCAnYSpiJykgcmFpc2VzIDEzCisg
ICAgYWIuY29weVRvKFJPT1QsICdhImInKSByYWlzZXMgMTMKKyAgICBhYi5jb3B5VG8oUk9PVCwg
J2F8YicpIHJhaXNlcyAxMworCisgICAgIyBOYW1lIHNob3VsZCBub3QgY29udGFpbiAnLycKKyAg
ICBhYi5jb3B5VG8oUk9PVCwgJ2EvYicpIHJhaXNlcyAxMworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvZnMtdGVzdC1zaGVsbC10ZW1wb3JhcnkuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jl
c3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3Jlc3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMjgyZTNmMmQ3Yzhk
NjgzMTAyMjRhYzM2NjgzOTVjNDQyMGQ3ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzdHJpY3RlZC1uYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0NSBAQAorR290IEZpbGVTeXN0ZW06IFRlc3RTaGVsbEZpbGVTeXN0ZW0KK1Jlc2V0aW5nIHRo
ZSBmaWxlc3lzdGVtLi4uCitQQVNTIFN1Y2NlZWRlZDogICAgIGZpbGUgPSBST09ULmdldEZpbGUo
J2FhYScsIHtjcmVhdGU6dHJ1ZX0pCitQQVNTIFN1Y2NlZWRlZDogICAgIGRpciA9IFJPT1QuZ2V0
RmlsZSgnYmJiJywge2NyZWF0ZTp0cnVlfSkKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBp
cyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4
cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAi
MTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVj
dGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMi
CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNT
IHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
IGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlz
ICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIx
MyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0
ZWRFcnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIK
K1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRF
cnJvckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BB
U1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1BBU1Mg
dGhpcy5leHBlY3RlZEVycm9yQ29kZSBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlIGlzICIxMyIKK1NjcmlwdCBl
eGVjdXRpb24gZmluaXNoZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jl
c3RyaWN0ZWQtbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXN0cmlj
dGVkLW5hbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMxZDBiYzEyYjkwMDFlYmIyNWVkYjQzMzc1NTBh
ZDIyNzExZjYxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9yZXN0cmljdGVkLW5hbWVzLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXNoZWxsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9ImFw
cGxpY2F0aW9uL2ZpbGUtc3lzdGVtLXRlc3Qtc2hlbGwiIGlkPSJmaWxlLXN5c3RlbS10ZXN0LXNj
cmlwdCI+CisKKyAgICByZXNldCgpCisgICAgZmlsZSA9IFJPT1QuZ2V0RmlsZSgnYWFhJywge2Ny
ZWF0ZTp0cnVlfSkKKyAgICBkaXIgPSBST09ULmdldEZpbGUoJ2JiYicsIHtjcmVhdGU6dHJ1ZX0p
CisKKyAgICBST09ULmdldEZpbGUoJ2NvbicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgn
Q09OJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdDb24nKSByYWlzZXMgMTMKKyAgICBS
T09ULmdldEZpbGUoJ2NPbi50eHQnKSByYWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgn
YmJiL2NvTicpIHJhaXNlcyAxMworCisgICAgUk9PVC5nZXRGaWxlKCdwcm4nKSByYWlzZXMgMTMK
KyAgICBST09ULmdldEZpbGUoJ1BSTicpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnUHJu
JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdwUm4udHh0JykgcmFpc2VzIDEzCisgICAg
Uk9PVC5nZXREaXJlY3RvcnkoJ2JiYi9wck4nKSByYWlzZXMgMTMKKworICAgIFJPT1QuZ2V0Rmls
ZSgnYXV4JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdBVVgnKSByYWlzZXMgMTMKKyAg
ICBST09ULmdldEZpbGUoJ0F1eCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgnYVV4LnR4
dCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdiYmIvYXVYJykgcmFpc2VzIDEz
CisKKyAgICBST09ULmdldEZpbGUoJ251bCcpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RmlsZSgn
TlVMJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdOdWwnKSByYWlzZXMgMTMKKyAgICBS
T09ULmdldEZpbGUoJ25VbC50eHQnKSByYWlzZXMgMTMKKyAgICBST09ULmdldERpcmVjdG9yeSgn
YmJiL251TCcpIHJhaXNlcyAxMworCisgICAgUk9PVC5nZXRGaWxlKCdjb20xJykgcmFpc2VzIDEz
CisgICAgUk9PVC5nZXRGaWxlKCdDT00yJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdD
b200JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdjT003LmZvbycpIHJhaXNlcyAxMwor
ICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdiYmIvY29NOScpIHJhaXNlcyAxMworCisgICAgUk9PVC5n
ZXRGaWxlKCdscHQxJykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxlKCdMUFQyJykgcmFpc2Vz
IDEzCisgICAgUk9PVC5nZXRGaWxlKCdMcHQ0JykgcmFpc2VzIDEzCisgICAgUk9PVC5nZXRGaWxl
KCdsUFQ3LmZvbycpIHJhaXNlcyAxMworICAgIFJPT1QuZ2V0RGlyZWN0b3J5KCdiYmIvbHBUOScp
IHJhaXNlcyAxMworCisgICAgIyBOYW1lcyBzaG91bGQgbm90IGVuZCB3aXRoIHBlcmlvZCBvciB3
aGl0ZXNwYWNlLgorICAgIFJPT1QuZ2V0RmlsZSgnZm9vICcpIHJhaXNlcyAxMworICAgIFJPT1Qu
Z2V0RmlsZSgnZm9vXG4nKSByYWlzZXMgMTMKKyAgICBST09ULmdldEZpbGUoJ2Zvby4nKSByYWlz
ZXMgMTMKKyAgICBmaWxlLmNvcHlUbyhkaXIsICdmb28gJykgcmFpc2VzIDEzCisgICAgZmlsZS5j
b3B5VG8oZGlyLCAnZm9vXHQnKSByYWlzZXMgMTMKKyAgICBmaWxlLmNvcHlUbyhkaXIsICdmb28u
JykgcmFpc2VzIDEzCisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0
LXNoZWxsLXRlbXBvcmFyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3BhcmFsbGVsLW9w
ZXJhdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3Bh
cmFsbGVsLW9wZXJhdGlvbnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDEyYWQ1ZDI0ZThkZGI4Njg3ZjlhZmJk
NTZjODk3YTgwNTZlMWNjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9zY3JpcHQtdGVzdHMvcGFyYWxsZWwtb3BlcmF0aW9ucy5qcwpAQCAtMCwwICsxLDk4
IEBACitkZXNjcmlwdGlvbigiVGVzdCBtYWtpbmcgbXVsdGlwbGUgRmlsZVN5c3RlbSBvcGVyYXRp
b25zIGluIHBhcmFsbGVsLiIpOworCit2YXIgZmlsZVN5c3RlbSA9IG51bGw7CisKK3ZhciBhOwor
dmFyIGI7Cit2YXIgYzsKKworZnVuY3Rpb24gZW5kVGVzdCgpIHsKKyAgICByZW1vdmVSZWN1cnNp
dmVseShmaWxlU3lzdGVtLnJvb3QpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlv
biBlcnJvckNhbGxiYWNrKGVycm9yKSB7CisgICAgZGVidWcoIkdvdCBlcnJvcjogIiArIGVycm9y
LmNvZGUpOworICAgIGVuZFRlc3QoKTsKK30KKwordmFyIHBhdGhzID0gW107Cit2YXIgZGlycyA9
IDA7Cit2YXIgcmVhZGVyID0gbnVsbDsKKworZnVuY3Rpb24gZW50cmllc0NhbGxiYWNrKGVudHJp
ZXMpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgcGF0aHMucHVzaChlbnRyaWVzW2ldLmZ1bGxQYXRoKTsKKyAgICAgICAgaWYgKGVudHJp
ZXNbaV0uaXNEaXJlY3RvcnkpCisgICAgICAgICAgICBkaXJzKys7CisgICAgfQorICAgIGlmICgh
ZW50cmllcy5sZW5ndGgpIHsKKyAgICAgICAgcmVhZGVyLnJlYWRFbnRyaWVzKGVudHJpZXNDYWxs
YmFjaywgZXJyb3JDYWxsYmFjayk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcGF0aHMuc29ydCgp
OworICAgICAgICBzaG91bGRCZSgnIicgKyBwYXRocy5qb2luKCcsJykgKyAnIicsICciL2EsL2Iy
LC9jLC9kLC9lIicpOworICAgICAgICBlbmRUZXN0KCk7CisgICAgfQorfQorCitmdW5jdGlvbiB2
ZXJpZnkoKSB7CisgICAgZGVidWcoIlZlcmlmeWluZyB0aGUgRmlsZVN5c3RlbSBzdGF0dXMuIik7
CisgICAgcmVhZGVyID0gZmlsZVN5c3RlbS5yb290LmNyZWF0ZVJlYWRlcigpOworICAgIHJlYWRl
ci5yZWFkRW50cmllcyhlbnRyaWVzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOworfQorCitmdW5j
dGlvbiBwYXJhbGxlbFRlc3QyKCkgeworICAgIGRlYnVnKCJTdGFydGluZyBwYXJhbGxlbCB0ZXN0
IHN0YWdlIDIuIik7CisKKyAgICB2YXIgaGVscGVyID0gbmV3IEpvaW5IZWxwZXIoKTsKKyAgICB2
YXIgZG9uZSA9IGZ1bmN0aW9uKCkgeyBoZWxwZXIuZG9uZSgpOyB9OworCisgICAgaGVscGVyLnJ1
bihmdW5jdGlvbigpIHsgYS5jb3B5VG8oYiwgJ3RtcCcsIGRvbmUsIGVycm9yQ2FsbGJhY2spOyB9
KTsKKyAgICBoZWxwZXIucnVuKGZ1bmN0aW9uKCkgeyBhLmdldE1ldGFkYXRhKGRvbmUsIGVycm9y
Q2FsbGJhY2spOyB9KTsKKyAgICBoZWxwZXIucnVuKGZ1bmN0aW9uKCkgeyBiLmdldFBhcmVudChk
b25lLCBlcnJvckNhbGxiYWNrKTsgfSk7CisgICAgaGVscGVyLnJ1bihmdW5jdGlvbigpIHsgYi5t
b3ZlVG8oZmlsZVN5c3RlbS5yb290LCAnYjInLCBkb25lLCBlcnJvckNhbGxiYWNrKTsgfSk7Cisg
ICAgaGVscGVyLnJ1bihmdW5jdGlvbigpIHsgYy5jb3B5VG8oZmlsZVN5c3RlbS5yb290LCAnZCcs
IGRvbmUsIGVycm9yQ2FsbGJhY2spOyB9KTsKKyAgICBoZWxwZXIucnVuKGZ1bmN0aW9uKCkgeyBm
aWxlU3lzdGVtLnJvb3QuZ2V0RmlsZSgnZScsIHtjcmVhdGU6dHJ1ZX0sIGRvbmUsIGVycm9yQ2Fs
bGJhY2spOyB9KTsKKworICAgIGhlbHBlci5qb2luKHZlcmlmeSk7Cit9CisKK2Z1bmN0aW9uIHBh
cmFsbGVsVGVzdDEoKSB7CisgICAgZGVidWcoIlN0YXJ0aW5nIHBhcmFsbGVsIHRlc3Qgc3RhZ2Ug
MS4iKTsKKworICAgIHZhciBoZWxwZXIgPSBuZXcgSm9pbkhlbHBlcigpOworICAgIHZhciByb290
ID0gZmlsZVN5c3RlbS5yb290OworCisgICAgaGVscGVyLnJ1bihmdW5jdGlvbigpIHsgcm9vdC5n
ZXRGaWxlKCdhJywge2NyZWF0ZTp0cnVlfSwgZnVuY3Rpb24oZW50cnkpIHsKKyAgICAgICAgYSA9
IGVudHJ5OworICAgICAgICBoZWxwZXIuZG9uZSgpOworICAgIH0sIGVycm9yQ2FsbGJhY2spOyB9
KTsKKworICAgIGhlbHBlci5ydW4oZnVuY3Rpb24oKSB7IHJvb3QuZ2V0RGlyZWN0b3J5KCdiJywg
e2NyZWF0ZTp0cnVlfSwgZnVuY3Rpb24oZW50cnkpIHsKKyAgICAgICAgYiA9IGVudHJ5OworICAg
ICAgICBoZWxwZXIuZG9uZSgpOworICAgIH0sIGVycm9yQ2FsbGJhY2spOyB9KTsKKworICAgIGhl
bHBlci5ydW4oZnVuY3Rpb24oKSB7IHJvb3QuZ2V0RGlyZWN0b3J5KCdjJywge2NyZWF0ZTp0cnVl
fSwgZnVuY3Rpb24oZW50cnkpIHsKKyAgICAgICAgYyA9IGVudHJ5OworICAgICAgICBoZWxwZXIu
ZG9uZSgpOworICAgIH0sIGVycm9yQ2FsbGJhY2spOyB9KTsKKworICAgIGhlbHBlci5qb2luKHBh
cmFsbGVsVGVzdDIpOworfQorCitpZiAod2luZG93LnJlcXVlc3RGaWxlU3lzdGVtKSB7CisgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHZhciBoZWxwZXIgPSBuZXcgSm9pbkhl
bHBlcigpOworICAgIGhlbHBlci5ydW4oZnVuY3Rpb24oKSB7CisgICAgcmVxdWVzdEZpbGVTeXN0
ZW0uYXBwbHkodGhpcywgW3dpbmRvdy5URU1QT1JBUlksIDEwMCwgZnVuY3Rpb24oZnMpIHsKKyAg
ICAgICAgZGVidWcoIkdvdCBGaWxlU3lzdGVtOiIgKyBmcy5uYW1lKTsKKyAgICAgICAgZmlsZVN5
c3RlbSA9IGZzOworICAgICAgICByZW1vdmVSZWN1cnNpdmVseShmaWxlU3lzdGVtLnJvb3QsIGZ1
bmN0aW9uKCl7IGhlbHBlci5kb25lKCk7IH0sIGVycm9yQ2FsbGJhY2spOworICAgIH0sIGVycm9y
Q2FsbGJhY2tdKTsgfSk7CisgICAgZGVidWcoInJlcXVlc3RlZCBGaWxlU3lzdGVtLiIpOworICAg
IGhlbHBlci5qb2luKHBhcmFsbGVsVGVzdDEpOworfSBlbHNlCisgICAgZGVidWcoIlRoaXMgdGVz
dCByZXF1aXJlcyBGaWxlU3lzdGVtIEFQSSBzdXBwb3J0LiIpOworCit3aW5kb3cuc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9zY3JpcHQtdGVzdHMvc2ltcGxlLXBlcnNpc3RlbnQuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS1wZXJzaXN0ZW50LmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2
NjdlYWUxZjc2ZThlMzI1ZmI0ZWUzMTYyMDM3ZWI1MGI4ODA0ZTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS1wZXJzaXN0
ZW50LmpzCkBAIC0wLDAgKzEsMjkgQEAKK2Rlc2NyaXB0aW9uKCJQZXJzaXN0ZW50IEZpbGVTeXN0
ZW0gc2ltcGxlIHRlc3QuIik7Cit2YXIgZmlsZVN5c3RlbSA9IG51bGw7CisKK2Z1bmN0aW9uIGVy
cm9yQ2FsbGJhY2soZmlsZVN5c3RlbSkgeworICAgIGRlYnVnKCJFcnJvciBvY2N1cmVkIGR1cmlu
ZyByZXF1ZXN0aW5nIFBlcnNpc3RlbnQgRmlsZVN5c3RlbToiICsgZmlsZVN5c3RlbS5uYW1lKTsK
KworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNr
KGZzKSB7CisgICAgZmlsZVN5c3RlbSA9IGZzOworICAgIGRlYnVnKCJTdWNjZXNzZnVsbHkgb2J0
YWluZWQgUGVyc2lzdGVudCBGaWxlU3lzdGVtOiIgKyBmaWxlU3lzdGVtLm5hbWUpOworICAgIHNo
b3VsZEJlVHJ1ZSgiZmlsZVN5c3RlbS5uYW1lLmxlbmd0aCA+IDAiKTsKKyAgICBzaG91bGRCZSgi
ZmlsZVN5c3RlbS5yb290LmZ1bGxQYXRoIiwgJyIvIicpOworCisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworfQorCitpZiAod2luZG93LnJlcXVlc3RGaWxlU3lzdGVtKSB7CisgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworCisgICAgcmVxdWVzdEZpbGVTeXN0ZW0od2luZG93LlBFUlNJU1RFTlQs
IDEwMCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30gZWxzZQorICAgIGRlYnVn
KCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKword2luZG93
LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS10ZW1wb3JhcnkuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL3NpbXBsZS10ZW1wb3JhcnkuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTRjMDc1NmE4MDI3ODMxYzZlYWJkMTkzNTIzMWI5ZTIyMTc5MzdmOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvc2ltcGxl
LXRlbXBvcmFyeS5qcwpAQCAtMCwwICsxLDI5IEBACitkZXNjcmlwdGlvbigiVGVtcG9yYXJ5IEZp
bGVTeXN0ZW0gc2ltcGxlIHRlc3QuIik7Cit2YXIgZmlsZVN5c3RlbSA9IG51bGw7CisKK2Z1bmN0
aW9uIGVycm9yQ2FsbGJhY2soZmlsZVN5c3RlbSkgeworICAgIGRlYnVnKCJFcnJvciBvY2N1cmVk
IGR1cmluZyByZXF1ZXN0aW5nIFRlbXBvcmFyeSBGaWxlU3lzdGVtOiIgKyBmaWxlU3lzdGVtLm5h
bWUpOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzdWNjZXNzQ2Fs
bGJhY2soZnMpIHsKKyAgICBmaWxlU3lzdGVtID0gZnM7CisgICAgZGVidWcoIlN1Y2Nlc3NmdWxs
eSBvYnRhaW5lZCBUZW1wb3JhcnkgRmlsZVN5c3RlbToiICsgZmlsZVN5c3RlbS5uYW1lKTsKKyAg
ICBzaG91bGRCZVRydWUoImZpbGVTeXN0ZW0ubmFtZS5sZW5ndGggPiAwIik7CisgICAgc2hvdWxk
QmUoImZpbGVTeXN0ZW0ucm9vdC5mdWxsUGF0aCIsICciLyInKTsKKworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30KKworaWYgKHdpbmRvdy5yZXF1ZXN0RmlsZVN5c3RlbSkgeworICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKworICAgIHJlcXVlc3RGaWxlU3lzdGVtKHdpbmRvdy5URU1QT1JB
UlksIDEwMCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKK30gZWxzZQorICAgIGRl
YnVnKCJUaGlzIHRlc3QgcmVxdWlyZXMgRmlsZVN5c3RlbSBBUEkgc3VwcG9ydC4iKTsKKword2lu
ZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNpc3RlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1wZXJzaXN0ZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yN2Q1YzY5M2RhNWY2NDk1N2QwN2ZiNTk5MzBlMWJkYjliMDJmNDNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1wZXJzaXN0ZW50LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitQZXJzaXN0ZW50IEZpbGVTeXN0ZW0gc2ltcGxl
IHRlc3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdWNjZXNzZnVsbHkgb2J0
YWluZWQgUGVyc2lzdGVudCBGaWxlU3lzdGVtOlRlc3RTaGVsbEZpbGVTeXN0ZW0KK1BBU1MgZmls
ZVN5c3RlbS5uYW1lLmxlbmd0aCA+IDAgaXMgdHJ1ZQorUEFTUyBmaWxlU3lzdGVtLnJvb3QuZnVs
bFBhdGggaXMgIi8iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3NpbXBsZS1w
ZXJzaXN0ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXBlcnNp
c3RlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjVhMTNhNjdkNjNhYmUwMGMzYWFkMDlmODlhNDc1Njhj
NDM3NDE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Np
bXBsZS1wZXJzaXN0ZW50Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zaW1wbGUtcGVyc2lzdGVudC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFyeS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjk0MjAxODhkN2M0MDA1OGIxMmRmZmRjODE0NmZiOWE3YWY4MzcxNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtdGVtcG9yYXJ5LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZW1wb3JhcnkgRmlsZVN5c3RlbSBzaW1wbGUgdGVz
dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N1Y2Nlc3NmdWxseSBvYnRhaW5l
ZCBUZW1wb3JhcnkgRmlsZVN5c3RlbTpUZXN0U2hlbGxGaWxlU3lzdGVtCitQQVNTIGZpbGVTeXN0
ZW0ubmFtZS5sZW5ndGggPiAwIGlzIHRydWUKK1BBU1MgZmlsZVN5c3RlbS5yb290LmZ1bGxQYXRo
IGlzICIvIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9zaW1wbGUtdGVtcG9y
YXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRlbXBvcmFyeS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA4ZTkyZmZlYmM0MGQzNzkxNDI4OTlmYjJmNmQwOTU1YThiMjE2NzQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2ltcGxlLXRl
bXBvcmFyeS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc2ltcGxlLXRlbXBvcmFyeS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69606</attachid>
            <date>2010-10-04 01:48:44 -0700</date>
            <delta_ts>2010-10-06 23:23:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44920-20101004014843.patch</filename>
            <type>text/plain</type>
            <size>71710</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZTFhNjIzNGYxOGJlOGFiNzljMzJlZTAzZTMxZWJiZTJhYWU5NTUwLi5iYTM2OWRh
NDQwNjY5MTgyMzdlNDkwMDY4MzE0YWVlOGFhMjQxMzQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMTAtMTAtMDQgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVz
dHMgZm9yIEZpbGVTeXN0ZW0gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDkyMAorCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciBtYWpvciBFbnRy
eSBvcGVyYXRpb25zOiBjb3B5VG8sIG1vdmVUbywgZ2V0RmlsZSwKKyAgICAgICAgZ2V0RGlyZWN0
b3J5LCByZW1vdmUsIGNyZWF0ZVJlYWRlci5yZWFkRW50cmllcywgZ2V0UGFyZW50LgorCisgICAg
ICAgICogZmFzdC9maWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtY29weS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ZpbGVzeXN0ZW0vb3AtZ2V0LXBhcmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZmlsZXN5c3RlbS9vcC1tb3ZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9maWxlc3lzdGVtL29wLW1vdmUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lz
dGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZmlsZXN5c3RlbS9vcC1yZW1vdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmls
ZXN5c3RlbS9vcC1yZXN0cmljdGVkLWNoYXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9maWxlc3lzdGVtL29wLXJlc3RyaWN0ZWQtY2hhcnMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9maWxlc3lzdGVtL29wLXJlc3RyaWN0ZWQtbmFtZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vb3AtcmVzdHJpY3RlZC1uYW1lcy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL2ZzLXRlc3QtdXRp
bC5qczoKKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLWNvcHkuanM6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvb3AtZ2V0LWVudHJ5Lmpz
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLWdldC1wYXJl
bnQuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvb3AtbW92
ZS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9vcC1yZWFk
LWRpcmVjdG9yeS5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lzdGVtL3Jlc291cmNl
cy9vcC1yZW1vdmUuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmlsZXN5c3RlbS9yZXNvdXJj
ZXMvb3AtcmVzdHJpY3RlZC1jaGFycy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9maWxlc3lz
dGVtL3Jlc291cmNlcy9vcC1yZXN0cmljdGVkLW5hbWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLXRlc3RzLWhlbHBlci5qczogQWRkZWQuCisgICAg
ICAgICogZmFzdC9maWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9mbGFncy1wYXNzaW5nLmpzOiBBIG5p
dCBmaXguCisKIDIwMTAtMDktMzAgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBCdWlsZCBmaXguIE5vdCByZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9vcC1jb3B5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXN5c3RlbS9vcC1jb3B5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzZhOTIxMWNhMzk0
ZGNlMTBjZjZmYmE0OTg0ODI0NzU2ODI5MGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL29wLWNvcHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkgQEAK
KyogUnVubmluZzogQ29weUZpbGVTaW1wbGUKK1BBU1MgU3VjY2VlZGVkOiAiL2EvYiIuY29weVRv
KCIvYSIsICJjIikKK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hIG5hbWU6YSB0
eXBlOkRJUkVDVE9SWX0KK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hL2IgbmFt
ZTpiIHR5cGU6RklMRX0KK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hL2MgbmFt
ZTpjIHR5cGU6RklMRX0KKyogUnVubmluZzogQ29weURpcmVjdG9yeVNpbXBsZQorUEFTUyBTdWNj
ZWVkZWQ6ICIvYS9iIi5jb3B5VG8oIi9hIiwgImMiKQorUEFTUyBWZXJpZmllZCBlbnRyeTogRU5U
Ulkge3BhdGg6L2EgbmFtZTphIHR5cGU6RElSRUNUT1JZfQorUEFTUyBWZXJpZmllZCBlbnRyeTog
RU5UUlkge3BhdGg6L2EvYiBuYW1lOmIgdHlwZTpESVJFQ1RPUll9CitQQVNTIFZlcmlmaWVkIGVu
dHJ5OiBFTlRSWSB7cGF0aDovYS9jIG5hbWU6YyB0eXBlOkRJUkVDVE9SWX0KKyogUnVubmluZzog
Q29weUZpbGVUb0RpZmZlcmVudERpcmVjdG9yeQorUEFTUyBTdWNjZWVkZWQ6ICIvYS9iIi5jb3B5
VG8oIi9jIiwgImQiKQorUEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EgbmFtZTph
IHR5cGU6RElSRUNUT1JZfQorUEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EvYiBu
YW1lOmIgdHlwZTpGSUxFfQorUEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2MvZCBu
YW1lOmQgdHlwZTpGSUxFfQorKiBSdW5uaW5nOiBDb3B5RmlsZVdpdGhFbXB0eU5hbWUKK1BBU1Mg
U3VjY2VlZGVkOiAiL2EvYiIuY29weVRvKCIvYyIsICJudWxsIikKK1BBU1MgVmVyaWZpZWQgZW50
cnk6IEVOVFJZIHtwYXRoOi9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0KK1BBU1MgVmVyaWZpZWQg
ZW50cnk6IEVOVFJZIHtwYXRoOi9hL2IgbmFtZTpiIHR5cGU6RklMRX0KK1BBU1MgVmVyaWZpZWQg
ZW50cnk6IEVOVFJZIHtwYXRoOi9jL2IgbmFtZTpiIHR5cGU6RklMRX0KKyogUnVubmluZzogQ29w
eUZpbGVXaXRoRW1wdHlOYW1lVG9TYW1lRGlyZWN0b3J5CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYSBu
YW1lOmEgdHlwZTpESVJFQ1RPUll9CitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDov
YS9iIG5hbWU6YiB0eXBlOkZJTEV9CisqIFJ1bm5pbmc6IENvcHlGaWxlV2l0aFNhbWVOYW1lCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIFZlcmlmaWVkIGVu
dHJ5OiBFTlRSWSB7cGF0aDovYSBuYW1lOmEgdHlwZTpESVJFQ1RPUll9CitQQVNTIFZlcmlmaWVk
IGVudHJ5OiBFTlRSWSB7cGF0aDovYS9iIG5hbWU6YiB0eXBlOkZJTEV9CisqIFJ1bm5pbmc6IENv
cHlGb3JOb25FeGlzdGVudEVudHJ5CitQQVNTIFN1Y2NlZWRlZDogIi9hL2IiLnJlbW92ZSgpCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiOCIKK1BBU1MgVmVyaWZpZWQgZW50
cnk6IEVOVFJZIHtwYXRoOi9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0KK1BBU1MgVmVyaWZpZWQg
ZW50cnk6IEVOVFJZIHtwYXRoOi9jIG5hbWU6YyB0eXBlOkRJUkVDVE9SWX0KKyogUnVubmluZzog
Q29weUVudHJ5VG9Ob25FeGlzdGVudERpcmVjdG9yeQorUEFTUyBTdWNjZWVkZWQ6ICIvYyIucmVt
b3ZlKCkKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICI4IgorUEFTUyBWZXJp
ZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EgbmFtZTphIHR5cGU6RElSRUNUT1JZfQorUEFTUyBW
ZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EvYiBuYW1lOmIgdHlwZTpGSUxFfQorKiBSdW5u
aW5nOiBDb3B5RW50cnlUb0l0c0NoaWxkCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAi
IiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNT
IFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYSBuYW1lOmEgdHlwZTpESVJFQ1RPUll9CitQ
QVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYS9iIG5hbWU6YiB0eXBlOkRJUkVDVE9S
WX0KK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hL2IvYyBuYW1lOmMgdHlwZTpE
SVJFQ1RPUll9CisqIFJ1bm5pbmc6IENvcHlSZWN1cnNpdmUKK1BBU1MgU3VjY2VlZGVkOiAiL2Ei
LmNvcHlUbygiL2IiLCAiYSIpCitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYSBu
YW1lOmEgdHlwZTpESVJFQ1RPUll9CitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDov
YS9iIG5hbWU6YiB0eXBlOkRJUkVDVE9SWX0KK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtw
YXRoOi9hL2IvYyBuYW1lOmMgdHlwZTpGSUxFfQorUEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkg
e3BhdGg6L2EvYi9kIG5hbWU6ZCB0eXBlOkZJTEV9CitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRS
WSB7cGF0aDovYi9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0KK1BBU1MgVmVyaWZpZWQgZW50cnk6
IEVOVFJZIHtwYXRoOi9iL2EvYiBuYW1lOmIgdHlwZTpESVJFQ1RPUll9CitQQVNTIFZlcmlmaWVk
IGVudHJ5OiBFTlRSWSB7cGF0aDovYi9hL2IvYyBuYW1lOmMgdHlwZTpGSUxFfQorUEFTUyBWZXJp
ZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2IvYS9iL2QgbmFtZTpkIHR5cGU6RklMRX0KK0Zpbmlz
aGVkIHJ1bm5pbmcgdGVzdHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29w
LWNvcHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1jb3B5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODM4NDcwZDAyMzAzN2YzYzUwZmM2OGZmY2Y2NGY1ZjkxMzEwN2M0OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1jb3B5Lmh0bWwKQEAg
LTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvb3AtY29weS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29wLXRlc3RzLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVz
eXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9vcC1nZXQtZW50cnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxZDU2NGU4YzcyZGRh
N2MxMDYwZjNhOTczNjQzZWJkNmEwMjhhODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYw
IEBACisqIFJ1bm5pbmc6IENyZWF0ZVNpbXBsZQorUEFTUyBTdWNjZWVkZWQ6ICIvIi5nZXREaXJl
Y3RvcnkoImEiKQorUEFTUyBTdWNjZWVkZWQ6ICIvIi5nZXRGaWxlKCJiIikKK1BBU1MgVmVyaWZp
ZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0KK1BBU1MgVmVy
aWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9iIG5hbWU6YiB0eXBlOkZJTEV9CisqIFJ1bm5pbmc6
IENyZWF0ZU5lc3RlZAorUEFTUyBTdWNjZWVkZWQ6ICIvIi5nZXREaXJlY3RvcnkoImEiKQorUEFT
UyBTdWNjZWVkZWQ6ICIvYSIuZ2V0RGlyZWN0b3J5KCJiIikKK1BBU1MgU3VjY2VlZGVkOiAiL2Ev
YiIuZ2V0RGlyZWN0b3J5KCJjIikKK1BBU1MgU3VjY2VlZGVkOiAiL2EvYi9jIi5nZXREaXJlY3Rv
cnkoImQiKQorUEFTUyBTdWNjZWVkZWQ6ICIvYS9iL2MvZCIuZ2V0RmlsZSgiZSIpCitQQVNTIFZl
cmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYS9iL2MvZC9lIG5hbWU6ZSB0eXBlOkZJTEV9Cisq
IFJ1bm5pbmc6IENyZWF0ZU5lc3RlZFdpdGhBYnNvbHV0ZVBhdGgKK1BBU1MgU3VjY2VlZGVkOiAi
L2R1bW15Ii5nZXREaXJlY3RvcnkoIi9hIikKK1BBU1MgU3VjY2VlZGVkOiAiL2R1bW15Ii5nZXRE
aXJlY3RvcnkoIi9hL2IiKQorUEFTUyBTdWNjZWVkZWQ6ICIvZHVtbXkiLmdldERpcmVjdG9yeSgi
L2EvYi9jIikKK1BBU1MgU3VjY2VlZGVkOiAiL2R1bW15Ii5nZXREaXJlY3RvcnkoIi9hL2IvYy9k
IikKK1BBU1MgU3VjY2VlZGVkOiAiL2R1bW15Ii5nZXRGaWxlKCIvYS9iL2MvZC9lIikKK1BBU1Mg
VmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9kdW1teSBuYW1lOmR1bW15IHR5cGU6RElSRUNU
T1JZfQorUEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EvYi9jL2QvZSBuYW1lOmUg
dHlwZTpGSUxFfQorKiBSdW5uaW5nOiBDcmVhdGVOZXN0ZWRXaXRoUmVsYXRpdmVQYXRoCitQQVNT
IHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRF
cnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBp
cyAiMTMiCisqIFJ1bm5pbmc6IEdldEV4aXN0aW5nRW50cnkKK1BBU1MgU3VjY2VlZGVkOiAiLyIu
Z2V0RGlyZWN0b3J5KCJhIikKK1BBU1MgU3VjY2VlZGVkOiAiLyIuZ2V0RmlsZSgiYiIpCitQQVNT
IFN1Y2NlZWRlZDogIi8iLmdldERpcmVjdG9yeSgiYSIpCitQQVNTIHRoaXMuZW52aXJvbm1lbnRb
dGhpcy5lbnRyeS5mdWxsUGF0aF0uZnVsbFBhdGggaXMgIi9hIgorUEFTUyB0aGlzLmVudmlyb25t
ZW50W3RoaXMuZW50cnkuZnVsbFBhdGhdLmlzRmlsZSArICIiIGlzICJmYWxzZSIKK1BBU1MgdGhp
cy5lbnZpcm9ubWVudFt0aGlzLmVudHJ5LmZ1bGxQYXRoXS5pc0RpcmVjdG9yeSArICIiIGlzICJ0
cnVlIgorUEFTUyBTdWNjZWVkZWQ6ICIvIi5nZXRGaWxlKCJiIikKK1BBU1MgdGhpcy5lbnZpcm9u
bWVudFt0aGlzLmVudHJ5LmZ1bGxQYXRoXS5mdWxsUGF0aCBpcyAiL2IiCitQQVNTIHRoaXMuZW52
aXJvbm1lbnRbdGhpcy5lbnRyeS5mdWxsUGF0aF0uaXNGaWxlICsgIiIgaXMgInRydWUiCitQQVNT
IHRoaXMuZW52aXJvbm1lbnRbdGhpcy5lbnRyeS5mdWxsUGF0aF0uaXNEaXJlY3RvcnkgKyAiIiBp
cyAiZmFsc2UiCitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYSBuYW1lOmEgdHlw
ZTpESVJFQ1RPUll9CitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYiBuYW1lOmIg
dHlwZTpGSUxFfQorKiBSdW5uaW5nOiBHZXROb25FeGlzdGVudAorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlICsgIiIgaXMgIjgiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBp
cyAiOCIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICI4IgorUEFTUyB0aGlz
LmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjgiCisqIFJ1bm5pbmc6IEdldEZpbGVGb3JEaXJl
Y3RvcnkKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIxMSIKK1BBU1MgdGhp
cy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIxMSIKK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVO
VFJZIHtwYXRoOi9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0KKyogUnVubmluZzogR2V0RGlyZWN0
b3J5Rm9yRmlsZQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjExIgorUEFT
UyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjExIgorUEFTUyBWZXJpZmllZCBlbnRy
eTogRU5UUlkge3BhdGg6L2EgbmFtZTphIHR5cGU6RklMRX0KKyogUnVubmluZzogQ3JlYXRlV2l0
aEV4Y2x1c2l2ZQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFT
UyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyBWZXJpZmllZCBlbnRy
eTogRU5UUlkge3BhdGg6L2EgbmFtZTphIHR5cGU6RElSRUNUT1JZfQorUEFTUyBWZXJpZmllZCBl
bnRyeTogRU5UUlkge3BhdGg6L2IgbmFtZTpiIHR5cGU6RklMRX0KK0ZpbmlzaGVkIHJ1bm5pbmcg
dGVzdHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1lbnRyeS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNkZmM2MzgwMWQ0NDljNDEzNmJhNDY1NjNjNjAyNmY0MzI4ZTk5NDMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtZ2V0LWVudHJ5Lmh0bWwK
QEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvb3AtZ2V0LWVudHJ5
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvb3AtdGVzdHMtaGVscGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1nZXQtcGFyZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjlj
MTI5NzljNzc3NTg4MjI3NmQ5NGEyZDgzNjM2MjkxYjQ2ZDNhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdldC1wYXJlbnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTcgQEAKKyogUnVubmluZzogR2V0UGFyZW50CitQQVNTIFN1Y2NlZWRlZDogIi8i
LmdldFBhcmVudCgpCitQYXJlbnQgZW50cnk6IEVOVFJZIHtwYXRoOi8gbmFtZTogdHlwZTpESVJF
Q1RPUll9CitQQVNTIFN1Y2NlZWRlZDogIi9hIi5nZXRQYXJlbnQoKQorUGFyZW50IGVudHJ5OiBF
TlRSWSB7cGF0aDovIG5hbWU6IHR5cGU6RElSRUNUT1JZfQorUEFTUyBTdWNjZWVkZWQ6ICIvYS9i
Ii5nZXRQYXJlbnQoKQorUGFyZW50IGVudHJ5OiBFTlRSWSB7cGF0aDovYSBuYW1lOmEgdHlwZTpE
SVJFQ1RPUll9CitQQVNTIFN1Y2NlZWRlZDogIi9hL2IvYyIuZ2V0UGFyZW50KCkKK1BhcmVudCBl
bnRyeTogRU5UUlkge3BhdGg6L2EvYiBuYW1lOmIgdHlwZTpESVJFQ1RPUll9CitQQVNTIFZlcmlm
aWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYSBuYW1lOmEgdHlwZTpESVJFQ1RPUll9CitQQVNTIFZl
cmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYS9iIG5hbWU6YiB0eXBlOkRJUkVDVE9SWX0KK1BB
U1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hL2IvYyBuYW1lOmMgdHlwZTpGSUxFfQor
RmluaXNoZWQgcnVubmluZyB0ZXN0cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vb3AtZ2V0LXBhcmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLWdl
dC1wYXJlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWVlNjA3N2I0NTQ2MGJkN2E5YmI3OGRiNDFkYzgx
MTk0MGVkZjlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L29wLWdldC1wYXJlbnQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9vcC1nZXQtcGFyZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvb3AtdGVzdHMtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtbW92ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDE1ODY3MjQ0ZDI1MTM5N2JlYmQ5YWFlOTVmNzM1YTMzMWE0NmIwZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDU2IEBACisqIFJ1bm5pbmc6IE1vdmVGaWxlU2ltcGxlCitQQVNTIFN1
Y2NlZWRlZDogIi9hL2IiLm1vdmVUbygiL2EiLCAiYyIpCitQQVNTIFZlcmlmaWVkIGVudHJ5OiBF
TlRSWSB7cGF0aDovYSBuYW1lOmEgdHlwZTpESVJFQ1RPUll9CitQQVNTIFZlcmlmaWVkIGVudHJ5
IGRvZXMgTk9UIGV4aXN0OiAvYS9iCitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDov
YS9jIG5hbWU6YyB0eXBlOkZJTEV9CisqIFJ1bm5pbmc6IE1vdmVEaXJlY3RvcnlTaW1wbGUKK1BB
U1MgU3VjY2VlZGVkOiAiL2EvYiIubW92ZVRvKCIvYSIsICJjIikKK1BBU1MgVmVyaWZpZWQgZW50
cnk6IEVOVFJZIHtwYXRoOi9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0KK1BBU1MgVmVyaWZpZWQg
ZW50cnkgZG9lcyBOT1QgZXhpc3Q6IC9hL2IKK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtw
YXRoOi9hL2MgbmFtZTpjIHR5cGU6RElSRUNUT1JZfQorKiBSdW5uaW5nOiBNb3ZlRmlsZVRvRGlm
ZmVyZW50RGlyZWN0b3J5CitQQVNTIFN1Y2NlZWRlZDogIi9hL2IiLm1vdmVUbygiL2MiLCAiZCIp
CitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYSBuYW1lOmEgdHlwZTpESVJFQ1RP
Ull9CitQQVNTIFZlcmlmaWVkIGVudHJ5IGRvZXMgTk9UIGV4aXN0OiAvYS9iCitQQVNTIFZlcmlm
aWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYy9kIG5hbWU6ZCB0eXBlOkZJTEV9CisqIFJ1bm5pbmc6
IE1vdmVGaWxlV2l0aEVtcHR5TmFtZQorUEFTUyBTdWNjZWVkZWQ6ICIvYS9iIi5tb3ZlVG8oIi9j
IiwgIm51bGwiKQorUEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EgbmFtZTphIHR5
cGU6RElSRUNUT1JZfQorUEFTUyBWZXJpZmllZCBlbnRyeSBkb2VzIE5PVCBleGlzdDogL2EvYgor
UEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2MvYiBuYW1lOmIgdHlwZTpGSUxFfQor
KiBSdW5uaW5nOiBNb3ZlRmlsZVdpdGhFbXB0eU5hbWVUb1NhbWVEaXJlY3RvcnkKK1BBU1MgdGhp
cy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIxMyIKK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVO
VFJZIHtwYXRoOi9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0KK1BBU1MgVmVyaWZpZWQgZW50cnk6
IEVOVFJZIHtwYXRoOi9hL2IgbmFtZTpiIHR5cGU6RklMRX0KKyogUnVubmluZzogTW92ZUZpbGVX
aXRoU2FtZU5hbWUKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIxMyIKK1BB
U1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hIG5hbWU6YSB0eXBlOkRJUkVDVE9SWX0K
K1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hL2IgbmFtZTpiIHR5cGU6RklMRX0K
KyogUnVubmluZzogTW92ZUZvck5vbkV4aXN0ZW50RW50cnkKK1BBU1MgU3VjY2VlZGVkOiAiL2Ev
YiIucmVtb3ZlKCkKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICI4IgorUEFT
UyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EgbmFtZTphIHR5cGU6RElSRUNUT1JZfQor
UEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2MgbmFtZTpjIHR5cGU6RElSRUNUT1JZ
fQorKiBSdW5uaW5nOiBNb3ZlRW50cnlUb05vbkV4aXN0ZW50RGlyZWN0b3J5CitQQVNTIFN1Y2Nl
ZWRlZDogIi9jIi5yZW1vdmUoKQorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMg
IjgiCitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYSBuYW1lOmEgdHlwZTpESVJF
Q1RPUll9CitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYS9iIG5hbWU6YiB0eXBl
OkZJTEV9CisqIFJ1bm5pbmc6IE1vdmVFbnRyeVRvSXRzQ2hpbGQKK1BBU1MgdGhpcy5leHBlY3Rl
ZEVycm9yQ29kZSArICIiIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIi
IGlzICIxMyIKK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hIG5hbWU6YSB0eXBl
OkRJUkVDVE9SWX0KK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hL2IgbmFtZTpi
IHR5cGU6RElSRUNUT1JZfQorUEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EvYi9j
IG5hbWU6YyB0eXBlOkRJUkVDVE9SWX0KKyogUnVubmluZzogTW92ZVJlY3Vyc2l2ZQorUEFTUyBT
dWNjZWVkZWQ6ICIvYSIubW92ZVRvKCIvYiIsICJhIikKK1BBU1MgVmVyaWZpZWQgZW50cnkgZG9l
cyBOT1QgZXhpc3Q6IC9hCitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYi9hIG5h
bWU6YSB0eXBlOkRJUkVDVE9SWX0KK1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9i
L2EvYiBuYW1lOmIgdHlwZTpESVJFQ1RPUll9CitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7
cGF0aDovYi9hL2IvYyBuYW1lOmMgdHlwZTpGSUxFfQorUEFTUyBWZXJpZmllZCBlbnRyeTogRU5U
Ulkge3BhdGg6L2IvYS9iL2QgbmFtZTpkIHR5cGU6RklMRX0KK0ZpbmlzaGVkIHJ1bm5pbmcgdGVz
dHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLW1vdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjlmMTIy
Y2VkZTQwZjQ1NTYzZjUxOTc5OGExNWRhNDRjZjcwNmMyNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1tb3ZlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvb3AtbW92ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL29wLXRlc3RzLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVhZC1k
aXJlY3RvcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJl
YWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWYwNDNjYTZiYWM3OTRmMTg4
NDBmMDc4MDBhZDNkMzMwNTliYTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9maWxlc3lzdGVtL29wLXJlYWQtZGlyZWN0b3J5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIy
IEBACisqIFJ1bm5pbmc6IFJlYWREaXJlY3RvcnkKK1BBU1MgU3VjY2VlZGVkOiAiLyIuY3JlYXRl
UmVhZGVyKCkucmVhZEVudHJpZXMoKQorRW50cmllczogW0VOVFJZIHtwYXRoOi9hIG5hbWU6YSB0
eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L2IgbmFtZTpiIHR5cGU6RElSRUNUT1JZfSwK
KyBFTlRSWSB7cGF0aDovYyBuYW1lOmMgdHlwZTpGSUxFfSwKKyBFTlRSWSB7cGF0aDovZCBuYW1l
OmQgdHlwZTpGSUxFfSwKKyBFTlRSWSB7cGF0aDovZSBuYW1lOmUgdHlwZTpESVJFQ1RPUll9LAor
IEVOVFJZIHtwYXRoOi9mIG5hbWU6ZiB0eXBlOkZJTEV9LAorIEVOVFJZIHtwYXRoOi9nIG5hbWU6
ZyB0eXBlOkRJUkVDVE9SWX1dCitQQVNTIFN1Y2NlZWRlZDogIi9jIi5yZW1vdmUoKQorUEFTUyBT
dWNjZWVkZWQ6ICIvZSIucmVtb3ZlKCkKK1BBU1MgU3VjY2VlZGVkOiAiL2YiLnJlbW92ZSgpCitQ
QVNTIFN1Y2NlZWRlZDogIi8iLmNyZWF0ZVJlYWRlcigpLnJlYWRFbnRyaWVzKCkKK0VudHJpZXM6
IFtFTlRSWSB7cGF0aDovYSBuYW1lOmEgdHlwZTpESVJFQ1RPUll9LAorIEVOVFJZIHtwYXRoOi9i
IG5hbWU6YiB0eXBlOkRJUkVDVE9SWX0sCisgRU5UUlkge3BhdGg6L2QgbmFtZTpkIHR5cGU6RklM
RX0sCisgRU5UUlkge3BhdGg6L2cgbmFtZTpnIHR5cGU6RElSRUNUT1JZfV0KK0ZpbmlzaGVkIHJ1
bm5pbmcgdGVzdHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlYWQt
ZGlyZWN0b3J5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVhZC1kaXJl
Y3RvcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWFjYmEwZDJjMTEyNzE0NDU1Njc3OWFlYzY5ZjNmZjkx
MDFiNDNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29w
LXJlYWQtZGlyZWN0b3J5Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0aWwuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvb3AtcmVhZC1kaXJlY3RvcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9vcC10ZXN0cy1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVtb3ZlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMzYyZTJlOGRmMTAwY2FiODJlM2Y5ZDcxMTg0ZjRhODA0YWMwMzNlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlbW92ZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorKiBSdW5uaW5nOiBSZW1vdmVTaW1wbGUKK1BB
U1MgU3VjY2VlZGVkOiAiL2EiLnJlbW92ZSgpCitQQVNTIFN1Y2NlZWRlZDogIi9iIi5yZW1vdmUo
KQorUEFTUyBWZXJpZmllZCBlbnRyeSBkb2VzIE5PVCBleGlzdDogL2EKK1BBU1MgVmVyaWZpZWQg
ZW50cnkgZG9lcyBOT1QgZXhpc3Q6IC9iCisqIFJ1bm5pbmc6IFJlbW92ZU5vblJlY3Vyc2l2ZVdp
dGhDaGlsZHJlbgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFT
UyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EgbmFtZTphIHR5cGU6RElSRUNUT1JZfQor
UEFTUyBWZXJpZmllZCBlbnRyeTogRU5UUlkge3BhdGg6L2EvYiBuYW1lOmIgdHlwZTpESVJFQ1RP
Ull9CitQQVNTIFZlcmlmaWVkIGVudHJ5OiBFTlRSWSB7cGF0aDovYS9jIG5hbWU6YyB0eXBlOkZJ
TEV9CitGaW5pc2hlZCBydW5uaW5nIHRlc3RzLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmls
ZXN5c3RlbS9vcC1yZW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1y
ZW1vdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNmZmYmI3OGQxNGI3MGE4YjRmYTQ4YTczNGZiOTQ2ZDdj
M2M0OTM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29w
LXJlbW92ZS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZnMtdGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L29wLXJlbW92ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29wLXRlc3Rz
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZXN0cmljdGVkLWNoYXJzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZXN0cmljdGVkLWNoYXJzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hZGU3MmRmMWMzNjE1ZmRjMGU3ODExZjVhYmFjNDJjMWVkMzA0
YzE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJl
c3RyaWN0ZWQtY2hhcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKKyogUnVubmluZzog
UmVzdHJpY3RlZENoYXJzCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMi
CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUg
KyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQ
QVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0
ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAi
IiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNT
IHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRF
cnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBp
cyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRo
aXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJv
ckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAi
MTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMu
ZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMi
CitQQVNTIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgKyAiIiBpcyAiMTMiCitQQVNTIFN1Y2NlZWRlZDogIi8iLmdldEZpbGUo
ImFiIikKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIxMyIKK1BBU1MgdGhp
cy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9y
Q29kZSArICIiIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIx
MyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIxMyIKK1BBU1MgdGhpcy5l
eHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29k
ZSArICIiIGlzICIxMyIKK1BBU1MgdGhpcy5leHBlY3RlZEVycm9yQ29kZSArICIiIGlzICIxMyIK
K1BBU1MgVmVyaWZpZWQgZW50cnk6IEVOVFJZIHtwYXRoOi9hYiBuYW1lOmFiIHR5cGU6RklMRX0K
K0ZpbmlzaGVkIHJ1bm5pbmcgdGVzdHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lz
dGVtL29wLXJlc3RyaWN0ZWQtY2hhcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3Rl
bS9vcC1yZXN0cmljdGVkLWNoYXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzMwYzZiNWNiNmU5ZmRmMWUz
NzNjNDI5ZmY3ZjI5Yzc1ODdhMjE0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9vcC1yZXN0cmljdGVkLWNoYXJzLmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9mcy10ZXN0LXV0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvb3AtcmVzdHJpY3RlZC1jaGFycy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29wLXRlc3RzLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0
ZW0vb3AtcmVzdHJpY3RlZC1uYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vb3AtcmVzdHJpY3RlZC1uYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM5
MDM3OTEyYjBlNDE3ODBhNDI3MGE4OWJmM2U5ZjI3ZmUzYTAxZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9vcC1yZXN0cmljdGVkLW5hbWVzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQ2IEBACisqIFJ1bm5pbmc6IFJlc3RyaWN0ZWRDaGFycworUEFTUyB0
aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMg
IjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlz
LmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEz
IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4
cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
ICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgor
UEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVj
dGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsg
IiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFT
UyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIg
aXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0
aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJy
b3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMg
IjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlz
LmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JD
b2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEz
IgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4
cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
ICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgor
UEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVj
dGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsg
IiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFT
UyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVk
RXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIg
aXMgIjEzIgorUEFTUyB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyB0
aGlzLmV4cGVjdGVkRXJyb3JDb2RlICsgIiIgaXMgIjEzIgorUEFTUyBWZXJpZmllZCBlbnRyeTog
RU5UUlkge3BhdGg6L2EgbmFtZTphIHR5cGU6RElSRUNUT1JZfQorRmluaXNoZWQgcnVubmluZyB0
ZXN0cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vb3AtcmVzdHJpY3RlZC1u
YW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJlc3RyaWN0ZWQtbmFt
ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40YWFiZmM2M2ZhZTE2MDBhNzk1MmEwODMxMDQxNDA1MjIwZTEx
ZTlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL29wLXJl
c3RyaWN0ZWQtbmFtZXMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZzLXRlc3QtdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9vcC1yZXN0cmljdGVkLW5hbWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvb3AtdGVzdHMtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZnMtdGVz
dC11dGlsLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0
LXV0aWwuanMKaW5kZXggOWVkZGNiNTBlOTQxNmMwZGQzMzRlMzU3ZDY1MDcwNjhmY2E5ZjAzYi4u
OTg3NjhjZTQ5MWQzYmQ2MjhkMDRkMDFhMjUwZWE1YTY0YzI0ZGU4MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwuanMKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9mcy10ZXN0LXV0aWwuanMKQEAg
LTEsMyArMSwxMyBAQAorZnVuY3Rpb24gYmluZENhbGxiYWNrKG9iaiwgY2FsbGJhY2ssIGFyZzEs
IGFyZzIsIGFyZzMpCit7CisgICAgcmV0dXJuIGZ1bmN0aW9uKGFyZykgeworICAgICAgICBpZiAo
YXJnID09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG9iaiwgW2FyZzEs
IGFyZzIsIGFyZzNdKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbGJhY2suYXBwbHko
b2JqLCBbYXJnLCBhcmcxLCBhcmcyLCBhcmczXSk7CisgICAgfTsKK30KKwogLy8gVXNhZ2U6CiAv
LyAgIHZhciBoZWxwZXIgPSBuZXcgSm9pbkhlbHBlcjsKIC8vCkBAIC01NSwyMiArNjUsMTEgQEAg
ZnVuY3Rpb24gcmVtb3ZlUmVjdXJzaXZlbHkoZGlyZWN0b3J5LCBzdWNjZXNzQ2FsbGJhY2ssIGVy
cm9yQ2FsbGJhY2spIHsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfTsKIAot
ICAgICAgICB0aGlzLmJpbmQgPSBmdW5jdGlvbihjYWxsYmFjaywgYXJnMSwgYXJnMiwgYXJnMykK
LSAgICAgICAgewotICAgICAgICAgICAgdmFyIG9iaiA9IHRoaXM7Ci0gICAgICAgICAgICByZXR1
cm4gZnVuY3Rpb24oYXJnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGFyZyA9PSB1bmRlZmluZWQp
Ci0gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG9iaiwgW2FyZzEsIGFyZzIsIGFy
ZzNdKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNr
LmFwcGx5KG9iaiwgW2FyZywgYXJnMSwgYXJnMiwgYXJnM10pOwotICAgICAgICAgICAgfTsKLSAg
ICAgICAgfTsKLQogICAgICAgICB0aGlzLnJlbW92ZURpcmVjdG9yeSA9IGZ1bmN0aW9uKGRpcmVj
dG9yeSwgcGFyZW50RGlyZWN0b3J5KQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoZGlyZWN0
b3J5LmZ1bGxQYXRoICE9ICcvJykgewogICAgICAgICAgICAgICAgIC8vIE9rIHRvIHJlbW92ZSB0
aGUgcGFyZW50IGRpcmVjdG9yeS4KLSAgICAgICAgICAgICAgICBkaXJlY3RvcnkucmVtb3ZlKHRo
aXMuYmluZCh0aGlzLmVudHJ5UmVtb3ZlZENhbGxiYWNrLCBwYXJlbnREaXJlY3RvcnksIGRpcmVj
dG9yeSksIHRoaXMuYmluZCh0aGlzLkVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAgICAgICAgICBk
aXJlY3RvcnkucmVtb3ZlKGJpbmRDYWxsYmFjayh0aGlzLCB0aGlzLmVudHJ5UmVtb3ZlZENhbGxi
YWNrLCBwYXJlbnREaXJlY3RvcnksIGRpcmVjdG9yeSksIGJpbmRDYWxsYmFjayh0aGlzLCB0aGlz
LkVycm9yQ2FsbGJhY2spKTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLnJlbW92ZURpck1hcFtkaXJlY3RvcnkuZnVsbFBhdGhdOwogICAgICAgICAgICAg
aWYgKCF0aGlzLmhhc01vcmVFbnRyaWVzKHRoaXMucmVtb3ZlRGlyTWFwKSAmJiB0aGlzLnN1Y2Nl
c3NDYWxsYmFjaykKQEAgLTk3LDExICs5NiwxMSBAQCBmdW5jdGlvbiByZW1vdmVSZWN1cnNpdmVs
eShkaXJlY3RvcnksIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykgewogICAgICAgICAg
ICAgICAgICAgICB0aGlzLnJlbW92ZVJlY3Vyc2l2ZWx5SW50ZXJuYWwoZW50cmllc1tpXSwgZGly
ZWN0b3J5KTsKICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgdmFy
IGVudHJ5ID0gZW50cmllc1tpXTsKLSAgICAgICAgICAgICAgICAgICAgZW50cnkucmVtb3ZlKHRo
aXMuYmluZCh0aGlzLmVudHJ5UmVtb3ZlZENhbGxiYWNrLCBkaXJlY3RvcnksIGVudHJ5KSwgdGhp
cy5iaW5kKHRoaXMuZXJyb3JDYWxsYmFjaykpOworICAgICAgICAgICAgICAgICAgICBlbnRyeS5y
ZW1vdmUoYmluZENhbGxiYWNrKHRoaXMsIHRoaXMuZW50cnlSZW1vdmVkQ2FsbGJhY2ssIGRpcmVj
dG9yeSwgZW50cnkpLCBiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy5lcnJvckNhbGxiYWNrKSk7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGVudHJpZXMu
bGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVEaXJNYXBbZGlyZWN0b3J5LmZ1
bGxQYXRoXS5yZWFkZXIucmVhZEVudHJpZXModGhpcy5iaW5kKHRoaXMucmVtb3ZlUmVjdXJzaXZl
bHlDYWxsYmFjaywgZGlyZWN0b3J5KSwgdGhpcy5iaW5kKHRoaXMuZXJyb3JDYWxsYmFjaykpOwor
ICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRGlyTWFwW2RpcmVjdG9yeS5mdWxsUGF0aF0ucmVh
ZGVyLnJlYWRFbnRyaWVzKGJpbmRDYWxsYmFjayh0aGlzLCB0aGlzLnJlbW92ZVJlY3Vyc2l2ZWx5
Q2FsbGJhY2ssIGRpcmVjdG9yeSksIGJpbmRDYWxsYmFjayh0aGlzLCB0aGlzLmVycm9yQ2FsbGJh
Y2spKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgdmFyIGRpckluZm8g
PSB0aGlzLnJlbW92ZURpck1hcFtkaXJlY3RvcnkuZnVsbFBhdGhdOwogICAgICAgICAgICAgICAg
IGRpckluZm8uaGFzTW9yZSA9IGZhbHNlOwpAQCAtMTE5LDcgKzExOCw3IEBAIGZ1bmN0aW9uIHJl
bW92ZVJlY3Vyc2l2ZWx5KGRpcmVjdG9yeSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNr
KSB7CiAgICAgICAgICAgICAgICAgZW50cmllczogMCwKICAgICAgICAgICAgICAgICByZWFkZXI6
IGRpcmVjdG9yeVJlYWRlciwKICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBkaXJlY3RvcnlS
ZWFkZXIucmVhZEVudHJpZXModGhpcy5iaW5kKHRoaXMucmVtb3ZlUmVjdXJzaXZlbHlDYWxsYmFj
aywgZGlyZWN0b3J5KSwgdGhpcy5iaW5kKHRoaXMuZXJyb3JDYWxsYmFjaykpOworICAgICAgICAg
ICAgZGlyZWN0b3J5UmVhZGVyLnJlYWRFbnRyaWVzKGJpbmRDYWxsYmFjayh0aGlzLCB0aGlzLnJl
bW92ZVJlY3Vyc2l2ZWx5Q2FsbGJhY2ssIGRpcmVjdG9yeSksIGJpbmRDYWxsYmFjayh0aGlzLCB0
aGlzLmVycm9yQ2FsbGJhY2spKTsKICAgICAgICAgfTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLWNvcHkuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLWNvcHkuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Jm
MmE5NTY4NDJhYzgyZDE5OTViMTYyMDZmOTQ3MTk2ZmM5M2QzNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvb3AtY29weS5qcwpAQCAtMCww
ICsxLDE2NCBAQAordmFyIHRlc3RDYXNlcyA9IFsKKyAgICB7CisgICAgICAgIG5hbWU6ICdDb3B5
RmlsZVNpbXBsZScsCisgICAgICAgIHByZWNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQ
YXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9i
J30KKyAgICAgICAgXSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhl
bHBlcikgeyBoZWxwZXIuY29weSgnL2EvYicsICcvYScsICdjJyk7IH0KKyAgICAgICAgXSwKKyAg
ICAgICAgcG9zdGNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGly
ZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9iJ30sCisgICAgICAgICAg
ICB7ZnVsbFBhdGg6Jy9hL2MnfQorICAgICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgICBu
YW1lOiAnQ29weURpcmVjdG9yeVNpbXBsZScsCisgICAgICAgIHByZWNvbmRpdGlvbjogWworICAg
ICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAg
e2Z1bGxQYXRoOicvYS9iJywgaXNEaXJlY3Rvcnk6dHJ1ZX0KKyAgICAgICAgXSwKKyAgICAgICAg
dGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuY29weSgnL2Ev
YicsICcvYScsICdjJyk7IH0sCisgICAgICAgIF0sCisgICAgICAgIHBvc3Rjb25kaXRpb246IFsK
KyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAg
ICAgIHtmdWxsUGF0aDonL2EvYicsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1
bGxQYXRoOicvYS9jJywgaXNEaXJlY3Rvcnk6dHJ1ZX0KKyAgICAgICAgXSwKKyAgICB9LAorICAg
IHsKKyAgICAgICAgbmFtZTogJ0NvcHlGaWxlVG9EaWZmZXJlbnREaXJlY3RvcnknLAorICAgICAg
ICBwcmVjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVjdG9y
eTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EvYid9LAorICAgICAgICAgICAge2Z1
bGxQYXRoOicvYycsIGlzRGlyZWN0b3J5OnRydWV9CisgICAgICAgIF0sCisgICAgICAgIHRlc3Rz
OiBbCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmNvcHkoJy9hL2InLCAn
L2MnLCAnZCcpOyB9LAorICAgICAgICBdLAorICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAg
ICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7
ZnVsbFBhdGg6Jy9hL2InfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2MvZCd9CisgICAgICAg
IF0sCisgICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdDb3B5RmlsZVdpdGhFbXB0eU5hbWUn
LAorICAgICAgICBwcmVjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBp
c0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EvYid9LAorICAgICAg
ICAgICAge2Z1bGxQYXRoOicvYycsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICBdLAorICAg
ICAgICB0ZXN0czogWworICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5jb3B5
KCcvYS9iJywgJy9jJywgbnVsbCk7IH0sCisgICAgICAgIF0sCisgICAgICAgIHBvc3Rjb25kaXRp
b246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAg
ICAgICAgICAgIHtmdWxsUGF0aDonL2EvYid9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYy9i
J30KKyAgICAgICAgXSwKKyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ0NvcHlGaWxlV2l0
aEVtcHR5TmFtZVRvU2FtZURpcmVjdG9yeScsCisgICAgICAgIHByZWNvbmRpdGlvbjogWworICAg
ICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAg
e2Z1bGxQYXRoOicvYS9iJ30sCisgICAgICAgIF0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAg
ICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmNvcHkoJy9hL2InLCAnL2EnLCBudWxsLCBG
aWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAgICAgICAgXSwKKyAgICAg
ICAgcG9zdGNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0
b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9iJ30sCisgICAgICAgIF0sCisg
ICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdDb3B5RmlsZVdpdGhTYW1lTmFtZScsCisgICAg
ICAgIHByZWNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0
b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9iJ30sCisgICAgICAgIF0sCisg
ICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmNv
cHkoJy9hL2InLCAnL2EnLCAnYicsIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIp
OyB9LAorICAgICAgICBdLAorICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAgICAgICAgICB7
ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6
Jy9hL2InfSwKKyAgICAgICAgXSwKKyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ0NvcHlG
b3JOb25FeGlzdGVudEVudHJ5JywKKyAgICAgICAgcHJlY29uZGl0aW9uOiBbCisgICAgICAgICAg
ICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBh
dGg6Jy9hL2InfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2MnLCBpc0RpcmVjdG9yeTp0cnVl
fSwKKyAgICAgICAgXSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhl
bHBlcikgeyBoZWxwZXIucmVtb3ZlKCcvYS9iJyk7IH0sCisgICAgICAgICAgICBmdW5jdGlvbiho
ZWxwZXIpIHsgaGVscGVyLmNvcHkoJy9hL2InLCAnL2MnLCAnYicsIEZpbGVFcnJvci5OT1RfRk9V
TkRfRVJSKTsgfSwKKyAgICAgICAgXSwKKyAgICAgICAgcG9zdGNvbmRpdGlvbjogWworICAgICAg
ICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1
bGxQYXRoOicvYycsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICBdLAorICAgIH0sCisgICAg
eworICAgICAgICBuYW1lOiAnQ29weUVudHJ5VG9Ob25FeGlzdGVudERpcmVjdG9yeScsCisgICAg
ICAgIHByZWNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0
b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9iJ30sCisgICAgICAgICAgICB7
ZnVsbFBhdGg6Jy9jJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgIF0sCisgICAgICAgIHRl
c3RzOiBbCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLnJlbW92ZSgnL2Mn
KTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuY29weSgnL2EvYics
ICcvYycsICdiJywgRmlsZUVycm9yLk5PVF9GT1VORF9FUlIpOyB9LAorICAgICAgICBdLAorICAg
ICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJl
Y3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2InfSwKKyAgICAgICAgXSwK
KyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ0NvcHlFbnRyeVRvSXRzQ2hpbGQnLAorICAg
ICAgICBwcmVjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVj
dG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EvYicsIGlzRGlyZWN0b3J5OnRy
dWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9iL2MnLCBpc0RpcmVjdG9yeTp0cnVlfSwK
KyAgICAgICAgXSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBl
cikgeyBoZWxwZXIuY29weSgnL2EnLCAnL2EvYicsICdkJywgRmlsZUVycm9yLklOVkFMSURfTU9E
SUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVy
LmNvcHkoJy9hL2InLCAnL2EvYi9jJywgJ2QnLCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJ
T05fRVJSKTsgfSwKKyAgICAgICAgXSwKKyAgICAgICAgcG9zdGNvbmRpdGlvbjogWworICAgICAg
ICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1
bGxQYXRoOicvYS9iJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6
Jy9hL2IvYycsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICBdLAorICAgIH0sCisgICAgewor
ICAgICAgICBuYW1lOiAnQ29weVJlY3Vyc2l2ZScsCisgICAgICAgIHByZWNvbmRpdGlvbjogWwor
ICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAg
ICAge2Z1bGxQYXRoOicvYS9iJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVs
bFBhdGg6Jy9hL2IvYyd9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9iL2QnfSwKKyAgICAg
ICAgICAgIHtmdWxsUGF0aDonL2InLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgXSwKKyAg
ICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuY29w
eSgnL2EnLCAnL2InLCAnYScpOyB9LAorICAgICAgICBdLAorICAgICAgICBwb3N0Y29uZGl0aW9u
OiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAg
ICAgICAgICB7ZnVsbFBhdGg6Jy9hL2InLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAg
IHtmdWxsUGF0aDonL2EvYi9jJ30sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2IvZCd9LAor
ICAgICAgICAgICAge2Z1bGxQYXRoOicvYi9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAg
ICAgICB7ZnVsbFBhdGg6Jy9iL2EvYicsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAg
e2Z1bGxQYXRoOicvYi9hL2IvYyd9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYi9hL2IvZCd9
LAorICAgICAgICBdLAorICAgIH0sCitdOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL3Jlc291cmNlcy9vcC1nZXQtZW50cnkuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vcmVzb3VyY2VzL29wLWdldC1lbnRyeS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTUxYTM3YTE5
MTcxNDIzZTk1MzhiMTA3Y2IyODQxZDMwYThhN2FhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9vcC1nZXQtZW50cnkuanMKQEAgLTAsMCAr
MSwxMjQgQEAKK3ZhciB0ZXN0Q2FzZXMgPSBbCisgICAgeworICAgICAgICBuYW1lOiAnQ3JlYXRl
U2ltcGxlJywKKyAgICAgICAgcHJlY29uZGl0aW9uOiBbIF0sCisgICAgICAgIHRlc3RzOiBbCisg
ICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldERpcmVjdG9yeSgnLycsICdh
Jywge2NyZWF0ZTp0cnVlfSk7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVs
cGVyLmdldEZpbGUoJy8nLCAnYicsIHtjcmVhdGU6dHJ1ZX0pOyB9CisgICAgICAgIF0sCisgICAg
ICAgIHBvc3Rjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVj
dG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2InfSwKKyAgICAgICAgXSwKKyAg
ICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ0NyZWF0ZU5lc3RlZCcsCisgICAgICAgIHByZWNv
bmRpdGlvbjogWyBdLAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAgZnVuY3Rpb24oaGVs
cGVyKSB7IGhlbHBlci5nZXREaXJlY3RvcnkoJy8nLCAnYScsIHtjcmVhdGU6dHJ1ZX0pOyB9LAor
ICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXREaXJlY3RvcnkoJy9hJywg
J2InLCB7Y3JlYXRlOnRydWV9KTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBo
ZWxwZXIuZ2V0RGlyZWN0b3J5KCcvYS9iJywgJ2MnLCB7Y3JlYXRlOnRydWV9KTsgfSwKKyAgICAg
ICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RGlyZWN0b3J5KCcvYS9iL2MnLCAn
ZCcsIHtjcmVhdGU6dHJ1ZX0pOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhl
bHBlci5nZXRGaWxlKCcvYS9iL2MvZCcsICdlJywge2NyZWF0ZTp0cnVlfSk7IH0sCisgICAgICAg
IF0sCisgICAgICAgIHBvc3Rjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2Ev
Yi9jL2QvZSd9LAorICAgICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnQ3Jl
YXRlTmVzdGVkV2l0aEFic29sdXRlUGF0aCcsCisgICAgICAgIHByZWNvbmRpdGlvbjogWworICAg
ICAgICAgICAge2Z1bGxQYXRoOicvZHVtbXknLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAg
XSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxw
ZXIuZ2V0RGlyZWN0b3J5KCcvZHVtbXknLCAnL2EnLCB7Y3JlYXRlOnRydWV9KTsgfSwKKyAgICAg
ICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RGlyZWN0b3J5KCcvZHVtbXknLCAn
L2EvYicsIHtjcmVhdGU6dHJ1ZX0pOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7
IGhlbHBlci5nZXREaXJlY3RvcnkoJy9kdW1teScsICcvYS9iL2MnLCB7Y3JlYXRlOnRydWV9KTsg
fSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RGlyZWN0b3J5KCcv
ZHVtbXknLCAnL2EvYi9jL2QnLCB7Y3JlYXRlOnRydWV9KTsgfSwKKyAgICAgICAgICAgIGZ1bmN0
aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnL2R1bW15JywgJy9hL2IvYy9kL2UnLCB7Y3Jl
YXRlOnRydWV9KTsgfQorICAgICAgICBdLAorICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAg
ICAgICAgICB7ZnVsbFBhdGg6Jy9kdW1teScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAg
ICAge2Z1bGxQYXRoOicvYS9iL2MvZC9lJ30sCisgICAgICAgIF0sCisgICAgfSwKKyAgICB7Cisg
ICAgICAgIG5hbWU6ICdDcmVhdGVOZXN0ZWRXaXRoUmVsYXRpdmVQYXRoJywKKyAgICAgICAgcHJl
Y29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1
ZX0sCisgICAgICAgIF0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICAvLyBGSVhNRTog
Rm9yIG5vdyB0aGV5IHRocm93IGFuIGVycm9yIGJlY2F1c2UgdGhleSBmYWlsIHRoZSBjaGVjayBm
b3IgcmVzdHJpY3RlZC1uYW1lczogJ2EgcGF0aCBjb21wb25lbnQgc2hvdWxkIG5vdCBlbmQgd2l0
aCBwZXJpb2QnLgorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXREaXJl
Y3RvcnkoJy9hJywgJy4vYicsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVFcnJvci5JTlZBTElEX01PRElG
SUNBVElPTl9FUlIpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5n
ZXREaXJlY3RvcnkoJy9hJywgJy4uL2InLCB7Y3JlYXRlOnRydWV9LCBGaWxlRXJyb3IuSU5WQUxJ
RF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBo
ZWxwZXIuZ2V0RGlyZWN0b3J5KCcvYScsICcvYS8uLi8uLi9iJywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgIF0sCisgICAgICAg
IHBvc3Rjb25kaXRpb246IFsgXSwKKyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ0dldEV4
aXN0aW5nRW50cnknLAorICAgICAgICBwcmVjb25kaXRpb246IFsgXSwKKyAgICAgICAgdGVzdHM6
IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RGlyZWN0b3J5KCcv
JywgJ2EnLCB7Y3JlYXRlOnRydWV9KTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikg
eyBoZWxwZXIuZ2V0RmlsZSgnLycsICdiJywge2NyZWF0ZTp0cnVlfSk7IH0sCisgICAgICAgICAg
ICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldERpcmVjdG9yeSgnLycsICdhJyk7IH0sCisg
ICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYicpOyB9
CisgICAgICAgIF0sCisgICAgICAgIHBvc3Rjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxs
UGF0aDonL2EnLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2In
fSwKKyAgICAgICAgXSwKKyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ0dldE5vbkV4aXN0
ZW50JywKKyAgICAgICAgcHJlY29uZGl0aW9uOiBbIF0sCisgICAgICAgIHRlc3RzOiBbCisgICAg
ICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldERpcmVjdG9yeSgnLycsICdhJywg
e30sIEZpbGVFcnJvci5OT1RfRk9VTkRfRVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhl
bHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdiJywge30sIEZpbGVFcnJvci5OT1RfRk9VTkRf
RVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RGlyZWN0
b3J5KCcvJywgJy9ub25leGlzdGVudC9hJywge2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLk5PVF9G
T1VORF9FUlIpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXRG
aWxlKCcvJywgJy9ub25leGlzdGVudC9iJywge2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLk5PVF9G
T1VORF9FUlIpOyB9CisgICAgICAgIF0sCisgICAgICAgIHBvc3Rjb25kaXRpb246IFsgXSwKKyAg
ICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ0dldEZpbGVGb3JEaXJlY3RvcnknLAorICAgICAg
ICBwcmVjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVjdG9y
eTp0cnVlfQorICAgICAgICBdLAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAgZnVuY3Rp
b24oaGVscGVyKSB7IGhlbHBlci5nZXRGaWxlKCcvJywgJ2EnLCB7fSwgRmlsZUVycm9yLklOVkFM
SURfU1RBVEVfRVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIu
Z2V0RmlsZSgnLycsICcvYScsIHt9LCBGaWxlRXJyb3IuSU5WQUxJRF9TVEFURV9FUlIpOyB9LAor
ICAgICAgICBdLAorICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBh
dGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0KKyAgICAgICAgXSwKKyAgICB9LAorICAgIHsKKyAg
ICAgICAgbmFtZTogJ0dldERpcmVjdG9yeUZvckZpbGUnLAorICAgICAgICBwcmVjb25kaXRpb246
IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnfQorICAgICAgICBdLAorICAgICAgICB0ZXN0
czogWworICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXREaXJlY3Rvcnko
Jy8nLCAnYScsIHt9LCBGaWxlRXJyb3IuSU5WQUxJRF9TVEFURV9FUlIpOyB9LAorICAgICAgICAg
ICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXREaXJlY3RvcnkoJy8nLCAnL2EnLCB7fSwg
RmlsZUVycm9yLklOVkFMSURfU1RBVEVfRVJSKTsgfSwKKyAgICAgICAgXSwKKyAgICAgICAgcG9z
dGNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYSd9CisgICAgICAgIF0sCisg
ICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdDcmVhdGVXaXRoRXhjbHVzaXZlJywKKyAgICAg
ICAgcHJlY29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rv
cnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9iJ30KKyAgICAgICAgXSwKKyAgICAg
ICAgdGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RGly
ZWN0b3J5KCcvJywgJ2EnLCB7Y3JlYXRlOnRydWUsIGV4Y2x1c2l2ZTp0cnVlfSwgRmlsZUVycm9y
LklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxw
ZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYicsIHtjcmVhdGU6dHJ1ZSwgZXhjbHVzaXZlOnRy
dWV9LCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfQorICAgICAgICBdLAor
ICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNE
aXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9iJ30KKyAgICAgICAgXSwK
KyAgICB9LAorXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNv
dXJjZXMvb3AtZ2V0LXBhcmVudC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNv
dXJjZXMvb3AtZ2V0LXBhcmVudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZGU5NTNjYzFhMmY3ZjNjOGJiZDU1
NDUwNmUzMjg5YmNjMTA3ODI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL3Jlc291cmNlcy9vcC1nZXQtcGFyZW50LmpzCkBAIC0wLDAgKzEsMjEgQEAKK3Zh
ciB0ZXN0Q2FzZXMgPSBbCisgICAgeworICAgICAgICBuYW1lOiAnR2V0UGFyZW50JywKKyAgICAg
ICAgcHJlY29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rv
cnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2InLCBpc0RpcmVjdG9yeTp0cnVl
fSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EvYi9jJ30sCisgICAgICAgIF0sCisgICAgICAg
IHRlc3RzOiBbCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldFBhcmVu
dCgnLycpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXRQYXJl
bnQoJy9hJyk7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldFBh
cmVudCgnL2EvYicpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5n
ZXRQYXJlbnQoJy9hL2IvYycpOyB9CisgICAgICAgIF0sCisgICAgICAgIHBvc3Rjb25kaXRpb246
IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAg
ICAgICAgIHtmdWxsUGF0aDonL2EvYicsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAg
e2Z1bGxQYXRoOicvYS9iL2MnfSwKKyAgICAgICAgXSwKKyAgICB9LAorXTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvb3AtbW92ZS5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvb3AtbW92ZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
ZTRmYTIzZjY2ZmIwYTU1NTcwNzhjODI1NmU2NWU1M2UzZDk4YjEyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9vcC1tb3ZlLmpzCkBAIC0w
LDAgKzEsMTYxIEBACit2YXIgdGVzdENhc2VzID0gWworICAgIHsKKyAgICAgICAgbmFtZTogJ01v
dmVGaWxlU2ltcGxlJywKKyAgICAgICAgcHJlY29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVs
bFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9h
L2InfQorICAgICAgICBdLAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAgZnVuY3Rpb24o
aGVscGVyKSB7IGhlbHBlci5tb3ZlKCcvYS9iJywgJy9hJywgJ2MnKTsgfQorICAgICAgICBdLAor
ICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNE
aXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2InLCBub25leGlzdGVu
dDp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EvYyd9CisgICAgICAgIF0sCisgICAg
fSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdNb3ZlRGlyZWN0b3J5U2ltcGxlJywKKyAgICAgICAg
cHJlY29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6
dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2InLCBpc0RpcmVjdG9yeTp0cnVlfQor
ICAgICAgICBdLAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVy
KSB7IGhlbHBlci5tb3ZlKCcvYS9iJywgJy9hJywgJ2MnKTsgfSwKKyAgICAgICAgXSwKKyAgICAg
ICAgcG9zdGNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0
b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9iJywgbm9uZXhpc3RlbnQ6dHJ1
ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2MnLCBpc0RpcmVjdG9yeTp0cnVlfQorICAg
ICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnTW92ZUZpbGVUb0RpZmZlcmVu
dERpcmVjdG9yeScsCisgICAgICAgIHByZWNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQ
YXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9i
J30sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9jJywgaXNEaXJlY3Rvcnk6dHJ1ZX0KKyAgICAg
ICAgXSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBo
ZWxwZXIubW92ZSgnL2EvYicsICcvYycsICdkJyk7IH0sCisgICAgICAgIF0sCisgICAgICAgIHBv
c3Rjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVjdG9yeTp0
cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EvYicsIG5vbmV4aXN0ZW50OnRydWV9LAor
ICAgICAgICAgICAge2Z1bGxQYXRoOicvYy9kJ30KKyAgICAgICAgXSwKKyAgICB9LAorICAgIHsK
KyAgICAgICAgbmFtZTogJ01vdmVGaWxlV2l0aEVtcHR5TmFtZScsCisgICAgICAgIHByZWNvbmRp
dGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAor
ICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9iJ30sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9j
JywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgIF0sCisgICAgICAgIHRlc3RzOiBbCisgICAg
ICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLm1vdmUoJy9hL2InLCAnL2MnLCBudWxs
KTsgfSwKKyAgICAgICAgXSwKKyAgICAgICAgcG9zdGNvbmRpdGlvbjogWworICAgICAgICAgICAg
e2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRo
OicvYS9iJywgbm9uZXhpc3RlbnQ6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9jL2In
fQorICAgICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnTW92ZUZpbGVXaXRo
RW1wdHlOYW1lVG9TYW1lRGlyZWN0b3J5JywKKyAgICAgICAgcHJlY29uZGl0aW9uOiBbCisgICAg
ICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7
ZnVsbFBhdGg6Jy9hL2InfSwKKyAgICAgICAgXSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAg
ICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIubW92ZSgnL2EvYicsICcvYScsIG51bGwsIEZp
bGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIpOyB9LAorICAgICAgICBdLAorICAgICAg
ICBwb3N0Y29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rv
cnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2InfSwKKyAgICAgICAgXSwKKyAg
ICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ01vdmVGaWxlV2l0aFNhbWVOYW1lJywKKyAgICAg
ICAgcHJlY29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rv
cnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2InfSwKKyAgICAgICAgXSwKKyAg
ICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIubW92
ZSgnL2EvYicsICcvYScsICdiJywgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7
IH0sCisgICAgICAgIF0sCisgICAgICAgIHBvc3Rjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtm
dWxsUGF0aDonL2EnLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDon
L2EvYid9LAorICAgICAgICBdLAorICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnTW92ZUZv
ck5vbkV4aXN0ZW50RW50cnknLAorICAgICAgICBwcmVjb25kaXRpb246IFsKKyAgICAgICAgICAg
IHtmdWxsUGF0aDonL2EnLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0
aDonL2EvYid9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYycsIGlzRGlyZWN0b3J5OnRydWV9
LAorICAgICAgICBdLAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAgZnVuY3Rpb24oaGVs
cGVyKSB7IGhlbHBlci5yZW1vdmUoJy9hL2InKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhl
bHBlcikgeyBoZWxwZXIubW92ZSgnL2EvYicsICcvYycsICdiJywgRmlsZUVycm9yLk5PVF9GT1VO
RF9FUlIpOyB9LAorICAgICAgICBdLAorICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAgICAg
ICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVs
bFBhdGg6Jy9jJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgIF0sCisgICAgfSwKKyAgICB7
CisgICAgICAgIG5hbWU6ICdNb3ZlRW50cnlUb05vbkV4aXN0ZW50RGlyZWN0b3J5JywKKyAgICAg
ICAgcHJlY29uZGl0aW9uOiBbCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rv
cnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2InfSwKKyAgICAgICAgICAgIHtm
dWxsUGF0aDonL2MnLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgXSwKKyAgICAgICAgdGVz
dHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIucmVtb3ZlKCcvYycp
OyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5tb3ZlKCcvYS9iJywg
Jy9jJywgJ2InLCBGaWxlRXJyb3IuTk9UX0ZPVU5EX0VSUik7IH0sCisgICAgICAgIF0sCisgICAg
ICAgIHBvc3Rjb25kaXRpb246IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVj
dG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EvYid9LAorICAgICAgICBdLAor
ICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnTW92ZUVudHJ5VG9JdHNDaGlsZCcsCisgICAg
ICAgIHByZWNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0
b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYS9iJywgaXNEaXJlY3Rvcnk6dHJ1
ZX0sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2IvYycsIGlzRGlyZWN0b3J5OnRydWV9LAor
ICAgICAgICBdLAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVy
KSB7IGhlbHBlci5tb3ZlKCcvYScsICcvYS9iJywgJ2QnLCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJ
RklDQVRJT05fRVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIu
bW92ZSgnL2EvYicsICcvYS9iL2MnLCAnZCcsIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElP
Tl9FUlIpOyB9LAorICAgICAgICBdLAorICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisgICAgICAg
ICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAgICB7ZnVs
bFBhdGg6Jy9hL2InLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDon
L2EvYi9jJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgIF0sCisgICAgfSwKKyAgICB7Cisg
ICAgICAgIG5hbWU6ICdNb3ZlUmVjdXJzaXZlJywKKyAgICAgICAgcHJlY29uZGl0aW9uOiBbCisg
ICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAg
ICB7ZnVsbFBhdGg6Jy9hL2InLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxs
UGF0aDonL2EvYi9jJ30sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2IvZCd9LAorICAgICAg
ICAgICAge2Z1bGxQYXRoOicvYicsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICBdLAorICAg
ICAgICB0ZXN0czogWworICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5tb3Zl
KCcvYScsICcvYicsICdhJyk7IH0sCisgICAgICAgIF0sCisgICAgICAgIHBvc3Rjb25kaXRpb246
IFsKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2EnLCBub25leGlzdGVudDp0cnVlfSwKKyAgICAg
ICAgICAgIHtmdWxsUGF0aDonL2IvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAg
e2Z1bGxQYXRoOicvYi9hL2InLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxs
UGF0aDonL2IvYS9iL2MnfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2IvYS9iL2QnfSwKKyAg
ICAgICAgXSwKKyAgICB9LAorXTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9yZXNvdXJjZXMvb3AtcmVhZC1kaXJlY3RvcnkuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zp
bGVzeXN0ZW0vcmVzb3VyY2VzL29wLXJlYWQtZGlyZWN0b3J5LmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlZjJh
NDg3MTYwNGE1NDYyNDdmYzZkZmI2YmM0ZDRjZGIyZTQ5NzkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLXJlYWQtZGlyZWN0b3J5Lmpz
CkBAIC0wLDAgKzEsMjMgQEAKK3ZhciB0ZXN0Q2FzZXMgPSBbCisgICAgeworICAgICAgICBuYW1l
OiAnUmVhZERpcmVjdG9yeScsCisgICAgICAgIHByZWNvbmRpdGlvbjogWworICAgICAgICAgICAg
e2Z1bGxQYXRoOicvYScsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRo
OicvYicsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYycsIH0s
CisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9kJywgfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDon
L2UnLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxsUGF0aDonL2YnLCB9LAor
ICAgICAgICAgICAge2Z1bGxQYXRoOicvZycsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAg
ICAge2Z1bGxQYXRoOicvYS9iJ30sCisgICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hL2MnfSwKKyAg
ICAgICAgXSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikg
eyBoZWxwZXIucmVhZERpcmVjdG9yeSgnLycpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVs
cGVyKSB7IGhlbHBlci5yZW1vdmUoJy9jJyk7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxw
ZXIpIHsgaGVscGVyLnJlbW92ZSgnL2UnKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBl
cikgeyBoZWxwZXIucmVtb3ZlKCcvZicpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVy
KSB7IGhlbHBlci5yZWFkRGlyZWN0b3J5KCcvJyk7IH0KKyAgICAgICAgXSwKKyAgICB9LAorXTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvb3AtcmVt
b3ZlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9vcC1yZW1vdmUu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTE5YWM4MjAzMzM4MjMwNGJmOTc3YzdiNzBkOTAzOTllYzU3ZjQyYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMv
b3AtcmVtb3ZlLmpzCkBAIC0wLDAgKzEsMzQgQEAKK3ZhciB0ZXN0Q2FzZXMgPSBbCisgICAgewor
ICAgICAgICBuYW1lOiAnUmVtb3ZlU2ltcGxlJywKKyAgICAgICAgcHJlY29uZGl0aW9uOiBbCisg
ICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAg
ICB7ZnVsbFBhdGg6Jy9iJ30KKyAgICAgICAgXSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAg
ICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIucmVtb3ZlKCcvYScpOyB9LAorICAgICAgICAg
ICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5yZW1vdmUoJy9iJyk7IH0KKyAgICAgICAgXSwK
KyAgICAgICAgcG9zdGNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIG5v
bmV4aXN0ZW50OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRoOicvYicsIG5vbmV4aXN0ZW50
OnRydWV9CisgICAgICAgIF0sCisgICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdSZW1vdmVO
b25SZWN1cnNpdmVXaXRoQ2hpbGRyZW4nLAorICAgICAgICBwcmVjb25kaXRpb246IFsKKyAgICAg
ICAgICAgIHtmdWxsUGF0aDonL2EnLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtm
dWxsUGF0aDonL2EvYicsIGlzRGlyZWN0b3J5OnRydWV9LAorICAgICAgICAgICAge2Z1bGxQYXRo
OicvYS9jJyx9CisgICAgICAgIF0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICBmdW5j
dGlvbihoZWxwZXIpIHsgaGVscGVyLnJlbW92ZSgnL2EnLCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJ
RklDQVRJT05fRVJSKTsgfQorICAgICAgICBdLAorICAgICAgICBwb3N0Y29uZGl0aW9uOiBbCisg
ICAgICAgICAgICB7ZnVsbFBhdGg6Jy9hJywgaXNEaXJlY3Rvcnk6dHJ1ZX0sCisgICAgICAgICAg
ICB7ZnVsbFBhdGg6Jy9hL2InLCBpc0RpcmVjdG9yeTp0cnVlfSwKKyAgICAgICAgICAgIHtmdWxs
UGF0aDonL2EvYycsfQorICAgICAgICBdLAorICAgIH0sCitdOworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLXJlc3RyaWN0ZWQtY2hhcnMuanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLXJlc3RyaWN0ZWQtY2hh
cnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWE5MDk1ZWIwODQ5ZmNkMzkxN2JjNmQxOWEwNGJlYmJjYjhhOWU1
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJj
ZXMvb3AtcmVzdHJpY3RlZC1jaGFycy5qcwpAQCAtMCwwICsxLDUxIEBACit2YXIgdGVzdENhc2Vz
ID0gWworICAgIHsKKyAgICAgICAgbmFtZTogJ1Jlc3RyaWN0ZWRDaGFycycsCisgICAgICAgIHBy
ZWNvbmRpdGlvbjogWyBdLAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAgLy8gUmVzdHJp
Y3RlZCBjaGFyYWN0ZXIgaW4gJ3BhdGgnIHBhcmFtZXRlci4KKyAgICAgICAgICAgIGZ1bmN0aW9u
KGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdhXFxiJywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlv
bihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYTxiJywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlv
bihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYT5iJywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlv
bihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYTpiJywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlv
bihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYT9iJywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlv
bihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYSpiJywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlv
bihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYSJiJywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlv
bihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYXxiJywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisKKyAgICAgICAgICAgIGZ1bmN0
aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdcXGFiJywge2NyZWF0ZTp0cnVlfSwg
RmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5j
dGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnPGFiJywge2NyZWF0ZTp0cnVlfSwg
RmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5j
dGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnOmFiJywge2NyZWF0ZTp0cnVlfSwg
RmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5j
dGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnP2FiJywge2NyZWF0ZTp0cnVlfSwg
RmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5j
dGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnKmFiJywge2NyZWF0ZTp0cnVlfSwg
RmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5j
dGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnImFiJywge2NyZWF0ZTp0cnVlfSwg
RmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5j
dGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnfGFiJywge2NyZWF0ZTp0cnVlfSwg
RmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisKKyAgICAgICAgICAgIGZ1
bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdhYlxcJywge2NyZWF0ZTp0cnVl
fSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBm
dW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYWI8Jywge2NyZWF0ZTp0cnVl
fSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBm
dW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYWI6Jywge2NyZWF0ZTp0cnVl
fSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBm
dW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYWI/Jywge2NyZWF0ZTp0cnVl
fSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBm
dW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYWIqJywge2NyZWF0ZTp0cnVl
fSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBm
dW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYWIiJywge2NyZWF0ZTp0cnVl
fSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBm
dW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYWJ8Jywge2NyZWF0ZTp0cnVl
fSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisKKyAgICAgICAgICAg
IC8vIFRoaXMgc2hvdWxkIHN1Y2NlZWQuCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsg
aGVscGVyLmdldEZpbGUoJy8nLCAnYWInLCB7Y3JlYXRlOnRydWV9KTsgfSwKKworICAgICAgICAg
ICAgLy8gUmVzdHJpY3RlZCBjaGFyYWN0ZXIgaW4gJ25hbWUnIHBhcmFtZXRlcnMuCisgICAgICAg
ICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmNvcHkoJy9hYicsICcvJywgJ2FcXGInLEZp
bGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIpOyB9LAorICAgICAgICAgICAgZnVuY3Rp
b24oaGVscGVyKSB7IGhlbHBlci5jb3B5KCcvYWInLCAnLycsICdhPGInLCBGaWxlRXJyb3IuSU5W
QUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikg
eyBoZWxwZXIuY29weSgnL2FiJywgJy8nLCAnYTpiJywgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJ
Q0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmNv
cHkoJy9hYicsICcvJywgJ2E/YicsIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIp
OyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5jb3B5KCcvYWInLCAn
LycsICdhKmInLCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAgICAg
ICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuY29weSgnL2FiJywgJy8nLCAnYSJiJywg
RmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5j
dGlvbihoZWxwZXIpIHsgaGVscGVyLmNvcHkoJy9hYicsICcvJywgJ2F8YicsIEZpbGVFcnJvci5J
TlZBTElEX01PRElGSUNBVElPTl9FUlIpOyB9LAorCisgICAgICAgICAgICAvLyAnTmFtZScgcGFy
YW1ldGVyIGNhbm5vdCBjb250YWluICcvJy4KKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikg
eyBoZWxwZXIuY29weSgnL2FiJywgJy8nLCAnYS9iJywgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJ
Q0FUSU9OX0VSUik7IH0sCisgICAgICAgIF0sCisgICAgICAgIHBvc3Rjb25kaXRpb246IFsKKyAg
ICAgICAgICAgIHtmdWxsUGF0aDonL2FiJ30sCisgICAgICAgIF0sCisgICAgfSwKK107CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLXJlc3RyaWN0
ZWQtbmFtZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLXJl
c3RyaWN0ZWQtbmFtZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE3YTFhMTRhNGQ5OWMxYTBhNGJmODk2MGVi
MDIyZjM4YmZlMjI5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5
c3RlbS9yZXNvdXJjZXMvb3AtcmVzdHJpY3RlZC1uYW1lcy5qcwpAQCAtMCwwICsxLDU5IEBACit2
YXIgdGVzdENhc2VzID0gWworICAgIHsKKyAgICAgICAgbmFtZTogJ1Jlc3RyaWN0ZWRDaGFycycs
CisgICAgICAgIHByZWNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicvYScsIGlz
RGlyZWN0b3J5OnRydWV9CisgICAgICAgIF0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAg
ICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnY29uJywge2NyZWF0ZTp0
cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAg
ICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnQ09OJywge2NyZWF0ZTp0
cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAg
ICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnQ29uJywge2NyZWF0ZTp0
cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAg
ICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnY09uLnR4dCcsIHtjcmVh
dGU6dHJ1ZX0sIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIpOyB9LAorICAgICAg
ICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXRGaWxlKCcvJywgJ2EvY29OJywge2Ny
ZWF0ZTp0cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdwcm4nLCB7
Y3JlYXRlOnRydWV9LCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAg
ICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdQUk4nLCB7
Y3JlYXRlOnRydWV9LCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAg
ICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdQcm4nLCB7
Y3JlYXRlOnRydWV9LCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAg
ICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdwUm4udHh0
Jywge2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0s
CisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnYS9w
ck4nLCB7Y3JlYXRlOnRydWV9LCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsg
fSwKKworICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXRGaWxlKCcvJywg
J2F1eCcsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIp
OyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXRGaWxlKCcvJywg
J0FVWCcsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIp
OyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXRGaWxlKCcvJywg
J0F1eCcsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIp
OyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5nZXRGaWxlKCcvJywg
J2FVeC50eHQnLCB7Y3JlYXRlOnRydWV9LCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05f
RVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgn
LycsICdhL2F1WCcsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElP
Tl9FUlIpOyB9LAorCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZp
bGUoJy8nLCAnbnVsJywge2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FU
SU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZp
bGUoJy8nLCAnTlVMJywge2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FU
SU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZp
bGUoJy8nLCAnTnVsJywge2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FU
SU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZp
bGUoJy8nLCAnblVsLnR4dCcsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVFcnJvci5JTlZBTElEX01PRElG
SUNBVElPTl9FUlIpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5n
ZXRGaWxlKCcvJywgJ2EvbnVMJywge2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9E
SUZJQ0FUSU9OX0VSUik7IH0sCisKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxw
ZXIuZ2V0RmlsZSgnLycsICdjb20xJywge2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLklOVkFMSURf
TU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVs
cGVyLmdldEZpbGUoJy8nLCAnQ09NMicsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVFcnJvci5JTlZBTElE
X01PRElGSUNBVElPTl9FUlIpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhl
bHBlci5nZXRGaWxlKCcvJywgJ0NvbTQnLCB7Y3JlYXRlOnRydWV9LCBGaWxlRXJyb3IuSU5WQUxJ
RF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBo
ZWxwZXIuZ2V0RmlsZSgnLycsICdjT003LmZvbycsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVFcnJvci5J
TlZBTElEX01PRElGSUNBVElPTl9FUlIpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVy
KSB7IGhlbHBlci5nZXRGaWxlKCcvJywgJ2IvY29NOScsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVFcnJv
ci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIpOyB9LAorCisgICAgICAgICAgICBmdW5jdGlvbiho
ZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnbHB0MScsIHtjcmVhdGU6dHJ1ZX0sIEZpbGVF
cnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24o
aGVscGVyKSB7IGhlbHBlci5nZXRGaWxlKCcvJywgJ0xQVDInLCB7Y3JlYXRlOnRydWV9LCBGaWxl
RXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9u
KGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdMcHQ0Jywge2NyZWF0ZTp0cnVlfSwgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlv
bihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnbFBUNy5mb28nLCB7Y3JlYXRlOnRydWV9
LCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAgICAgICAgICAgIGZ1
bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdiL2xwVDknLCB7Y3JlYXRlOnRy
dWV9LCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKworICAgICAgICAg
ICAgLy8gTmFtZXMgc2hvdWxkIG5vdCBlbmQgd2l0aCBwZXJpb2Qgb3Igd2hpdGVzcGFjZS4KKyAg
ICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdmb28gJywg
e2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisg
ICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmdldEZpbGUoJy8nLCAnZm9vXG4n
LCB7Y3JlYXRlOnRydWV9LCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwK
KyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIuZ2V0RmlsZSgnLycsICdmb28u
Jywge2NyZWF0ZTp0cnVlfSwgRmlsZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0s
CisgICAgICAgICAgICBmdW5jdGlvbihoZWxwZXIpIHsgaGVscGVyLmNvcHkoJy9hJywgJy8nLCAn
Zm9vICcsIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIpOyB9LAorICAgICAgICAg
ICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5jb3B5KCcvYScsICcvJywgJ2Zvb1x0JywgRmls
ZUVycm9yLklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUik7IH0sCisgICAgICAgICAgICBmdW5jdGlv
bihoZWxwZXIpIHsgaGVscGVyLmNvcHkoJy9hJywgJy8nLCAnZm9vLicsIEZpbGVFcnJvci5JTlZB
TElEX01PRElGSUNBVElPTl9FUlIpOyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7
IGhlbHBlci5tb3ZlKCcvYScsICcvJywgJ2ZvbyAnLCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklD
QVRJT05fRVJSKTsgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGhlbHBlcikgeyBoZWxwZXIubW92
ZSgnL2EnLCAnLycsICdmb29cdCcsIEZpbGVFcnJvci5JTlZBTElEX01PRElGSUNBVElPTl9FUlIp
OyB9LAorICAgICAgICAgICAgZnVuY3Rpb24oaGVscGVyKSB7IGhlbHBlci5tb3ZlKCcvYScsICcv
JywgJ2Zvby4nLCBGaWxlRXJyb3IuSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSKTsgfSwKKyAgICAg
ICAgXSwKKyAgICAgICAgcG9zdGNvbmRpdGlvbjogWworICAgICAgICAgICAge2Z1bGxQYXRoOicv
YScsIGlzRGlyZWN0b3J5OnRydWV9CisgICAgICAgIF0sCisgICAgfSwKK107CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2VzL29wLXRlc3RzLWhlbHBlci5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvb3AtdGVzdHMtaGVscGVy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjYxOTc2N2RkMjY1NGI0MGIwNTQ1N2NiZWY1MzBiNGI0Yjk4ZWQ2ZjgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vcmVzb3VyY2Vz
L29wLXRlc3RzLWhlbHBlci5qcwpAQCAtMCwwICsxLDM2NiBAQAorLy8gSGVscGVyIHJvdXRpbmUu
CitmdW5jdGlvbiB0b1N0cmluZyhvYmopIHsKKyAgICBpZiAob2JqID09IHVuZGVmaW5lZCkgewor
ICAgICAgICByZXR1cm4gInVuZGVmaW5lZCI7CisgICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqID09
ICdvYmplY3QnKSB7CisgICAgICAgIGlmIChvYmoubGVuZ3RoICE9IHVuZGVmaW5lZCkgeworICAg
ICAgICAgICAgdmFyIHN0cmluZ0FycmF5ID0gW107CisgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IG9iai5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICBzdHJpbmdBcnJheS5wdXNo
KHRvU3RyaW5nKG9ialtpXSkpOworICAgICAgICAgICAgc3RyaW5nQXJyYXkuc29ydCgpOworICAg
ICAgICAgICAgcmV0dXJuICdbJyArIHN0cmluZ0FycmF5LmpvaW4oJyxcbiAnKSArICddJzsKKyAg
ICAgICAgfSBlbHNlIGlmIChvYmouaXNEaXJlY3RvcnkgfHwgb2JqLmlzRmlsZSkgeworICAgICAg
ICAgICAgcmV0dXJuICdFTlRSWSB7cGF0aDonICsgb2JqLmZ1bGxQYXRoICsgJyBuYW1lOicgKyBv
YmoubmFtZSArIChvYmouaXNEaXJlY3RvcnkgPyAnIHR5cGU6RElSRUNUT1JZJyA6ICcgdHlwZTpG
SUxFJykgKyAnfSc7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gb2JqOwor
ICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIHJldHVybiBvYmo7Cit9CisKKy8vIENyZWF0
ZXMgYSB0ZXN0IGVudmlyb25tZW50IGZvciB0aGUgZ2l2ZW4gZW50cmllcyB3aGVyZSBlbnRyaWVz
IGlzIGFuIGFycmF5IG9mIHtmdWxsUGF0aDpTdHJpbmcsIGlzRGlyZWN0b3J5OmJvb2xlYW59IG9i
amVjdC4KKy8vIFdoZW4gdGhlIHdvcmxkIGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LCBzdWNjZXNz
Q2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggYW4gb2JqZWN0IHRoYXQgaG9sZHMgYWxsIHRoZSBjcmVh
dGVkIGVudHJ5IG9iamVjdHMuCitmdW5jdGlvbiBjcmVhdGVUZXN0RW52aXJvbm1lbnQoZmlsZVN5
c3RlbSwgZW50cmllcywgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKQoreworICAgIHZh
ciBIZWxwZXIgPSBmdW5jdGlvbihmaWxlU3lzdGVtLCBlbnRyaWVzLCBzdWNjZXNzQ2FsbGJhY2ss
IGVycm9yQ2FsbGJhY2spCisgICAgeworICAgICAgICB0aGlzLmZpbGVTeXN0ZW0gPSBmaWxlU3lz
dGVtOworICAgICAgICB0aGlzLmVudHJpZXMgPSBlbnRyaWVzOworICAgICAgICB0aGlzLmN1cnJl
bnQgPSAwOworICAgICAgICB0aGlzLnN1Y2Nlc3NDYWxsYmFjayA9IHN1Y2Nlc3NDYWxsYmFjazsK
KyAgICAgICAgdGhpcy5lcnJvckNhbGxiYWNrID0gZXJyb3JDYWxsYmFjazsKKyAgICAgICAgdGhp
cy5lbnZpcm9ubWVudCA9IHt9OworCisgICAgICAgIHRoaXMuY3JlYXRlU3VjY2Vzc0NhbGxiYWNr
ID0gZnVuY3Rpb24oZW50cnkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuZW52aXJvbm1l
bnRbZW50cnkuZnVsbFBhdGhdID0gZW50cnk7CisgICAgICAgICAgICB0aGlzLmNyZWF0ZU5leHRF
bnRyeSgpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5jcmVhdGVFcnJvckNhbGxiYWNrID0g
ZnVuY3Rpb24oZXJyb3IsIGVudHJ5KQorICAgICAgICB7CisgICAgICAgICAgICB0ZXN0RmFpbGVk
KCdHb3QgdW5leHBlY3RlZCBlcnJvciAnICsgZXJyb3IuY29kZSArICcgd2hpbGUgY3JlYXRpbmcg
JyArIHRvU3RyaW5nKGVudHJ5KSk7CisgICAgICAgICAgICB0aGlzLmVycm9yQ2FsbGJhY2soZXJy
b3IpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5jcmVhdGVOZXh0RW50cnkgPSBmdW5jdGlv
bigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnQgPj0gdGhpcy5lbnRy
aWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzc0NhbGxiYWNrKHRoaXMu
ZW52aXJvbm1lbnQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuZW50cmllc1t0aGlzLmN1cnJlbnQrK107CisgICAg
ICAgICAgICBpZiAoZW50cnkuaXNEaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgZmlsZVN5c3Rl
bS5yb290LmdldERpcmVjdG9yeShlbnRyeS5mdWxsUGF0aCwge2NyZWF0ZTp0cnVlfSwgYmluZENh
bGxiYWNrKHRoaXMsIHRoaXMuY3JlYXRlU3VjY2Vzc0NhbGxiYWNrKSwgYmluZENhbGxiYWNrKHRo
aXMsIHRoaXMuY3JlYXRlRXJyb3JDYWxsYmFjaykpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGZpbGVTeXN0ZW0ucm9vdC5nZXRGaWxlKGVudHJ5LmZ1bGxQYXRoLCB7Y3JlYXRl
OnRydWV9LCBiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy5jcmVhdGVTdWNjZXNzQ2FsbGJhY2spLCBi
aW5kQ2FsbGJhY2sodGhpcywgdGhpcy5jcmVhdGVFcnJvckNhbGxiYWNrKSk7CisgICAgICAgIH07
CisgICAgfTsKKworICAgIGlmICghZW50cmllcyB8fCAhZW50cmllcy5sZW5ndGgpIHsKKyAgICAg
ICAgc3VjY2Vzc0NhbGxiYWNrKHt9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB2YXIg
aGVscGVyID0gbmV3IEhlbHBlcihmaWxlU3lzdGVtLCBlbnRyaWVzLCBzdWNjZXNzQ2FsbGJhY2ss
IGVycm9yQ2FsbGJhY2spOworICAgIGhlbHBlci5jcmVhdGVOZXh0RW50cnkoKTsKK30KKworZnVu
Y3Rpb24gdmVyaWZ5VGVzdEVudmlyb25tZW50KGZpbGVTeXN0ZW0sIGVudHJpZXMsIHN1Y2Nlc3ND
YWxsYmFjaywgZXJyb3JDYWxsYmFjaykKK3sKKyAgICB2YXIgSGVscGVyID0gZnVuY3Rpb24oZmls
ZVN5c3RlbSwgZW50cmllcywgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrKQorICAgIHsK
KyAgICAgICAgdGhpcy5maWxlU3lzdGVtID0gZmlsZVN5c3RlbTsKKyAgICAgICAgdGhpcy5lbnRy
aWVzID0gZW50cmllczsKKyAgICAgICAgdGhpcy5jdXJyZW50ID0gMDsKKyAgICAgICAgdGhpcy5z
dWNjZXNzQ2FsbGJhY2sgPSBzdWNjZXNzQ2FsbGJhY2s7CisgICAgICAgIHRoaXMuZXJyb3JDYWxs
YmFjayA9IGVycm9yQ2FsbGJhY2s7CisgICAgICAgIHRoaXMuZXhwZWN0ZWROb25leGlzdGVudCA9
IGZhbHNlOworCisgICAgICAgIHRoaXMudmVyaWZ5U3VjY2Vzc0NhbGxiYWNrID0gZnVuY3Rpb24o
ZW50cnkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmV4cGVjdGVkTm9uZXhpc3Rl
bnQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdGb3VuZCB1bmV4cGVjdGVkIGVudHJ5
ICcgKyBlbnRyeS5mdWxsUGF0aCk7CisgICAgICAgICAgICAgICAgdGhpcy5lcnJvckNhbGxiYWNr
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
dGVzdFBhc3NlZCgnVmVyaWZpZWQgZW50cnk6ICcgKyB0b1N0cmluZyhlbnRyeSkpOworICAgICAg
ICAgICAgdGhpcy52ZXJpZnlOZXh0RW50cnkoKTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMu
dmVyaWZ5RXJyb3JDYWxsYmFjayA9IGZ1bmN0aW9uKGVycm9yLCBlbnRyeSkKKyAgICAgICAgewor
ICAgICAgICAgICAgaWYgKHRoaXMuZXhwZWN0ZWROb25leGlzdGVudCkgeworICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoJ1ZlcmlmaWVkIGVudHJ5IGRvZXMgTk9UIGV4aXN0OiAnICsgZW50cnku
ZnVsbFBhdGgpOworICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5TmV4dEVudHJ5KCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVycm9y
ID09IEZpbGVFcnJvci5OT1RfRk9VTkRfRVJSKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
J05vdCBmb3VuZDogJyArIGVudHJ5LmZ1bGxQYXRoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCdHb3QgdW5leHBlY3RlZCBlcnJvciAnICsgZXJyb3IuY29k
ZSArICcgZm9yICcgKyBlbnRyeS5mdWxsUGF0aCk7CisgICAgICAgICAgICB0aGlzLmVycm9yQ2Fs
bGJhY2soZXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy52ZXJpZnlOZXh0RW50cnkg
PSBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnQgPj0g
dGhpcy5lbnRyaWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzc0NhbGxi
YWNrKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgdmFyIGVudHJ5ID0gdGhpcy5lbnRyaWVzW3RoaXMuY3VycmVudCsrXTsKKyAgICAgICAgICAg
IHRoaXMuZXhwZWN0ZWROb25leGlzdGVudCA9IGVudHJ5Lm5vbmV4aXN0ZW50OworICAgICAgICAg
ICAgaWYgKGVudHJ5LmlzRGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIGZpbGVTeXN0ZW0ucm9v
dC5nZXREaXJlY3RvcnkoZW50cnkuZnVsbFBhdGgsIHt9LCBiaW5kQ2FsbGJhY2sodGhpcywgdGhp
cy52ZXJpZnlTdWNjZXNzQ2FsbGJhY2spLCBiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy52ZXJpZnlF
cnJvckNhbGxiYWNrLCBlbnRyeSkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGZpbGVTeXN0ZW0ucm9vdC5nZXRGaWxlKGVudHJ5LmZ1bGxQYXRoLCB7fSwgYmluZENhbGxiYWNr
KHRoaXMsIHRoaXMudmVyaWZ5U3VjY2Vzc0NhbGxiYWNrKSwgYmluZENhbGxiYWNrKHRoaXMsIHRo
aXMudmVyaWZ5RXJyb3JDYWxsYmFjaywgZW50cnkpKTsKKyAgICAgICAgfTsKKyAgICB9OworCisg
ICAgaWYgKCFlbnRyaWVzIHx8ICFlbnRyaWVzLmxlbmd0aCkgeworICAgICAgICBzdWNjZXNzQ2Fs
bGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB2YXIgaGVscGVyID0gbmV3IEhl
bHBlcihmaWxlU3lzdGVtLCBlbnRyaWVzLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2sp
OworICAgIGhlbHBlci52ZXJpZnlOZXh0RW50cnkoKTsKK30KKworLy8gdGVzdENhc2UgbXVzdCBo
YXZlIHByZWNvbmRpdGlvbiwgcG9zdGNvbmRpdGlvbiBhbmQgdGVzdCBmdW5jdGlvbiBmaWVsZC4K
Ky8vIChTZWUgcmVzb3VyY2VzL29wLSouanMgZm9yIGV4YW1wbGVzLikKK2Z1bmN0aW9uIHJ1bk9w
ZXJhdGlvblRlc3QoZmlsZVN5c3RlbSwgdGVzdENhc2UsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JD
YWxsYmFjaykKK3sKKyAgICB2YXIgT3BlcmF0aW9uVGVzdEhlbHBlciA9IGZ1bmN0aW9uKGZpbGVT
eXN0ZW0sIHRlc3RDYXNlLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spCisgICAgewor
ICAgICAgICB0aGlzLmZpbGVTeXN0ZW0gPSBmaWxlU3lzdGVtOworICAgICAgICB0aGlzLnRlc3RD
YXNlID0gdGVzdENhc2U7CisgICAgICAgIHRoaXMuc3VjY2Vzc0NhbGxiYWNrID0gc3VjY2Vzc0Nh
bGxiYWNrOworICAgICAgICB0aGlzLmVycm9yQ2FsbGJhY2sgPSBlcnJvckNhbGxiYWNrOworICAg
ICAgICB0aGlzLnN0YWdlID0gJyc7CisgICAgICAgIHRoaXMuZW52aXJvbm1lbnQgPSB7fTsKKyAg
ICAgICAgdGhpcy5jdXJyZW50VGVzdCA9IDA7CisKKyAgICAgICAgdGhpcy5jdXJyZW50UmVhZGVy
ID0gbnVsbDsKKyAgICAgICAgdGhpcy5yZWFkRW50cmllcyA9IFtdOworCisgICAgICAgIHRoaXMu
dGVzdFN1Y2Nlc3NDYWxsYmFjayA9IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKCF0aGlzLmV4cGVjdGVkRXJyb3JDb2RlKSB7CisgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZCgnU3VjY2VlZGVkOiAnICsgdGhpcy5zdGFnZSk7CisgICAgICAgICAgICAgICAgdGhpcy5ydW5O
ZXh0VGVzdCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCdVbmV4cGVjdGVkbHkgc3VjY2VlZGVkIHdoaWxlICcgKyB0aGlzLnN0YWdlKTsKKyAgICAg
ICAgICAgICAgICB0aGlzLmVycm9yQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fTsKKworICAgICAgICB0aGlzLmVudHJ5ID0gbnVsbDsKKyAgICAgICAgdGhpcy50ZXN0R2V0U3Vj
Y2Vzc0NhbGxiYWNrID0gZnVuY3Rpb24oZW50cnkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghdGhpcy5leHBlY3RlZEVycm9yQ29kZSkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQo
J1N1Y2NlZWRlZDogJyArIHRoaXMuc3RhZ2UpOworICAgICAgICAgICAgICAgIHRoaXMuZW50cnkg
PSBlbnRyeTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZS5hcHBseSh0aGlzLCBbJ3RoaXMuZW52
aXJvbm1lbnRbdGhpcy5lbnRyeS5mdWxsUGF0aF0uZnVsbFBhdGgnLCAnIicgKyBlbnRyeS5mdWxs
UGF0aCArICciJ10pOworICAgICAgICAgICAgICAgIHNob3VsZEJlLmFwcGx5KHRoaXMsIFsndGhp
cy5lbnZpcm9ubWVudFt0aGlzLmVudHJ5LmZ1bGxQYXRoXS5pc0ZpbGUgKyAiIicsICciJyArIGVu
dHJ5LmlzRmlsZSArICciJ10pOworICAgICAgICAgICAgICAgIHNob3VsZEJlLmFwcGx5KHRoaXMs
IFsndGhpcy5lbnZpcm9ubWVudFt0aGlzLmVudHJ5LmZ1bGxQYXRoXS5pc0RpcmVjdG9yeSArICIi
JywgJyInICsgZW50cnkuaXNEaXJlY3RvcnkgKyAnIiddKTsKKyAgICAgICAgICAgICAgICB0aGlz
LnJ1bk5leHRUZXN0KCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoJ1VuZXhwZWN0ZWRseSBzdWNjZWVkZWQgd2hpbGUgJyArIHRoaXMuc3RhZ2UpOwor
ICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JDYWxsYmFjayhlcnJvcik7CisgICAgICAgICAgICB9
CisgICAgICAgIH07CisKKyAgICAgICAgdGhpcy50ZXN0Q3JlYXRlU3VjY2Vzc0NhbGxiYWNrID0g
ZnVuY3Rpb24oZW50cnkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghdGhpcy5leHBlY3Rl
ZEVycm9yQ29kZSkgeworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N1Y2NlZWRlZDogJyAr
IHRoaXMuc3RhZ2UpOworICAgICAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnRbZW50cnkuZnVs
bFBhdGhdID0gZW50cnk7CisgICAgICAgICAgICAgICAgdGhpcy5ydW5OZXh0VGVzdCgpOworICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdVbmV4cGVjdGVk
bHkgc3VjY2VlZGVkIHdoaWxlICcgKyB0aGlzLnN0YWdlKTsKKyAgICAgICAgICAgICAgICB0aGlz
LmVycm9yQ2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICB0
aGlzLnRlc3RHZXRQYXJlbnRTdWNjZXNzQ2FsbGJhY2sgPSBmdW5jdGlvbihlbnRyeSkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKCF0aGlzLmV4cGVjdGVkRXJyb3JDb2RlKSB7CisgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZCgnU3VjY2VlZGVkOiAnICsgdGhpcy5zdGFnZSk7CisgICAgICAg
ICAgICAgICAgZGVidWcoJ1BhcmVudCBlbnRyeTogJyArIHRvU3RyaW5nKGVudHJ5KSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5ydW5OZXh0VGVzdCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdVbmV4cGVjdGVkbHkgc3VjY2VlZGVkIHdoaWxlICcg
KyB0aGlzLnN0YWdlKTsKKyAgICAgICAgICAgICAgICB0aGlzLmVycm9yQ2FsbGJhY2soKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICB0aGlzLnRlc3RSZWFkRW50cmllc1N1
Y2Nlc3NDYWxsYmFjayA9IGZ1bmN0aW9uKGVudHJpZXMpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICh0aGlzLmV4cGVjdGVkRXJyb3JDb2RlKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgnVW5leHBlY3RlZGx5IHN1Y2NlZWRlZCB3aGlsZSAnICsgdGhpcy5zdGFnZSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5lcnJvckNhbGxiYWNrKGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW50
cmllcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICB0aGlzLnJlYWRFbnRyaWVzLnB1c2go
ZW50cmllc1tpXSk7CisKKyAgICAgICAgICAgIGlmIChlbnRyaWVzLmxlbmd0aCkgeworICAgICAg
ICAgICAgICAgIHRoaXMuY3VycmVudFJlYWRlci5yZWFkRW50cmllcyhiaW5kQ2FsbGJhY2sodGhp
cywgdGhpcy50ZXN0UmVhZEVudHJpZXNTdWNjZXNzQ2FsbGJhY2spLCBiaW5kQ2FsbGJhY2sodGhp
cywgdGhpcy50ZXN0RXJyb3JDYWxsYmFjaykpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgdGVzdFBhc3NlZCgnU3VjY2VlZGVkOiAnICsgdGhp
cy5zdGFnZSk7CisgICAgICAgICAgICBkZWJ1ZygnRW50cmllczogJyArIHRvU3RyaW5nKHRoaXMu
cmVhZEVudHJpZXMpKTsKKyAgICAgICAgICAgIHRoaXMucnVuTmV4dFRlc3QoKTsKKyAgICAgICAg
fTsKKworICAgICAgICB0aGlzLnRlc3RFcnJvckNhbGxiYWNrID0gZnVuY3Rpb24oZXJyb3IpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmV4cGVjdGVkRXJyb3JDb2RlKSB7CisgICAg
ICAgICAgICAgICAgc2hvdWxkQmUuYXBwbHkodGhpcywgWyd0aGlzLmV4cGVjdGVkRXJyb3JDb2Rl
ICsgIiInLCAnIicgKyBlcnJvci5jb2RlICsgJyInXSk7CisgICAgICAgICAgICAgICAgdGhpcy5y
dW5OZXh0VGVzdCgpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCdHb3QgdW5leHBlY3RlZCBlcnJvciAnICsgZXJyb3IuY29kZSArICcgd2hpbGUgJyAr
IHRoaXMuc3RhZ2UpOworICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JDYWxsYmFjayhlcnJvcik7
CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgLy8gT3BlcmF0aW9ucyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAg
ICB0aGlzLmdldEZpbGUgPSBmdW5jdGlvbihlbnRyeSwgcGF0aCwgZmxhZ3MsIGV4cGVjdGVkRXJy
b3JDb2RlKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlID0g
ZXhwZWN0ZWRFcnJvckNvZGU7CisgICAgICAgICAgICB0aGlzLnN0YWdlID0gJyInICsgZW50cnkg
KyAnIi5nZXRGaWxlKCInICsgcGF0aCArICciKSc7CisgICAgICAgICAgICB2YXIgc3VjY2Vzc0Nh
bGxiYWNrID0gKGZsYWdzICYmIGZsYWdzLmNyZWF0ZSkgPyB0aGlzLnRlc3RDcmVhdGVTdWNjZXNz
Q2FsbGJhY2sgOiB0aGlzLnRlc3RHZXRTdWNjZXNzQ2FsbGJhY2s7CisgICAgICAgICAgICB0aGlz
LmVudmlyb25tZW50W2VudHJ5XS5nZXRGaWxlKHBhdGgsIGZsYWdzLCBiaW5kQ2FsbGJhY2sodGhp
cywgc3VjY2Vzc0NhbGxiYWNrKSwgYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdEVycm9yQ2Fs
bGJhY2spKTsKKyAgICAgICAgfTsKKworICAgICAgICB0aGlzLmdldERpcmVjdG9yeSA9IGZ1bmN0
aW9uKGVudHJ5LCBwYXRoLCBmbGFncywgZXhwZWN0ZWRFcnJvckNvZGUpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHRoaXMuZXhwZWN0ZWRFcnJvckNvZGUgPSBleHBlY3RlZEVycm9yQ29kZTsKKyAg
ICAgICAgICAgIHRoaXMuc3RhZ2UgPSAnIicgKyBlbnRyeSArICciLmdldERpcmVjdG9yeSgiJyAr
IHBhdGggKyAnIiknOworICAgICAgICAgICAgdmFyIHN1Y2Nlc3NDYWxsYmFjayA9IChmbGFncyAm
JiBmbGFncy5jcmVhdGUpID8gdGhpcy50ZXN0Q3JlYXRlU3VjY2Vzc0NhbGxiYWNrIDogdGhpcy50
ZXN0R2V0U3VjY2Vzc0NhbGxiYWNrOworICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudFtlbnRy
eV0uZ2V0RGlyZWN0b3J5KHBhdGgsIGZsYWdzLCBiaW5kQ2FsbGJhY2sodGhpcywgc3VjY2Vzc0Nh
bGxiYWNrKSwgYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdEVycm9yQ2FsbGJhY2spKTsKKyAg
ICAgICAgfTsKKworICAgICAgICB0aGlzLmdldFBhcmVudCA9IGZ1bmN0aW9uKGVudHJ5LCBleHBl
Y3RlZEVycm9yQ29kZSkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5leHBlY3RlZEVycm9y
Q29kZSA9IGV4cGVjdGVkRXJyb3JDb2RlOworICAgICAgICAgICAgdGhpcy5zdGFnZSA9ICciJyAr
IGVudHJ5ICsgJyIuZ2V0UGFyZW50KCknOworICAgICAgICAgICAgdGhpcy5lbnZpcm9ubWVudFtl
bnRyeV0uZ2V0UGFyZW50KGJpbmRDYWxsYmFjayh0aGlzLCB0aGlzLnRlc3RHZXRQYXJlbnRTdWNj
ZXNzQ2FsbGJhY2spLCBiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy50ZXN0RXJyb3JDYWxsYmFjaykp
OworICAgICAgICB9OworCisgICAgICAgIHRoaXMuZ2V0TWV0YWRhdGEgPSBmdW5jdGlvbihlbnRy
eSwgZXhwZWN0ZWRFcnJvckNvZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0
ZWRFcnJvckNvZGUgPSBleHBlY3RlZEVycm9yQ29kZTsKKyAgICAgICAgICAgIHRoaXMuc3RhZ2Ug
PSAnIicgKyBlbnRyeSArICciLmdldE1ldGFkYXRhKCknOworICAgICAgICAgICAgdGhpcy5lbnZp
cm9ubWVudFtlbnRyeV0uZ2V0TWV0YWRhdGEoYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdFN1
Y2Nlc3NDYWxsYmFjayksIGJpbmRDYWxsYmFjayh0aGlzLCB0aGlzLnRlc3RFcnJvckNhbGxiYWNr
KSk7CisgICAgICAgIH07CisKKyAgICAgICAgdGhpcy5yZW1vdmUgPSBmdW5jdGlvbihlbnRyeSwg
ZXhwZWN0ZWRFcnJvckNvZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWRF
cnJvckNvZGUgPSBleHBlY3RlZEVycm9yQ29kZTsKKyAgICAgICAgICAgIHRoaXMuc3RhZ2UgPSAn
IicgKyBlbnRyeSArICciLnJlbW92ZSgpJzsKKyAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnRb
ZW50cnldLnJlbW92ZShiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy50ZXN0U3VjY2Vzc0NhbGxiYWNr
KSwgYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdEVycm9yQ2FsbGJhY2spKTsKKyAgICAgICAg
fTsKKworICAgICAgICB0aGlzLnJlYWREaXJlY3RvcnkgPSBmdW5jdGlvbihlbnRyeSwgZXhwZWN0
ZWRFcnJvckNvZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuZXhwZWN0ZWRFcnJvckNv
ZGUgPSBleHBlY3RlZEVycm9yQ29kZTsKKyAgICAgICAgICAgIHRoaXMucmVhZEVudHJpZXMgPSBb
XTsKKyAgICAgICAgICAgIHRoaXMuc3RhZ2UgPSAnIicgKyBlbnRyeSArICciLmNyZWF0ZVJlYWRl
cigpLnJlYWRFbnRyaWVzKCknOworICAgICAgICAgICAgdGhpcy5jdXJyZW50UmVhZGVyID0gdGhp
cy5lbnZpcm9ubWVudFtlbnRyeV0uY3JlYXRlUmVhZGVyKCk7CisgICAgICAgICAgICB0aGlzLmN1
cnJlbnRSZWFkZXIucmVhZEVudHJpZXMoYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdFJlYWRF
bnRyaWVzU3VjY2Vzc0NhbGxiYWNrKSwgYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdEVycm9y
Q2FsbGJhY2spKTsKKyAgICAgICAgfTsKKworICAgICAgICB0aGlzLmNvcHkgPSBmdW5jdGlvbihl
bnRyeSwgZGVzdGluYXRpb25QYXJlbnQsIG5ld05hbWUsIGV4cGVjdGVkRXJyb3JDb2RlKQorICAg
ICAgICB7CisgICAgICAgICAgICB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlID0gZXhwZWN0ZWRFcnJv
ckNvZGU7CisgICAgICAgICAgICB0aGlzLnN0YWdlID0gJyInICsgZW50cnkgKyAnIi5jb3B5VG8o
IicgKyBkZXN0aW5hdGlvblBhcmVudCArICciLCAiJyArIG5ld05hbWUgKyAnIiknOworICAgICAg
ICAgICAgdGhpcy5lbnZpcm9ubWVudFtlbnRyeV0uY29weVRvKHRoaXMuZW52aXJvbm1lbnRbZGVz
dGluYXRpb25QYXJlbnRdLCBuZXdOYW1lLCBiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy50ZXN0U3Vj
Y2Vzc0NhbGxiYWNrKSwgYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdEVycm9yQ2FsbGJhY2sp
KTsKKyAgICAgICAgfTsKKworICAgICAgICB0aGlzLm1vdmUgPSBmdW5jdGlvbihlbnRyeSwgZGVz
dGluYXRpb25QYXJlbnQsIG5ld05hbWUsIGV4cGVjdGVkRXJyb3JDb2RlKQorICAgICAgICB7Cisg
ICAgICAgICAgICB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlID0gZXhwZWN0ZWRFcnJvckNvZGU7Cisg
ICAgICAgICAgICB0aGlzLnN0YWdlID0gJyInICsgZW50cnkgKyAnIi5tb3ZlVG8oIicgKyBkZXN0
aW5hdGlvblBhcmVudCArICciLCAiJyArIG5ld05hbWUgKyAnIiknOworICAgICAgICAgICAgdGhp
cy5lbnZpcm9ubWVudFtlbnRyeV0ubW92ZVRvKHRoaXMuZW52aXJvbm1lbnRbZGVzdGluYXRpb25Q
YXJlbnRdLCBuZXdOYW1lLCBiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy50ZXN0U3VjY2Vzc0NhbGxi
YWNrKSwgYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdEVycm9yQ2FsbGJhY2spKTsKKyAgICAg
ICAgfTsKKworICAgICAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICB0aGlzLnN0YXJ0ID0gZnVuY3Rpb24o
KQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLmV4cGVjdGVkRXJyb3JDb2RlID0gJyc7Cisg
ICAgICAgICAgICB0aGlzLnN0YWdlID0gJ3Jlc2V0dGluZyBmaWxlc3lzdGVtJzsKKyAgICAgICAg
ICAgIHJlbW92ZVJlY3Vyc2l2ZWx5KHRoaXMuZmlsZVN5c3RlbS5yb290LCBiaW5kQ2FsbGJhY2so
dGhpcywgdGhpcy5zZXRVcCksIGJpbmRDYWxsYmFjayh0aGlzLCB0aGlzLnRlc3RFcnJvckNhbGxi
YWNrKSk7CisgICAgICAgIH07CisKKyAgICAgICAgdGhpcy5zZXRVcCA9IGZ1bmN0aW9uKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgdGhpcy5leHBlY3RlZEVycm9yQ29kZSA9ICcnOworICAgICAg
ICAgICAgdGhpcy5zdGFnZSA9ICdzZXR0aW5nIHVwIHRlc3QgcHJlY29uZGl0aW9uJzsKKyAgICAg
ICAgICAgIGNyZWF0ZVRlc3RFbnZpcm9ubWVudCh0aGlzLmZpbGVTeXN0ZW0sIHRoaXMudGVzdENh
c2UucHJlY29uZGl0aW9uLCBiaW5kQ2FsbGJhY2sodGhpcywgdGhpcy5ydW5UZXN0cyksIGJpbmRD
YWxsYmFjayh0aGlzLCB0aGlzLnRlc3RFcnJvckNhbGxiYWNrKSk7CisgICAgICAgIH07CisKKyAg
ICAgICAgdGhpcy5ydW5OZXh0VGVzdCA9IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKHRoaXMuY3VycmVudFRlc3QgPj0gdGhpcy50ZXN0Q2FzZS50ZXN0cy5sZW5ndGgpIHsK
KyAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMudGVzdENhc2UudGVzdHNbdGhpcy5jdXJy
ZW50VGVzdCsrXSh0aGlzKTsKKyAgICAgICAgfTsKKworICAgICAgICB0aGlzLnJ1blRlc3RzID0g
ZnVuY3Rpb24oZW52aXJvbm1lbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuZW52aXJv
bm1lbnQgPSBlbnZpcm9ubWVudDsKKyAgICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnRbJy8nXSA9
IHRoaXMuZmlsZVN5c3RlbS5yb290OworICAgICAgICAgICAgdGhpcy5jdXJyZW50VGVzdCA9IDA7
CisgICAgICAgICAgICB0aGlzLnJ1bk5leHRUZXN0KCk7CisgICAgICAgIH07CisKKyAgICAgICAg
dGhpcy52ZXJpZnkgPSBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuZXhw
ZWN0ZWRFcnJvckNvZGUgPSAnJzsKKyAgICAgICAgICAgIGlmICghdGhpcy50ZXN0Q2FzZS5wb3N0
Y29uZGl0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzQ2FsbGJhY2soKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLnN0
YWdlID0gJ3ZlcmlmeWluZyB0ZXN0IHBvc3Rjb25kaXRpb24nOworICAgICAgICAgICAgdmVyaWZ5
VGVzdEVudmlyb25tZW50KHRoaXMuZmlsZVN5c3RlbSwgdGhpcy50ZXN0Q2FzZS5wb3N0Y29uZGl0
aW9uLCB0aGlzLnN1Y2Nlc3NDYWxsYmFjaywgYmluZENhbGxiYWNrKHRoaXMsIHRoaXMudGVzdEVy
cm9yQ2FsbGJhY2spKTsKKyAgICAgICAgfTsKKyAgICB9OworCisgICAgdmFyIGhlbHBlciA9IG5l
dyBPcGVyYXRpb25UZXN0SGVscGVyKGZpbGVTeXN0ZW0sIHRlc3RDYXNlLCBzdWNjZXNzQ2FsbGJh
Y2ssIGVycm9yQ2FsbGJhY2spOworICAgIGhlbHBlci5zdGFydCgpOworfQorCit2YXIgY3VycmVu
dFRlc3QgPSAwOwordmFyIGZpbGVTeXN0ZW0gPSBudWxsOworZnVuY3Rpb24gcnVuTmV4dFRlc3Qo
KSB7CisgICAgaWYgKGN1cnJlbnRUZXN0ID49IHRlc3RDYXNlcy5sZW5ndGgpIHsKKyAgICAgICAg
ZGVidWcoJ0ZpbmlzaGVkIHJ1bm5pbmcgdGVzdHMuJyk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdmFyIHRlc3RDYXNlID0gdGVzdENhc2Vz
W2N1cnJlbnRUZXN0KytdOworICAgIGRlYnVnKCcqIFJ1bm5pbmc6ICcgKyB0ZXN0Q2FzZS5uYW1l
KTsKKyAgICBydW5PcGVyYXRpb25UZXN0KGZpbGVTeXN0ZW0sIHRlc3RDYXNlLCBydW5OZXh0VGVz
dCwgZXJyb3JDYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIGVycm9yQ2FsbGJhY2soZXJyb3IpIHsK
KyAgICBpZiAoZXJyb3IgJiYgZXJyb3IuY29kZSkKKyAgICAgICAgdGVzdEZhaWxlZCgnR290IGVy
cm9yICcgKyBlcnJvci5jb2RlKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24g
ZmlsZVN5c3RlbUNhbGxiYWNrKGZzKQoreworICAgIGZpbGVTeXN0ZW0gPSBmczsKKyAgICBydW5O
ZXh0VGVzdCgpOworfQorCit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CityZXF1ZXN0RmlsZVN5
c3RlbShURU1QT1JBUlksIDEwMCwgZmlsZVN5c3RlbUNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL2ZsYWdzLXBhc3NpbmcuanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vc2NyaXB0LXRlc3RzL2ZsYWdzLXBhc3NpbmcuanMKaW5kZXgg
MDc4OWE5OWNkYWVmYzc1MTdmNWY1MTRmZjAzNzhjNTJiODM4OTAwMS4uZjU2NTE3NDJlOGJiNDc2
NWY4NDg4ZWQ3ZDhlNGRhYzg4ZDY1YWRmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL3NjcmlwdC10ZXN0cy9mbGFncy1wYXNzaW5nLmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXN5c3RlbS9zY3JpcHQtdGVzdHMvZmxhZ3MtcGFzc2luZy5qcwpAQCAtODYsOCAr
ODYsOCBAQCBmdW5jdGlvbiBmaWxlU3lzdGVtQ2FsbGJhY2soZnMpIHsKIH0KIAogaWYgKHdpbmRv
dy5yZXF1ZXN0RmlsZVN5c3RlbSkgewotICAgIHJlcXVlc3RGaWxlU3lzdGVtKHdpbmRvdy5URU1Q
T1JBUlksIDEwMCwgZmlsZVN5c3RlbUNhbGxiYWNrLCBlcnJvckNhbGxiYWNrKTsKICAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgcmVxdWVzdEZpbGVTeXN0ZW0od2luZG93LlRF
TVBPUkFSWSwgMTAwLCBmaWxlU3lzdGVtQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2spOwogfSBlbHNl
CiAgICAgZGVidWcoIlRoaXMgdGVzdCByZXF1aXJlcyBGaWxlU3lzdGVtIEFQSSBzdXBwb3J0LiIp
OwogCg==
</data>
<flag name="review"
          id="59314"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>