<?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>158318</bug_id>
          
          <creation_ts>2016-06-02 14:39:24 -0700</creation_ts>
          <short_desc>Implement Air::allocateStack() in ES6 to see how much of a bad idea that is</short_desc>
          <delta_ts>2016-06-09 12:23:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>158492</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>lforschler</cc>
    
    <cc>mario</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>oliver</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1198694</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-02 14:39:24 -0700</bug_when>
    <thetext>We would never actually meta-circulate our engine, because why, but it&apos;s useful to see how the kind of code we write would fare if it was written in ES6.  I want to know:

- Will it work at all?
- Will it run without crashing?
- How many times slower will it be than C++?

These are useful questions to answer, for science.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198696</commentid>
    <comment_count>1</comment_count>
      <attachid>280369</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-02 14:41:23 -0700</bug_when>
    <thetext>Created attachment 280369
gotta start by dumping Air to a JS data definition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198707</commentid>
    <comment_count>2</comment_count>
      <attachid>280371</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-02 15:20:15 -0700</bug_when>
    <thetext>Created attachment 280371
the C++ side may be written

Yucky!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198985</commentid>
    <comment_count>3</comment_count>
      <attachid>280447</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-03 11:33:39 -0700</bug_when>
    <thetext>Created attachment 280447
moar</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1198994</commentid>
    <comment_count>4</comment_count>
      <attachid>280452</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-03 12:19:30 -0700</bug_when>
    <thetext>Created attachment 280452
so much fun</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199011</commentid>
    <comment_count>5</comment_count>
      <attachid>280456</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-03 13:22:20 -0700</bug_when>
    <thetext>Created attachment 280456
a bit more</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199706</commentid>
    <comment_count>6</comment_count>
      <attachid>280629</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-06 13:56:20 -0700</bug_when>
    <thetext>Created attachment 280629
it grows

Intriguingly, I found some slop in the C++ implementation of Air by rewriting it.  This also includes changes to remove dead code and consolidate duplicated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199757</commentid>
    <comment_count>7</comment_count>
      <attachid>280642</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-06 16:04:42 -0700</bug_when>
    <thetext>Created attachment 280642
a bit more</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199859</commentid>
    <comment_count>8</comment_count>
      <attachid>280664</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-06 20:00:28 -0700</bug_when>
    <thetext>Created attachment 280664
getting there</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1199877</commentid>
    <comment_count>9</comment_count>
      <attachid>280666</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-06 20:37:01 -0700</bug_when>
    <thetext>Created attachment 280666
added customs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200156</commentid>
    <comment_count>10</comment_count>
      <attachid>280730</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-07 12:11:59 -0700</bug_when>
    <thetext>Created attachment 280730
getting pretty close</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200167</commentid>
    <comment_count>11</comment_count>
      <attachid>280733</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-07 12:47:47 -0700</bug_when>
    <thetext>Created attachment 280733
almost done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200185</commentid>
    <comment_count>12</comment_count>
      <attachid>280735</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-07 13:54:49 -0700</bug_when>
    <thetext>Created attachment 280735
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200187</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-07 13:57:44 -0700</bug_when>
    <thetext>Attachment 280735 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/air/AirInstInlines.h:43:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:93:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:117:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:194:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:198:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:204:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirArgInlines.h:143:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirArgInlines.h:158:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 8 in 48 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200193</commentid>
    <comment_count>14</comment_count>
      <attachid>280735</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-06-07 14:16:47 -0700</bug_when>
    <thetext>Comment on attachment 280735
the patch

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

I&apos;m not going to read every line, but LGTM

&gt; PerformanceTests/ChangeLog:21
&gt; +        - JSAir&apos;s largest hot function, which is anonymous, so we call it by its hash (ACLj8C).

Maybe it&apos;s worth giving the anonymous function a name?

&gt; PerformanceTests/JSAir/benchmark.js:1
&gt; +&quot;use strict&quot;;

I think it&apos;s nicer for this to go after copyright. It&apos;s less likely to be glanced over
Same goes for in all other files.

&gt; PerformanceTests/JSAir/opcode.js:736
&gt; +        break;
&gt; +        break;

Many duplicate breaks

&gt; PerformanceTests/JSAir/payload-gbemu-executeIteration.js:1
&gt; +&quot;use strict&quot;;

Should we generate a copyright?

&gt; Source/JavaScriptCore/b3/air/AirDumpAsJS.h:37
&gt; +// This is a joke. Various operations on Air are interesting from a benchmarking standpoint. We can

&quot;This is a joke.&quot; =&gt; &quot;This is used for benchmarking.&quot;

&gt; Source/WTF/wtf/PrintStream.h:75
&gt; +    void println(const Types&amp;... values)

I will actually use this a lot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200194</commentid>
    <comment_count>15</comment_count>
      <attachid>280735</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-06-07 14:18:42 -0700</bug_when>
    <thetext>Comment on attachment 280735
the patch

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

&gt; PerformanceTests/ChangeLog:33
&gt; +        - Symbol.
&gt; +        - for-of.
&gt; +        - arrow functions.
&gt; +        - Map/Set.
&gt; +        - let/const.
&gt; +        - classes.

It&apos;s worth opening a bug to write a benchmark that uses generators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200195</commentid>
    <comment_count>16</comment_count>
      <attachid>280737</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-07 14:19:45 -0700</bug_when>
    <thetext>Created attachment 280737
almost the patch

Uploading this to check EWS, but I still need to address Saam&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200196</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-07 14:21:35 -0700</bug_when>
    <thetext>Attachment 280737 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/air/AirInstInlines.h:43:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:93:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:117:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:194:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:198:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirDumpAsJS.cpp:204:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirArgInlines.h:143:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirArgInlines.h:158:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 8 in 49 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200197</commentid>
    <comment_count>18</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-07 14:23:46 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Comment on attachment 280735 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=280735&amp;action=review
&gt; 
&gt; I&apos;m not going to read every line, but LGTM
&gt; 
&gt; &gt; PerformanceTests/ChangeLog:21
&gt; &gt; +        - JSAir&apos;s largest hot function, which is anonymous, so we call it by its hash (ACLj8C).
&gt; 
&gt; Maybe it&apos;s worth giving the anonymous function a name?

I&apos;ll try to check this.  It&apos;s probably an arrow function.

&gt; 
&gt; &gt; PerformanceTests/JSAir/benchmark.js:1
&gt; &gt; +&quot;use strict&quot;;
&gt; 
&gt; I think it&apos;s nicer for this to go after copyright. It&apos;s less likely to be
&gt; glanced over
&gt; Same goes for in all other files.

I wasn&apos;t sure if that worked or not.  I&apos;ll fix this.

&gt; 
&gt; &gt; PerformanceTests/JSAir/opcode.js:736
&gt; &gt; +        break;
&gt; &gt; +        break;
&gt; 
&gt; Many duplicate breaks

Yeah, this is generated code.  The code generator isn&apos;t that smart.  It does the same thing when generating C++ code, and we make the compiler happy by wrapping the breaks inside some horror.

&gt; 
&gt; &gt; PerformanceTests/JSAir/payload-gbemu-executeIteration.js:1
&gt; &gt; +&quot;use strict&quot;;
&gt; 
&gt; Should we generate a copyright?

Hmmm.  I don&apos;t know how to copyright it to.  I think that saying that it&apos;s generated code conveys the right message.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/AirDumpAsJS.h:37
&gt; &gt; +// This is a joke. Various operations on Air are interesting from a benchmarking standpoint. We can
&gt; 
&gt; &quot;This is a joke.&quot; =&gt; &quot;This is used for benchmarking.&quot;

Right. :-)

&gt; 
&gt; &gt; Source/WTF/wtf/PrintStream.h:75
&gt; &gt; +    void println(const Types&amp;... values)
&gt; 
&gt; I will actually use this a lot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200207</commentid>
    <comment_count>19</comment_count>
      <attachid>280737</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-07 15:00:12 -0700</bug_when>
    <thetext>Comment on attachment 280737
almost the patch

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

Neat! I pointed out some places where you could use a few more ES6 features / syntax, since that seemed to be a goal.

&gt; PerformanceTests/JSAir/arg.js:83
&gt; +        switch (role)
&gt; +        {

Weird style.

&gt; PerformanceTests/JSAir/basic_block.js:76
&gt; +            get: function(target, property) {

Style: With ES6 shorthand style you could write these as:

    get(target, property) {
        ...
    },

    set(target, property, value) {
        ...
    }

You use this pattern in other places.

&gt; PerformanceTests/JSAir/code.js:41
&gt; +    addBlock(frequency)
&gt; +    {
&gt; +        if (frequency == null)
&gt; +            frequency = 1;

You use this pattern a bunch. If you want to use more ES6 features you could test default parameter values:

    addBlock(frequency=1)

&gt; PerformanceTests/JSAir/code.js:49
&gt; +        let result = addIndexed(this._stackSlots, StackSlot, byteSize, kind);
&gt; +        return result;

Drop the temporary variable and make this a tail call?

&gt; PerformanceTests/JSAir/code.js:55
&gt; +        let result = addIndexed(this[&quot;_&quot; + symbolName(type).toLowerCase() + &quot;Tmps&quot;], Tmp, type);
&gt; +        return result;

Drop the temporary variable and make this a tail call?

&gt; PerformanceTests/JSAir/code.js:96
&gt; +        if (this._frameSize)
&gt; +            result += &quot;Frame size: &quot; + this._frameSize + &quot;\n&quot;;
&gt; +        if (this._callArgAreaSize)
&gt; +            result += &quot;Call arg area size: &quot; + this._callArgAreaSize + &quot;\n&quot;;

If you want to test more ES6 features, you could use template strings and interpolation in a lot of these toString methods and other places:

    if (this._frameSize)
        result += `Frame size: ${this._frameSize}\n`;
    if (this._callArgAreaSize)
        result += `Call arg area size: ${this._callArgAreaSize}\n`;

&gt; PerformanceTests/JSAir/custom.js:56
&gt; +        for (let i = 0; i &lt; inst.args.length; ++i) {
&gt; +            inst.visitArg(
&gt; +                i, func, inst.patchArgData[i].role, inst.patchArgData[i].type,
&gt; +                inst.patchArgData[i].width);
&gt; +        }

You could make use of ES6 destructuring here:

    let {role, type, width} = inst.patchArgData[i];
    inst.visitArg(i, func, role, type, width);

&gt; PerformanceTests/JSAir/inst.js:130
&gt; +        return &quot;&quot; + symbolName(this._opcode) + &quot; &quot; + this._args.join(&quot;, &quot;);

The &quot;&quot; + at the start seems unnecessary. symbolName appears to always return a string.

&gt; PerformanceTests/JSAir/opcode.js:143
&gt; +    case Nop:
&gt; +        break;
&gt; +        break;

A lot of these seem to have duplicate breaks. Might be worth cleaning up in the generator, but ultimately harmless.

&gt; PerformanceTests/JSAir/test.html:28
&gt; +        document.getElementById(&quot;result-summary&quot;).innerHTML = &quot;That took &quot; + result + &quot; ms.&quot;;

You could use `textContent` or `innerText` instead of `innerHTML`:
&lt;http://caniuse.com/#search=textContent&gt;

&gt; PerformanceTests/JSAir/util.js:34
&gt; +function addIndexed(list, cons, ...args)
&gt; +{
&gt; +    let result = new cons(list.length, ...args);

You have this pattern in a few places. It reminds me of bug 158438.

&gt; PerformanceTests/JSAir/util.js:170
&gt; +else if (preciseTime)

This should probably be &quot;if (this.preciseTime)&quot; otherwise you will get a ReferenceError in environments that do not have `global.performance` and no preciseTime global, which I bet would be the case in node/v8.

&gt; PerformanceTests/JSAir/util.js:173
&gt; +else
&gt; +    currentTime = function() { return 0 + new Date(); };

When I run this in the console I get:

    js&gt; (0 + new Date())
    &quot;0Tue Jun 07 2016 14:34:10 GMT-0700 (PDT)&quot;

You should probably just do:

    Date.now()

Or:

    +new Date

&gt; Source/JavaScriptCore/jsc.cpp:2007
&gt; +    if (nameValue.toWTFString(globalObject-&gt;globalExec()) == &quot;SyntaxError&quot;

Awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200211</commentid>
    <comment_count>20</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-07 15:09:43 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Comment on attachment 280737 [details]
&gt; almost the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=280737&amp;action=review
&gt; 
&gt; Neat! I pointed out some places where you could use a few more ES6 features
&gt; / syntax, since that seemed to be a goal.
&gt; 
&gt; &gt; PerformanceTests/JSAir/arg.js:83
&gt; &gt; +        switch (role)
&gt; &gt; +        {
&gt; 
&gt; Weird style.

Ooops!  Fixed.

&gt; 
&gt; &gt; PerformanceTests/JSAir/basic_block.js:76
&gt; &gt; +            get: function(target, property) {
&gt; 
&gt; Style: With ES6 shorthand style you could write these as:
&gt; 
&gt;     get(target, property) {
&gt;         ...
&gt;     },
&gt; 
&gt;     set(target, property, value) {
&gt;         ...
&gt;     }
&gt; 
&gt; You use this pattern in other places.

Fixed!

&gt; 
&gt; &gt; PerformanceTests/JSAir/code.js:41
&gt; &gt; +    addBlock(frequency)
&gt; &gt; +    {
&gt; &gt; +        if (frequency == null)
&gt; &gt; +            frequency = 1;
&gt; 
&gt; You use this pattern a bunch. If you want to use more ES6 features you could
&gt; test default parameter values:
&gt; 
&gt;     addBlock(frequency=1)

Filed: https://bugs.webkit.org/show_bug.cgi?id=158497

&gt; 
&gt; &gt; PerformanceTests/JSAir/code.js:49
&gt; &gt; +        let result = addIndexed(this._stackSlots, StackSlot, byteSize, kind);
&gt; &gt; +        return result;
&gt; 
&gt; Drop the temporary variable and make this a tail call?

I wanted to see where I got into addIndexed() from, so I wrote it this way to avoid the tail call.  I like that I can control PTC.

&gt; 
&gt; &gt; PerformanceTests/JSAir/code.js:55
&gt; &gt; +        let result = addIndexed(this[&quot;_&quot; + symbolName(type).toLowerCase() + &quot;Tmps&quot;], Tmp, type);
&gt; &gt; +        return result;
&gt; 
&gt; Drop the temporary variable and make this a tail call?

Ditto.

&gt; 
&gt; &gt; PerformanceTests/JSAir/code.js:96
&gt; &gt; +        if (this._frameSize)
&gt; &gt; +            result += &quot;Frame size: &quot; + this._frameSize + &quot;\n&quot;;
&gt; &gt; +        if (this._callArgAreaSize)
&gt; &gt; +            result += &quot;Call arg area size: &quot; + this._callArgAreaSize + &quot;\n&quot;;
&gt; 
&gt; If you want to test more ES6 features, you could use template strings and
&gt; interpolation in a lot of these toString methods and other places:
&gt; 
&gt;     if (this._frameSize)
&gt;         result += `Frame size: ${this._frameSize}\n`;
&gt;     if (this._callArgAreaSize)
&gt;         result += `Call arg area size: ${this._callArgAreaSize}\n`;

Filed: https://bugs.webkit.org/show_bug.cgi?id=158497

&gt; 
&gt; &gt; PerformanceTests/JSAir/custom.js:56
&gt; &gt; +        for (let i = 0; i &lt; inst.args.length; ++i) {
&gt; &gt; +            inst.visitArg(
&gt; &gt; +                i, func, inst.patchArgData[i].role, inst.patchArgData[i].type,
&gt; &gt; +                inst.patchArgData[i].width);
&gt; &gt; +        }
&gt; 
&gt; You could make use of ES6 destructuring here:
&gt; 
&gt;     let {role, type, width} = inst.patchArgData[i];
&gt;     inst.visitArg(i, func, role, type, width);

Ditto.

&gt; 
&gt; &gt; PerformanceTests/JSAir/inst.js:130
&gt; &gt; +        return &quot;&quot; + symbolName(this._opcode) + &quot; &quot; + this._args.join(&quot;, &quot;);
&gt; 
&gt; The &quot;&quot; + at the start seems unnecessary. symbolName appears to always return
&gt; a string.

Yeah, this is an old style of mine.  I guess that this should use interpolation.

&gt; 
&gt; &gt; PerformanceTests/JSAir/opcode.js:143
&gt; &gt; +    case Nop:
&gt; &gt; +        break;
&gt; &gt; +        break;
&gt; 
&gt; A lot of these seem to have duplicate breaks. Might be worth cleaning up in
&gt; the generator, but ultimately harmless.

It&apos;s hard to avoid this given the complex logic of the generator.  When it generates C++, it makes similar mistakes, and we have crazy macros for disabling compiler warnings for this purpose.

&gt; 
&gt; &gt; PerformanceTests/JSAir/test.html:28
&gt; &gt; +        document.getElementById(&quot;result-summary&quot;).innerHTML = &quot;That took &quot; + result + &quot; ms.&quot;;
&gt; 
&gt; You could use `textContent` or `innerText` instead of `innerHTML`:
&gt; &lt;http://caniuse.com/#search=textContent&gt;

I changed to use innerText, but how is that different?

&gt; 
&gt; &gt; PerformanceTests/JSAir/util.js:34
&gt; &gt; +function addIndexed(list, cons, ...args)
&gt; &gt; +{
&gt; &gt; +    let result = new cons(list.length, ...args);
&gt; 
&gt; You have this pattern in a few places. It reminds me of bug 158438.

Should I avoid it?

&gt; 
&gt; &gt; PerformanceTests/JSAir/util.js:170
&gt; &gt; +else if (preciseTime)
&gt; 
&gt; This should probably be &quot;if (this.preciseTime)&quot; otherwise you will get a
&gt; ReferenceError in environments that do not have `global.performance` and no
&gt; preciseTime global, which I bet would be the case in node/v8.

Oh right, I&apos;m in strict mode.  Fixed.

&gt; 
&gt; &gt; PerformanceTests/JSAir/util.js:173
&gt; &gt; +else
&gt; &gt; +    currentTime = function() { return 0 + new Date(); };
&gt; 
&gt; When I run this in the console I get:
&gt; 
&gt;     js&gt; (0 + new Date())
&gt;     &quot;0Tue Jun 07 2016 14:34:10 GMT-0700 (PDT)&quot;
&gt; 
&gt; You should probably just do:
&gt; 
&gt;     Date.now()
&gt; 
&gt; Or:
&gt; 
&gt;     +new Date

Fixed!

&gt; 
&gt; &gt; Source/JavaScriptCore/jsc.cpp:2007
&gt; &gt; +    if (nameValue.toWTFString(globalObject-&gt;globalExec()) == &quot;SyntaxError&quot;
&gt; 
&gt; Awesome!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200214</commentid>
    <comment_count>21</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-06-07 15:18:39 -0700</bug_when>
    <thetext>&gt; &gt; &gt; PerformanceTests/JSAir/util.js:34
&gt; &gt; &gt; +function addIndexed(list, cons, ...args)
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    let result = new cons(list.length, ...args);
&gt; &gt; 
&gt; &gt; You have this pattern in a few places. It reminds me of bug 158438.
&gt; 
&gt; Should I avoid it?

Keep it! I was hoping to give encouragement for someone to peek at the bug, which I&apos;m guessing this, and a few other places in this code that use this pattern, may be hitting. =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200283</commentid>
    <comment_count>22</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-07 18:35:00 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #14)
&gt; &gt; Comment on attachment 280735 [details]
&gt; &gt; the patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=280735&amp;action=review
&gt; &gt; 
&gt; &gt; I&apos;m not going to read every line, but LGTM
&gt; &gt; 
&gt; &gt; &gt; PerformanceTests/ChangeLog:21
&gt; &gt; &gt; +        - JSAir&apos;s largest hot function, which is anonymous, so we call it by its hash (ACLj8C).
&gt; &gt; 
&gt; &gt; Maybe it&apos;s worth giving the anonymous function a name?
&gt; 
&gt; I&apos;ll try to check this.  It&apos;s probably an arrow function.

Meh.  It&apos;s a really stupid closure:

function (arg, role, type, width) =&gt; {
            return arg.forEach(thing, role, type, width, func);
        }

It ends up being huge because we inline arg.forEach().

&gt; 
&gt; &gt; 
&gt; &gt; &gt; PerformanceTests/JSAir/benchmark.js:1
&gt; &gt; &gt; +&quot;use strict&quot;;
&gt; &gt; 
&gt; &gt; I think it&apos;s nicer for this to go after copyright. It&apos;s less likely to be
&gt; &gt; glanced over
&gt; &gt; Same goes for in all other files.
&gt; 
&gt; I wasn&apos;t sure if that worked or not.  I&apos;ll fix this.

Done.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; PerformanceTests/JSAir/opcode.js:736
&gt; &gt; &gt; +        break;
&gt; &gt; &gt; +        break;
&gt; &gt; 
&gt; &gt; Many duplicate breaks
&gt; 
&gt; Yeah, this is generated code.  The code generator isn&apos;t that smart.  It does
&gt; the same thing when generating C++ code, and we make the compiler happy by
&gt; wrapping the breaks inside some horror.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; PerformanceTests/JSAir/payload-gbemu-executeIteration.js:1
&gt; &gt; &gt; +&quot;use strict&quot;;
&gt; &gt; 
&gt; &gt; Should we generate a copyright?
&gt; 
&gt; Hmmm.  I don&apos;t know how to copyright it to.  I think that saying that it&apos;s
&gt; generated code conveys the right message.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/b3/air/AirDumpAsJS.h:37
&gt; &gt; &gt; +// This is a joke. Various operations on Air are interesting from a benchmarking standpoint. We can
&gt; &gt; 
&gt; &gt; &quot;This is a joke.&quot; =&gt; &quot;This is used for benchmarking.&quot;
&gt; 
&gt; Right. :-)

Fixed.

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WTF/wtf/PrintStream.h:75
&gt; &gt; &gt; +    void println(const Types&amp;... values)
&gt; &gt; 
&gt; &gt; I will actually use this a lot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200285</commentid>
    <comment_count>23</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-07 18:44:19 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/201783</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200828</commentid>
    <comment_count>24</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-06-09 07:42:22 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Landed in http://trac.webkit.org/changeset/201783

The new JSAir test made performance bots fail:

Running JSAir/test.html (76 of 152)
ERROR: layer at (0,0) size 800x600</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200881</commentid>
    <comment_count>25</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-09 10:32:28 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; Landed in http://trac.webkit.org/changeset/201783
&gt; 
&gt; The new JSAir test made performance bots fail:
&gt; 
&gt; Running JSAir/test.html (76 of 152)
&gt; ERROR: layer at (0,0) size 800x600

Why did the performance bots run this?  Are they just looking for every .html file in every directory?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200897</commentid>
    <comment_count>26</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-06-09 11:20:43 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; Landed in http://trac.webkit.org/changeset/201783
&gt; &gt; 
&gt; &gt; The new JSAir test made performance bots fail:
&gt; &gt; 
&gt; &gt; Running JSAir/test.html (76 of 152)
&gt; &gt; ERROR: layer at (0,0) size 800x600
&gt; 
&gt; Why did the performance bots run this?  Are they just looking for every
&gt; .html file in every directory?

Yes, it runs all tests in PerformanceTests directory, except ones in Skipped file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200921</commentid>
    <comment_count>27</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-09 12:23:40 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; (In reply to comment #24)
&gt; &gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; &gt; Landed in http://trac.webkit.org/changeset/201783
&gt; &gt; &gt; 
&gt; &gt; &gt; The new JSAir test made performance bots fail:
&gt; &gt; &gt; 
&gt; &gt; &gt; Running JSAir/test.html (76 of 152)
&gt; &gt; &gt; ERROR: layer at (0,0) size 800x600
&gt; &gt; 
&gt; &gt; Why did the performance bots run this?  Are they just looking for every
&gt; &gt; .html file in every directory?
&gt; 
&gt; Yes, it runs all tests in PerformanceTests directory, except ones in Skipped
&gt; file.

Should be fixed: http://trac.webkit.org/changeset/201878</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280369</attachid>
            <date>2016-06-02 14:41:23 -0700</date>
            <delta_ts>2016-06-02 15:20:15 -0700</delta_ts>
            <desc>gotta start by dumping Air to a JS data definition</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>6263</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkFpckR1bXBBc0pTLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCituYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisKK25hbWVzcGFjZSB7CisKK0NTdHJpbmcg
dmFyTmFtZUZvckJsb2NrQXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gdG9D
U3RyaW5nKCJiYiIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKEJhc2ljQmxvY2sqIGJs
b2NrKQoreworICAgIHJldHVybiB2YXJOYW1lRm9yQmxvY2tBdEluZGV4KGJsb2NrLT5pbmRleCgp
KTsKK30KKworQ1N0cmluZyB2YXJOYW1lRm9yU3RhY2tTbG90QXRJbmRleCh1bnNpZ25lZCBpbmRl
eCkKK3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKCJzbG90IiwgaW5kZXgpOworfQorCitDU3RyaW5n
IHZhck5hbWUoU3RhY2tTbG90KiBzbG90KQoreworICAgIHJldHVybiB2YXJOYW1lRm9yU3RhY2tT
bG90QXRJbmRleChzbG90LT5pbmRleCgpKTsKK30KKworQ1N0cmluZyB2YXJOYW1lRm9yVG1wV2l0
aFR5cGVBbmRJbmRleChBcmc6OlR5cGUgdHlwZSwgdW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0
dXJuIHRvQ1N0cmluZyh0eXBlID09IEFyZzo6RlAgPyAiZiIgOiAiIiwgInRtcCIsIGluZGV4KTsK
K30KKworQ1N0cmluZyB2YXJOYW1lKFRtcCB0bXApCit7CisgICAgcmV0dXJuIHZhck5hbWVGb3JU
bXBXaXRoVHlwZUFuZEluZGV4KEFyZyh0bXApLnR5cGUoKSwgaW5kZXgpOworfQorCit9IC8vIGFu
b255bW91cyBuYW1lc3BhY2UKKwordm9pZCBkdW1wQXNKUyhDb2RlJiBjb2RlLCBQcmludFN0cmVh
bSYgb3V0KQoreworICAgIG91dC5wcmludGxuKCJsZXQgY29kZSA9IG5ldyBDb2RlKCk7Iik7Cisg
ICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvZGUuc2l6ZSgpOyArK2kpCisgICAg
ICAgIG91dC5wcmludGxuKCJsZXQgIiwgdmFyTmFtZUZvckJsb2NrQXRJbmRleChpKSwgIiA9IGNv
ZGUuYWRkQmxvY2soKTsiKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY29k
ZS5zdGFja1Nsb3RzKCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgU3RhY2tTbG90KiBzbG90ID0g
Y29kZS5zdGFja1Nsb3RzKClbaV07CisgICAgICAgIGlmIChzbG90KQorICAgICAgICAgICAgb3V0
LnByaW50bG4oImxldCAiLCB2YXJOYW1lKHNsb3QpLCAiID0gY29kZS5hZGRTdGFja1Nsb3QoIiwg
c2xvdC0+Ynl0ZVNpemUoKSwgIiwgIiwgc2xvdC0+a2luZCgpLCAiKTsiKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgb3V0LnByaW50bG4oImNvZGUuYWRkU3RhY2tTbG90KDEsIFNwaWxsKTsi
KTsKKyAgICB9CisgICAgCisgICAgQXJnOjpmb3JFYWNoVHlwZSgKKyAgICAgICAgWyZdIChBcmc6
OlR5cGUgdHlwZSkgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gY29kZS5udW1UbXBz
KHR5cGUpOyBpLS07KSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oCisgICAgICAgICAg
ICAgICAgICAgICJsZXQgIiwgdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5kSW5kZXgodHlwZSwgaSks
ICIgPSBjb2RlLm5ld1RtcCgiLCB0eXBlLCAiKTsiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSk7CisgICAgCisgICAgb3V0LnByaW50bG4oImxldCBpbnN0OyIpOworICAgIAorICAgIGZvciAo
QmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGZvciAoRnJlcXVlbnRlZEJsb2Nr
IHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmlu
dGxuKAorICAgICAgICAgICAgICAgIHZhck5hbWUoYmxvY2spLCAiLnN1Y2Nlc3NvcnMuYXBwZW5k
KG5ldyBGcmVxdWVudGVkQmxvY2soIiwKKyAgICAgICAgICAgICAgICB2YXJOYW1lKHN1Y2Nlc3Nv
ci5ibG9jaygpKSwgIiwgIiwgc3VjY2Vzc29yLmZyZXF1ZW5jeSgpLCAiKSk7Iik7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIGZvciAoQmFzaWNCbG9jayogcHJlZGVjZXNzb3IgOiBibG9j
ay0+cHJlZGVjZXNzb3JzKCkpCisgICAgICAgICAgICBvdXQucHJpbnRsbih2YXJOYW1lKGJsb2Nr
KSwgIi5hZGRQcmVkZWNlc3NvcigiLCB2YXJOYW1lKHByZWRlY2Vzc29yKSwgIik7Iik7CisgICAg
ICAgIAorICAgICAgICBmb3IgKEluc3QmIGluc3QgOiAqYmxvY2spIHsKKyAgICAgICAgICAgIG91
dC5wcmludGxuKCJpbnN0ID0gbmV3IEluc3QoIiwgaW5zdC5vcGNvZGUsICIpOyIpOworICAgICAg
ICAgICAgaW5zdC5mb3JFYWNoQXJnKAorICAgICAgICAgICAgICAgIFsmXSAoQXJnJiBhcmcsIEFy
Zzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0aCkgeworICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRQorICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigi
aW5zdC5hcmdzLnB1c2gobmV3IEFyZygpKTsiKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIH0KK30KKworfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgorCisjZW5k
aWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJEdW1wQXNKUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyRHVtcEFzSlMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRHVtcEFzSlMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQWlyRHVt
cEFzSlNfaAorI2RlZmluZSBBaXJEdW1wQXNKU19oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisj
aW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeyBuYW1lc3BhY2UgQWlyIHsKKworY2xhc3MgQ29kZTsKKworLy8gVGhpcyBpcyBhIGpva2Uu
IFZhcmlvdXMgb3BlcmF0aW9ucyBvbiBBaXIgYXJlIGludGVyZXN0aW5nIGZyb20gYSBiZW5jaG1h
cmtpbmcgc3RhbmRwb2ludC4gV2UgY2FuCisvLyB3cml0ZSBzb21lIEFpciBwaGFzZXMgaW4gSlMg
YW5kIHRoZW4gdXNlIHRoYXQgdG8gYmVuY2htYXJrIEpTLgordm9pZCBkdW1wQXNKUyhDb2RlJiwg
UHJpbnRTdHJlYW0mKTsKKworfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgorCisjZW5k
aWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEFpckR1bXBBc0pTX2gKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280371</attachid>
            <date>2016-06-02 15:20:15 -0700</date>
            <delta_ts>2016-06-03 11:33:39 -0700</delta_ts>
            <desc>the C++ side may be written</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>17856</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDE2MTUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4MSw2ICsxOTgxLDggQEAKIAkJREMxN0U4MUExQzlD
OTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxI
ZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2
MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgw
MDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsg
fTsKKwkJREM0NTRCOEMxRDAwRTgyMjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNDU0QjhBMUQwMEU4MUYw
MDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi87IH07CisJCURDNDU0QjhEMUQwMEU4MjQwMDRD
MThBRiAvKiBBaXJEdW1wQXNKUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggKi87
IH07CiAJCURDNjA1QjVEMUNFMjZFQTAwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjU5MUNFMjZF
OTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCAqLzsgfTsKIAkJREM2MDVCNUUxQ0UyNkVB
MjAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVBMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2
ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
REM2MDVCNUYxQ0UyNkVBNTAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVCMUNFMjZFOTgwMDU5Mzcx
OCAvKiBQcm9maWxlclVJRC5jcHAgKi87IH07CkBAIC00MTkzLDYgKzQxOTUsOCBAQAogCQlEQzE3
RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENDYWxsSGVscGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCURDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElDU3RhdHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNjFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJQ1N0YXRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCURDNDU0QjhBMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNK
Uy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5j
cHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWlyRHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9B
aXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2
RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVy
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QTFDRTI2RTk4
MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBQcm9maWxlckV2ZW50Lmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlckV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQ
cm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9m
aWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC00ODE3LDYgKzQ4MjEsOCBAQAogCQkJCTBGRUM4NTUxMUJEQUNE
QzcwMDgwRkY3NCAvKiBBaXJDb2RlLmggKi8sCiAJCQkJMEY2MTgzMjIxQzQ1QkYwNzAwNzI0NTBC
IC8qIEFpckN1c3RvbS5jcHAgKi8sCiAJCQkJMEYxMEYxQTIxQzQyMEJGMDAwMUMwN0QyIC8qIEFp
ckN1c3RvbS5oICovLAorCQkJCURDNDU0QjhBMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNK
Uy5jcHAgKi8sCisJCQkJREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmgg
Ki8sCiAJCQkJMEY0NTcwMzYxQkU0NEM5MTAwNjJBNjI5IC8qIEFpckVsaW1pbmF0ZURlYWRDb2Rl
LmNwcCAqLywKIAkJCQkwRjQ1NzAzNzFCRTQ0QzkxMDA2MkE2MjkgLyogQWlyRWxpbWluYXRlRGVh
ZENvZGUuaCAqLywKIAkJCQkwRjYxODMyMzFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyRW1pdFNodWZm
bGUuY3BwICovLApAQCAtNzAxNiw2ICs3MDIyLDcgQEAKIAkJCQkwRkVDODUwNjFCREFDREFDMDA4
MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTA4MUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4
NTBBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM0
NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkVDODUwQzFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tdXRhdGl2aXR5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVDODUwRTFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDMyVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUM4NTEwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MDk4LDYgKzkxMDUsNyBAQAogCQkJCTE0MDU2NkQ2
MTA3RUMyNzEwMDVEQkM4RCAvKiBKU0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
NEEzOEY5MUM4RTEzREYwMDE5MDMxOCAvKiBTdXBlclNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25t
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNDU0QjhDMUQwMEU4MjIwMDRDMThBRiAvKiBB
aXJEdW1wQXNKUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlEMjEwN0VDMzc2MDA0MjdB
NDggLyogSlNHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwODUxODlC
MUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckR1bXBBc0pTLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MjEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBaXJEdW1wQXNKUy5oIgorCisjaWYgRU5BQkxF
KEIzX0pJVCkKKworI2luY2x1ZGUgIkFpckNvZGUuaCIKKyNpbmNsdWRlICJBaXJJbnN0SW5saW5l
cy5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisK
K25hbWVzcGFjZSB7CisKK0NTdHJpbmcgdmFyTmFtZUZvckJsb2NrQXRJbmRleCh1bnNpZ25lZCBp
bmRleCkKK3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKCJiYiIsIGluZGV4KTsKK30KKworQ1N0cmlu
ZyB2YXJOYW1lKEJhc2ljQmxvY2sqIGJsb2NrKQoreworICAgIHJldHVybiB2YXJOYW1lRm9yQmxv
Y2tBdEluZGV4KGJsb2NrLT5pbmRleCgpKTsKK30KKworQ1N0cmluZyB2YXJOYW1lRm9yU3RhY2tT
bG90QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKCJzbG90
IiwgaW5kZXgpOworfQorCitDU3RyaW5nIHZhck5hbWUoU3RhY2tTbG90KiBzbG90KQoreworICAg
IHJldHVybiB2YXJOYW1lRm9yU3RhY2tTbG90QXRJbmRleChzbG90LT5pbmRleCgpKTsKK30KKwor
Q1N0cmluZyB2YXJOYW1lKFJlZyByZWcpCit7CisgICAgcmV0dXJuIHRvQ1N0cmluZygiUmVnLiIs
IHJlZy5kZWJ1Z05hbWUoKSk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5k
SW5kZXgoQXJnOjpUeXBlIHR5cGUsIHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiB0b0NT
dHJpbmcodHlwZSA9PSBBcmc6OkZQID8gImYiIDogIiIsICJ0bXAiLCBpbmRleCk7Cit9CisKK0NT
dHJpbmcgdmFyTmFtZShUbXAgdG1wKQoreworICAgIGlmICh0bXAuaXNSZWcoKSkKKyAgICAgICAg
cmV0dXJuIHZhck5hbWUodG1wLnJlZygpKTsKKyAgICByZXR1cm4gdmFyTmFtZUZvclRtcFdpdGhU
eXBlQW5kSW5kZXgoQXJnKHRtcCkudHlwZSgpLCBpbmRleCk7Cit9CisKK30gLy8gYW5vbnltb3Vz
IG5hbWVzcGFjZQorCit2b2lkIGR1bXBBc0pTKENvZGUmIGNvZGUsIFByaW50U3RyZWFtJiBvdXQp
Cit7CisgICAgb3V0LnByaW50bG4oImxldCBjb2RlID0gbmV3IENvZGUoKTsiKTsKKyAgICAKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY29kZS5zaXplKCk7ICsraSkKKyAgICAgICAgb3V0
LnByaW50bG4oImxldCAiLCB2YXJOYW1lRm9yQmxvY2tBdEluZGV4KGkpLCAiID0gY29kZS5hZGRC
bG9jaygpOyIpOworICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2RlLnN0YWNr
U2xvdHMoKS5zaXplKCk7ICsraSkgeworICAgICAgICBTdGFja1Nsb3QqIHNsb3QgPSBjb2RlLnN0
YWNrU2xvdHMoKVtpXTsKKyAgICAgICAgaWYgKHNsb3QpCisgICAgICAgICAgICBvdXQucHJpbnRs
bigibGV0ICIsIHZhck5hbWUoc2xvdCksICIgPSBjb2RlLmFkZFN0YWNrU2xvdCgiLCBzbG90LT5i
eXRlU2l6ZSgpLCAiLCAiLCBzbG90LT5raW5kKCksICIpOyIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBvdXQucHJpbnRsbigiY29kZS5hZGRTdGFja1Nsb3QoMSwgU3BpbGwpOyIpOworICAg
IH0KKyAgICAKKyAgICBBcmc6OmZvckVhY2hUeXBlKAorICAgICAgICBbJl0gKEFyZzo6VHlwZSB0
eXBlKSB7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBjb2RlLm51bVRtcHModHlwZSk7
IGktLTspIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAg
ICAgImxldCAiLCB2YXJOYW1lRm9yVG1wV2l0aFR5cGVBbmRJbmRleCh0eXBlLCBpKSwgIiA9IGNv
ZGUubmV3VG1wKCIsIHR5cGUsICIpOyIpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICAKKyAgICBvdXQucHJpbnRsbigibGV0IGluc3Q7Iik7CisgICAgb3V0LnByaW50bG4oImxldCBh
cmc7Iik7CisgICAgCisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAg
ICAgZm9yIChGcmVxdWVudGVkQmxvY2sgc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvcnMoKSkg
eworICAgICAgICAgICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgdmFyTmFtZShibG9j
ayksICIuc3VjY2Vzc29ycy5hcHBlbmQobmV3IEZyZXF1ZW50ZWRCbG9jaygiLAorICAgICAgICAg
ICAgICAgIHZhck5hbWUoc3VjY2Vzc29yLmJsb2NrKCkpLCAiLCAiLCBzdWNjZXNzb3IuZnJlcXVl
bmN5KCksICIpKTsiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChCYXNpY0Js
b2NrKiBwcmVkZWNlc3NvciA6IGJsb2NrLT5wcmVkZWNlc3NvcnMoKSkKKyAgICAgICAgICAgIG91
dC5wcmludGxuKHZhck5hbWUoYmxvY2spLCAiLmFkZFByZWRlY2Vzc29yKCIsIHZhck5hbWUocHJl
ZGVjZXNzb3IpLCAiKTsiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoSW5zdCYgaW5zdCA6ICpi
bG9jaykgeworICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QgPSBuZXcgSW5zdCgiLCBpbnN0
Lm9wY29kZSwgIik7Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGluc3QuZm9yRWFjaEFy
ZygKKyAgICAgICAgICAgICAgICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpU
eXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNo
IChhcmcua2luZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpJbnZhbGlkOgor
ICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpUbXA6CisgICAgICAgICAgICAgICAgICAgICAg
ICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZVRtcCgiLCB2YXJOYW1lKGFyZy50bXAoKSks
ICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkltbToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlSW1tKCIsIGFyZy52YWx1
ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpCaWdJbW06CisgICAg
ICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSgi
LCBhcmcudmFsdWUoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6Qml0
SW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVh
dGVCaXRJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBBcmc6OkJpdEltbTY0OgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFy
ZyA9IEFyZy5jcmVhdGVCaXRJbW02NCgiLCBhcmcudmFsdWUoKSwgIik7Iik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgICAgICBjYXNlIEFyZzo6QWRkcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5w
cmludGxuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmcgPSBBcmcuY3JlYXRlQWRk
cigiLCB2YXJOYW1lKGFyZy5iYXNlKCkpLCAiLCAiLCBhcmcub2Zmc2V0KCksICIpOyIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlN0YWNrOgorICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZyA9IEFyZy5j
cmVhdGVTdGFjaygiLCBhcmcuc3RhY2tTbG90KCksICIsICIsIGFyZy5vZmZzZXQoKSwgIik7Iik7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6Q2FsbEFyZzoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygiLCBhcmcub2Zm
c2V0KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkluZGV4OgorICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImFyZyA9IEFyZy5jcmVhdGVJbmRleCgiLCB2YXJOYW1lKGFyZy5iYXNlKCkpLCAiLCAi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhck5hbWUoYXJnLmluZGV4KCkpLCAiLCAi
LCBhcmcuc2NhbGUoKSwgIiwgIiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQXJnOjpSZWxDb25kOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnBy
aW50bG4oImFyZyA9IEFyZy5jcmVhdGVSZWdDb25kKCIsIGFyZy5hc1JlbGF0aW9uYWxDb25kaXRp
b24oKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6UmVzQ29uZDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlUmVzQ29u
ZCgiLCBhcmcuYXNSZXN1bHRDb25kaXRpb24oKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICBjYXNlIEFyZzo6RG91YmxlQ29uZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmlu
dGxuKCJhcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZCgiLCBhcmcuYXNEb3VibGVDb25kaXRpb24o
KSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6U3BlY2lhbDoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEpTLUFpciBkb2Vzbid0IGhhdmUgU3BlY2lhbHMuCisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6V2lkdGhBcmc6CisgICAgICAgICAgICAgICAgICAg
ICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZVdpZHRoQXJnKCIsIGFyZy53aWR0aCgp
LCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcucm9sZSA9ICIsIHJv
bGUsICI7Iik7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcudHlwZSA9ICIs
IHR5cGUsICI7Iik7CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcud2lkdGgg
PSAiLCB3aWR0aCwgIjsiKTsKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3Qu
YXJncy5wdXNoKGFyZyk7Iik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGlmIChpbnN0Lm9wY29kZSA9PSBQYXRjaCkgeworICAgICAgICAgICAgICAgIG91
dC5wcmludGxuKCJpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gW107Iik7CisgICAgICAg
ICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gW107Iik7Cisg
ICAgICAgICAgICAgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncygpLmZvckVhY2goCisg
ICAgICAgICAgICAgICAgICAgIFsmXSAoUmVnIHJlZykgeworICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MucHVzaCgiLCB2YXJO
YW1lKHJlZyksICIpOyIpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncygpLmZvckVhY2goCisgICAgICAgICAgICAgICAgICAg
IFsmXSAoUmVnIHJlZykgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLnB1c2goIiwgdmFyTmFtZShyZWcpLCAiKTsiKTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIG91dC5wcmludGxuKHZhck5hbWUoYmxvY2spLCAiLmFwcGVuZChpbnN0KTsiKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKworfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgorCisjZW5k
aWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJEdW1wQXNKUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyRHVtcEFzSlMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRHVtcEFzSlMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQWlyRHVt
cEFzSlNfaAorI2RlZmluZSBBaXJEdW1wQXNKU19oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisj
aW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeyBuYW1lc3BhY2UgQWlyIHsKKworY2xhc3MgQ29kZTsKKworLy8gVGhpcyBpcyBhIGpva2Uu
IFZhcmlvdXMgb3BlcmF0aW9ucyBvbiBBaXIgYXJlIGludGVyZXN0aW5nIGZyb20gYSBiZW5jaG1h
cmtpbmcgc3RhbmRwb2ludC4gV2UgY2FuCisvLyB3cml0ZSBzb21lIEFpciBwaGFzZXMgaW4gSlMg
YW5kIHRoZW4gdXNlIHRoYXQgdG8gYmVuY2htYXJrIEpTLgordm9pZCBkdW1wQXNKUyhDb2RlJiwg
UHJpbnRTdHJlYW0mKTsKKworfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgorCisjZW5k
aWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEFpckR1bXBBc0pTX2gKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9u
IDIwMTYxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJBbGxvY2F0
ZVN0YWNrLmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgorI2luY2x1ZGUgIkFpckR1bXBBc0pTLmgi
CiAjaW5jbHVkZSAiQWlyRWxpbWluYXRlRGVhZENvZGUuaCIKICNpbmNsdWRlICJBaXJGaXhPYnZp
b3VzU3BpbGxzLmgiCiAjaW5jbHVkZSAiQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmgiCkBA
IC0xMDIsNiArMTAzLDExIEBAIHZvaWQgcHJlcGFyZUZvckdlbmVyYXRpb24oQ29kZSYgY29kZSkK
ICAgICAvLyBQcmlvciB0byB0aGlzIHBvaW50IHRoZSBwcm9sb2d1ZSBhbmQgZXBpbG9ndWUgaXMg
aW1wbGljaXQuIFRoaXMgbWFrZXMgaXQgZXhwbGljaXQuIEl0IGFsc28KICAgICAvLyBkb2VzIHRo
aW5ncyBsaWtlIGlkZW50aWZ5IHdoaWNoIGNhbGxlZS1zYXZlcyB3ZSdyZSB1c2luZyBhbmQgc2F2
ZXMgdGhlbS4KICAgICBoYW5kbGVDYWxsZWVTYXZlcyhjb2RlKTsKKyAgICAKKyAgICBpZiAoT3B0
aW9uczo6ZHVtcEFpckFzSlNCZWZvcmVBbGxvY2F0ZVN0YWNrKCkpIHsKKyAgICAgICAgZGF0YUxv
ZygiRHVtcGluZyBBaXIgYXMgSlMgYmVmb3JlIGFsbG9jYXRlU3RhY2s6XG4iKTsKKyAgICAgICAg
ZHVtcEFzSlMoY29kZSwgV1RGOjpkYXRhRmlsZSgpKTsKKyAgICB9CiAKICAgICAvLyBUaGlzIHR1
cm5zIGFsbCBTdGFjayBhbmQgQ2FsbEFyZyBBcmdzIGludG8gQWRkciBhcmdzIHRoYXQgdXNlIHRo
ZSBmcmFtZSBwb2ludGVyLiBJdCBkb2VzCiAgICAgLy8gdGhpcyBieSBmaXJzdC1maXQgYWxsb2Nh
dGluZyBzdGFjayBzbG90cy4gSXQgc2hvdWxkIGJlIHByZXR0eSBkYXJuIGNsb3NlIHRvIG9wdGlt
YWwsIHNvIHdlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuY3BwCShyZXZpc2lvbiAyMDE2
MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMzLDYgKzMzLDE1IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitjb25zdCBjaGFyKiBSZWc6OmRl
YnVnTmFtZSgpIGNvbnN0Cit7CisgICAgaWYgKCEqdGhpcykKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgaWYgKGlzR1BSKCkpCisgICAgICAgIHJldHVybiBHUFJJbmZvOjpkZWJ1Z05hbWUo
Z3ByKCkpOworICAgIHJldHVybiBGUFJJbmZvOjpkZWJ1Z05hbWUoZnByKCkpOworfQorCiB2b2lk
IFJlZzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIGlmICghKnRoaXMpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHJldmlzaW9uIDIwMTYxNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw2ICsxNzIsOCBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2luZGV4OwogICAgIH0KICAgICAKKyAgICBjb25z
dCBjaGFyKiBkZWJ1Z05hbWUoKSBjb25zdDsKKyAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJl
YW0mKSBjb25zdDsKIAogICAgIGNsYXNzIEFsbFJlZ3NJdGVyYWJsZSB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAyMDE2MTUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
Niw2ICszNjYsOCBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICB2KGJv
b2wsIGR1bXBNb2R1bGVMb2FkaW5nU3RhdGUsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KGJvb2wsIGV4cG9zZUludGVybmFsTW9kdWxlTG9hZGVyLCBmYWxzZSwgTm9ybWFsLCAiZXhw
b3NlIHRoZSBpbnRlcm5hbCBtb2R1bGUgbG9hZGVyIG9iamVjdCB0byB0aGUgZ2xvYmFsIHNwYWNl
IGZvciBkZWJ1Z2dpbmciKSBcCiAgICAgXAorICAgIHYoYm9vbCwgZHVtcEFpckFzSlNCZWZvcmVB
bGxvY2F0ZVN0YWNrLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCisgICAgXAogICAgIHYoYm9v
bCwgdXNlU3VwZXJTYW1wbGVyLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKQogCiBlbnVtIE9wdGlv
bkVxdWl2YWxlbmNlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280447</attachid>
            <date>2016-06-03 11:33:39 -0700</date>
            <delta_ts>2016-06-03 12:19:30 -0700</delta_ts>
            <desc>moar</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>70620</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2RlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBl
cmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2RlLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFu
Y2VUZXN0cy9KU0Fpci9vcGNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjA4IEBA
CisidXNlIHN0cmljdCI7CisvLyBHZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYiBmcm9t
IEphdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcyAtLSBkbyBub3QgZWRpdCEK
K2NvbnN0IE5vcCA9IFN5bWJvbCgiTm9wIik7Citjb25zdCBBZGQzMiA9IFN5bWJvbCgiQWRkMzIi
KTsKK2NvbnN0IEFkZDggPSBTeW1ib2woIkFkZDgiKTsKK2NvbnN0IEFkZDE2ID0gU3ltYm9sKCJB
ZGQxNiIpOworY29uc3QgQWRkNjQgPSBTeW1ib2woIkFkZDY0Iik7Citjb25zdCBBZGREb3VibGUg
PSBTeW1ib2woIkFkZERvdWJsZSIpOworY29uc3QgQWRkRmxvYXQgPSBTeW1ib2woIkFkZEZsb2F0
Iik7Citjb25zdCBTdWIzMiA9IFN5bWJvbCgiU3ViMzIiKTsKK2NvbnN0IFN1YjY0ID0gU3ltYm9s
KCJTdWI2NCIpOworY29uc3QgU3ViRG91YmxlID0gU3ltYm9sKCJTdWJEb3VibGUiKTsKK2NvbnN0
IFN1YkZsb2F0ID0gU3ltYm9sKCJTdWJGbG9hdCIpOworY29uc3QgTmVnMzIgPSBTeW1ib2woIk5l
ZzMyIik7Citjb25zdCBOZWc2NCA9IFN5bWJvbCgiTmVnNjQiKTsKK2NvbnN0IE5lZ2F0ZURvdWJs
ZSA9IFN5bWJvbCgiTmVnYXRlRG91YmxlIik7Citjb25zdCBNdWwzMiA9IFN5bWJvbCgiTXVsMzIi
KTsKK2NvbnN0IE11bDY0ID0gU3ltYm9sKCJNdWw2NCIpOworY29uc3QgTXVsdGlwbHlBZGQzMiA9
IFN5bWJvbCgiTXVsdGlwbHlBZGQzMiIpOworY29uc3QgTXVsdGlwbHlBZGQ2NCA9IFN5bWJvbCgi
TXVsdGlwbHlBZGQ2NCIpOworY29uc3QgTXVsdGlwbHlTdWIzMiA9IFN5bWJvbCgiTXVsdGlwbHlT
dWIzMiIpOworY29uc3QgTXVsdGlwbHlTdWI2NCA9IFN5bWJvbCgiTXVsdGlwbHlTdWI2NCIpOwor
Y29uc3QgTXVsdGlwbHlOZWczMiA9IFN5bWJvbCgiTXVsdGlwbHlOZWczMiIpOworY29uc3QgTXVs
dGlwbHlOZWc2NCA9IFN5bWJvbCgiTXVsdGlwbHlOZWc2NCIpOworY29uc3QgRGl2MzIgPSBTeW1i
b2woIkRpdjMyIik7Citjb25zdCBEaXY2NCA9IFN5bWJvbCgiRGl2NjQiKTsKK2NvbnN0IE11bERv
dWJsZSA9IFN5bWJvbCgiTXVsRG91YmxlIik7Citjb25zdCBNdWxGbG9hdCA9IFN5bWJvbCgiTXVs
RmxvYXQiKTsKK2NvbnN0IERpdkRvdWJsZSA9IFN5bWJvbCgiRGl2RG91YmxlIik7Citjb25zdCBE
aXZGbG9hdCA9IFN5bWJvbCgiRGl2RmxvYXQiKTsKK2NvbnN0IFg4NkNvbnZlcnRUb0RvdWJsZVdv
cmQzMiA9IFN5bWJvbCgiWDg2Q29udmVydFRvRG91YmxlV29yZDMyIik7Citjb25zdCBYODZDb252
ZXJ0VG9RdWFkV29yZDY0ID0gU3ltYm9sKCJYODZDb252ZXJ0VG9RdWFkV29yZDY0Iik7Citjb25z
dCBYODZEaXYzMiA9IFN5bWJvbCgiWDg2RGl2MzIiKTsKK2NvbnN0IFg4NkRpdjY0ID0gU3ltYm9s
KCJYODZEaXY2NCIpOworY29uc3QgTGVhID0gU3ltYm9sKCJMZWEiKTsKK2NvbnN0IEFuZDMyID0g
U3ltYm9sKCJBbmQzMiIpOworY29uc3QgQW5kNjQgPSBTeW1ib2woIkFuZDY0Iik7Citjb25zdCBB
bmREb3VibGUgPSBTeW1ib2woIkFuZERvdWJsZSIpOworY29uc3QgQW5kRmxvYXQgPSBTeW1ib2wo
IkFuZEZsb2F0Iik7Citjb25zdCBYb3JEb3VibGUgPSBTeW1ib2woIlhvckRvdWJsZSIpOworY29u
c3QgWG9yRmxvYXQgPSBTeW1ib2woIlhvckZsb2F0Iik7Citjb25zdCBMc2hpZnQzMiA9IFN5bWJv
bCgiTHNoaWZ0MzIiKTsKK2NvbnN0IExzaGlmdDY0ID0gU3ltYm9sKCJMc2hpZnQ2NCIpOworY29u
c3QgUnNoaWZ0MzIgPSBTeW1ib2woIlJzaGlmdDMyIik7Citjb25zdCBSc2hpZnQ2NCA9IFN5bWJv
bCgiUnNoaWZ0NjQiKTsKK2NvbnN0IFVyc2hpZnQzMiA9IFN5bWJvbCgiVXJzaGlmdDMyIik7Citj
b25zdCBVcnNoaWZ0NjQgPSBTeW1ib2woIlVyc2hpZnQ2NCIpOworY29uc3QgT3IzMiA9IFN5bWJv
bCgiT3IzMiIpOworY29uc3QgT3I2NCA9IFN5bWJvbCgiT3I2NCIpOworY29uc3QgWG9yMzIgPSBT
eW1ib2woIlhvcjMyIik7Citjb25zdCBYb3I2NCA9IFN5bWJvbCgiWG9yNjQiKTsKK2NvbnN0IE5v
dDMyID0gU3ltYm9sKCJOb3QzMiIpOworY29uc3QgTm90NjQgPSBTeW1ib2woIk5vdDY0Iik7Citj
b25zdCBBYnNEb3VibGUgPSBTeW1ib2woIkFic0RvdWJsZSIpOworY29uc3QgQWJzRmxvYXQgPSBT
eW1ib2woIkFic0Zsb2F0Iik7Citjb25zdCBDZWlsRG91YmxlID0gU3ltYm9sKCJDZWlsRG91Ymxl
Iik7Citjb25zdCBDZWlsRmxvYXQgPSBTeW1ib2woIkNlaWxGbG9hdCIpOworY29uc3QgRmxvb3JE
b3VibGUgPSBTeW1ib2woIkZsb29yRG91YmxlIik7Citjb25zdCBGbG9vckZsb2F0ID0gU3ltYm9s
KCJGbG9vckZsb2F0Iik7Citjb25zdCBTcXJ0RG91YmxlID0gU3ltYm9sKCJTcXJ0RG91YmxlIik7
Citjb25zdCBTcXJ0RmxvYXQgPSBTeW1ib2woIlNxcnRGbG9hdCIpOworY29uc3QgQ29udmVydElu
dDMyVG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRJbnQzMlRvRG91YmxlIik7Citjb25zdCBDb252
ZXJ0SW50NjRUb0RvdWJsZSA9IFN5bWJvbCgiQ29udmVydEludDY0VG9Eb3VibGUiKTsKK2NvbnN0
IENvbnZlcnRJbnQzMlRvRmxvYXQgPSBTeW1ib2woIkNvbnZlcnRJbnQzMlRvRmxvYXQiKTsKK2Nv
bnN0IENvbnZlcnRJbnQ2NFRvRmxvYXQgPSBTeW1ib2woIkNvbnZlcnRJbnQ2NFRvRmxvYXQiKTsK
K2NvbnN0IENvdW50TGVhZGluZ1plcm9zMzIgPSBTeW1ib2woIkNvdW50TGVhZGluZ1plcm9zMzIi
KTsKK2NvbnN0IENvdW50TGVhZGluZ1plcm9zNjQgPSBTeW1ib2woIkNvdW50TGVhZGluZ1plcm9z
NjQiKTsKK2NvbnN0IENvbnZlcnREb3VibGVUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0RG91Ymxl
VG9GbG9hdCIpOworY29uc3QgQ29udmVydEZsb2F0VG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRG
bG9hdFRvRG91YmxlIik7Citjb25zdCBNb3ZlID0gU3ltYm9sKCJNb3ZlIik7Citjb25zdCBTd2Fw
MzIgPSBTeW1ib2woIlN3YXAzMiIpOworY29uc3QgU3dhcDY0ID0gU3ltYm9sKCJTd2FwNjQiKTsK
K2NvbnN0IE1vdmUzMiA9IFN5bWJvbCgiTW92ZTMyIik7Citjb25zdCBTdG9yZVplcm8zMiA9IFN5
bWJvbCgiU3RvcmVaZXJvMzIiKTsKK2NvbnN0IFNpZ25FeHRlbmQzMlRvUHRyID0gU3ltYm9sKCJT
aWduRXh0ZW5kMzJUb1B0ciIpOworY29uc3QgWmVyb0V4dGVuZDhUbzMyID0gU3ltYm9sKCJaZXJv
RXh0ZW5kOFRvMzIiKTsKK2NvbnN0IFNpZ25FeHRlbmQ4VG8zMiA9IFN5bWJvbCgiU2lnbkV4dGVu
ZDhUbzMyIik7Citjb25zdCBaZXJvRXh0ZW5kMTZUbzMyID0gU3ltYm9sKCJaZXJvRXh0ZW5kMTZU
bzMyIik7Citjb25zdCBTaWduRXh0ZW5kMTZUbzMyID0gU3ltYm9sKCJTaWduRXh0ZW5kMTZUbzMy
Iik7Citjb25zdCBNb3ZlRmxvYXQgPSBTeW1ib2woIk1vdmVGbG9hdCIpOworY29uc3QgTW92ZURv
dWJsZSA9IFN5bWJvbCgiTW92ZURvdWJsZSIpOworY29uc3QgTW92ZVplcm9Ub0RvdWJsZSA9IFN5
bWJvbCgiTW92ZVplcm9Ub0RvdWJsZSIpOworY29uc3QgTW92ZTY0VG9Eb3VibGUgPSBTeW1ib2wo
Ik1vdmU2NFRvRG91YmxlIik7Citjb25zdCBNb3ZlMzJUb0Zsb2F0ID0gU3ltYm9sKCJNb3ZlMzJU
b0Zsb2F0Iik7Citjb25zdCBNb3ZlRG91YmxlVG82NCA9IFN5bWJvbCgiTW92ZURvdWJsZVRvNjQi
KTsKK2NvbnN0IE1vdmVGbG9hdFRvMzIgPSBTeW1ib2woIk1vdmVGbG9hdFRvMzIiKTsKK2NvbnN0
IExvYWQ4ID0gU3ltYm9sKCJMb2FkOCIpOworY29uc3QgU3RvcmU4ID0gU3ltYm9sKCJTdG9yZTgi
KTsKK2NvbnN0IExvYWQ4U2lnbmVkRXh0ZW5kVG8zMiA9IFN5bWJvbCgiTG9hZDhTaWduZWRFeHRl
bmRUbzMyIik7Citjb25zdCBMb2FkMTYgPSBTeW1ib2woIkxvYWQxNiIpOworY29uc3QgTG9hZDE2
U2lnbmVkRXh0ZW5kVG8zMiA9IFN5bWJvbCgiTG9hZDE2U2lnbmVkRXh0ZW5kVG8zMiIpOworY29u
c3QgU3RvcmUxNiA9IFN5bWJvbCgiU3RvcmUxNiIpOworY29uc3QgQ29tcGFyZTMyID0gU3ltYm9s
KCJDb21wYXJlMzIiKTsKK2NvbnN0IENvbXBhcmU2NCA9IFN5bWJvbCgiQ29tcGFyZTY0Iik7Citj
b25zdCBUZXN0MzIgPSBTeW1ib2woIlRlc3QzMiIpOworY29uc3QgVGVzdDY0ID0gU3ltYm9sKCJU
ZXN0NjQiKTsKK2NvbnN0IENvbXBhcmVEb3VibGUgPSBTeW1ib2woIkNvbXBhcmVEb3VibGUiKTsK
K2NvbnN0IENvbXBhcmVGbG9hdCA9IFN5bWJvbCgiQ29tcGFyZUZsb2F0Iik7Citjb25zdCBCcmFu
Y2g4ID0gU3ltYm9sKCJCcmFuY2g4Iik7Citjb25zdCBCcmFuY2gzMiA9IFN5bWJvbCgiQnJhbmNo
MzIiKTsKK2NvbnN0IEJyYW5jaDY0ID0gU3ltYm9sKCJCcmFuY2g2NCIpOworY29uc3QgQnJhbmNo
VGVzdDggPSBTeW1ib2woIkJyYW5jaFRlc3Q4Iik7Citjb25zdCBCcmFuY2hUZXN0MzIgPSBTeW1i
b2woIkJyYW5jaFRlc3QzMiIpOworY29uc3QgQnJhbmNoVGVzdDY0ID0gU3ltYm9sKCJCcmFuY2hU
ZXN0NjQiKTsKK2NvbnN0IEJyYW5jaERvdWJsZSA9IFN5bWJvbCgiQnJhbmNoRG91YmxlIik7Citj
b25zdCBCcmFuY2hGbG9hdCA9IFN5bWJvbCgiQnJhbmNoRmxvYXQiKTsKK2NvbnN0IEJyYW5jaEFk
ZDMyID0gU3ltYm9sKCJCcmFuY2hBZGQzMiIpOworY29uc3QgQnJhbmNoQWRkNjQgPSBTeW1ib2wo
IkJyYW5jaEFkZDY0Iik7Citjb25zdCBCcmFuY2hNdWwzMiA9IFN5bWJvbCgiQnJhbmNoTXVsMzIi
KTsKK2NvbnN0IEJyYW5jaE11bDY0ID0gU3ltYm9sKCJCcmFuY2hNdWw2NCIpOworY29uc3QgQnJh
bmNoU3ViMzIgPSBTeW1ib2woIkJyYW5jaFN1YjMyIik7Citjb25zdCBCcmFuY2hTdWI2NCA9IFN5
bWJvbCgiQnJhbmNoU3ViNjQiKTsKK2NvbnN0IEJyYW5jaE5lZzMyID0gU3ltYm9sKCJCcmFuY2hO
ZWczMiIpOworY29uc3QgQnJhbmNoTmVnNjQgPSBTeW1ib2woIkJyYW5jaE5lZzY0Iik7Citjb25z
dCBNb3ZlQ29uZGl0aW9uYWxseTMyID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseTMyIik7Citj
b25zdCBNb3ZlQ29uZGl0aW9uYWxseTY0ID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseTY0Iik7
Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseVRlc3QzMiA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFs
bHlUZXN0MzIiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5VGVzdDY0ID0gU3ltYm9sKCJNb3Zl
Q29uZGl0aW9uYWxseVRlc3Q2NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlEb3VibGUgPSBT
eW1ib2woIk1vdmVDb25kaXRpb25hbGx5RG91YmxlIik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxs
eUZsb2F0ID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseUZsb2F0Iik7Citjb25zdCBNb3ZlRG91
YmxlQ29uZGl0aW9uYWxseTMyID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTMyIik7
Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTY0ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29u
ZGl0aW9uYWxseTY0Iik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3QzMiA9IFN5
bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0MzIiKTsKK2NvbnN0IE1vdmVEb3VibGVD
b25kaXRpb25hbGx5VGVzdDY0ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2
NCIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlEb3VibGUgPSBTeW1ib2woIk1vdmVE
b3VibGVDb25kaXRpb25hbGx5RG91YmxlIik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxs
eUZsb2F0ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0Iik7Citjb25zdCBK
dW1wID0gU3ltYm9sKCJKdW1wIik7Citjb25zdCBSZXQzMiA9IFN5bWJvbCgiUmV0MzIiKTsKK2Nv
bnN0IFJldDY0ID0gU3ltYm9sKCJSZXQ2NCIpOworY29uc3QgUmV0RmxvYXQgPSBTeW1ib2woIlJl
dEZsb2F0Iik7Citjb25zdCBSZXREb3VibGUgPSBTeW1ib2woIlJldERvdWJsZSIpOworY29uc3Qg
T29wcyA9IFN5bWJvbCgiT29wcyIpOworY29uc3QgU2h1ZmZsZSA9IFN5bWJvbCgiU2h1ZmZsZSIp
OworY29uc3QgUGF0Y2ggPSBTeW1ib2woIlBhdGNoIik7Citjb25zdCBDQ2FsbCA9IFN5bWJvbCgi
Q0NhbGwiKTsKK2NvbnN0IENvbGRDQ2FsbCA9IFN5bWJvbCgiQ29sZENDYWxsIik7CitmdW5jdGlv
biBJbnN0X2ZvckVhY2hBcmcoaW5zdCwgZnVuYykKK3sKKyAgICBzd2l0Y2ggKGluc3Qub3Bjb2Rl
KSB7CisgICAgY2FzZSBOb3A6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkMzI6CisgICAg
ICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBZGQ4OgorICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZURlZiwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZDE2OgorICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCAxNik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QWRkNjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAg
ICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkRG91YmxlOgorICAg
ICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZEZsb2F0OgorICAgICAgICBzd2l0Y2gg
KGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBB
cmcuRGVmLCBGUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlRGVmLCBGUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFN1YjMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBH
UCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1YjY0OgorICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3ViRG91Ymxl
OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1YkZsb2F0OgorICAgICAgICBz
d2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE5lZzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmVnNjQ6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE5lZ2F0ZURvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVm
LCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bDMyOgorICAgICAgICBzd2l0
Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsNjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdz
Lmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5E
ZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92
ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTXVsdGlwbHlBZGQzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIp
OworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE11bHRpcGx5QWRkNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzNdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIE11bHRpcGx5U3ViMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBNdWx0aXBseVN1YjY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBN
dWx0aXBseU5lZzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNdWx0aXBseU5lZzY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBEaXYzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIp
OworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRGl2NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTXVsRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwg
NjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVm
LCBGUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVy
bG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE11bEZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAg
ICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgMzIpOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIERpdkRv
dWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXZGbG9hdDoKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYODZDb252ZXJ0VG9Eb3VibGVXb3JkMzI6Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgWDg2Q29udmVydFRvUXVhZFdvcmQ2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwg
NjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFg4NkRpdjMyOgorICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWDg2RGl2NjQ6CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMZWE6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlQWRkciwgR1AsIFB0cik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBbmQzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAg
ICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIp
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFu
ZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFuZERvdWJsZToKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmRGbG9hdDoKKyAgICAgICAgc3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LkRlZiwgRlAsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBYb3JEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxl
bmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCA2
NCk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYs
IEZQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJs
b2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgWG9yRmxvYXQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAs
IDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAg
IGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCAzMik7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTHNoaWZ0
MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMc2hpZnQ2NDoKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUnNoaWZ0MzI6CisgICAgICAgIHN3aXRjaCAo
aW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRo
cm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBSc2hpZnQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3Mu
bGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQ
LCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VE
ZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92
ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVXJzaGlmdDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsK
KyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAz
Mik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VXJzaGlmdDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAg
Y2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgY2Fz
ZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcjMyOgorICAg
ICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3I2NDoKKyAgICAgICAgc3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LkRlZiwgR1AsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBYb3IzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3Ro
KSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBH
UCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9h
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIFhvcjY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAg
Y2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vdDMyOgorICAg
ICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgMToKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOb3Q2NDoKKyAg
ICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGNhc2UgMToKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFic0RvdWJsZToK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEFic0Zsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMy
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ2VpbERvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBG
UCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENlaWxGbG9hdDoKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZsb29yRG91
YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgRmxvb3JGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNxcnREb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcXJ0RmxvYXQ6CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
b252ZXJ0SW50MzJUb0RvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRJbnQ2NFRvRG91YmxlOgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udmVy
dEludDMyVG9GbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAz
Mik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRJbnQ2NFRvRmxvYXQ6CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb3VudExlYWRpbmda
ZXJvczMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENvdW50TGVhZGluZ1plcm9zNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRl
ZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0RG91YmxlVG9GbG9h
dDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENvbnZlcnRGbG9hdFRvRG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQ
LCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZToKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLkRlZiwgR1AsIFB0cik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3dhcDMyOgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZURlZiwgR1AsIDMyKTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU3dhcDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZURlZiwgR1As
IDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZTMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVm
LCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JlWmVybzMyOgorICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBTaWduRXh0ZW5kMzJUb1B0cjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwg
UHRyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBaZXJvRXh0ZW5kOFRvMzI6CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTaWdu
RXh0ZW5kOFRvMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgOCk7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBaZXJvRXh0ZW5kMTZUbzMyOgorICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDE2KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5a
RGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNpZ25FeHRlbmQxNlRvMzI6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMTYpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTW92ZUZsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAs
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVm
LCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVaZXJvVG9Eb3VibGU6Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE1vdmU2NFRvRG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQ
LCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZTMyVG9GbG9hdDoKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVE
b3VibGVUbzY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTW92ZUZsb2F0VG8zMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBH
UCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQ4OgorICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmU4OgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExv
YWQ4U2lnbmVkRXh0ZW5kVG8zMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCA4KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQxNjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRl
ZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkMTZTaWduZWRFeHRlbmRU
bzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFN0b3JlMTY6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMTYpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIDE2KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wYXJlMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb21wYXJlNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1As
IDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBUZXN0MzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBUZXN0NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wYXJl
RG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sz
XSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcGFyZUZs
b2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwg
QXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoODoKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJd
LCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoMzI6Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
Ml0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoNjQ6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNo
VGVzdDg6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJy
YW5jaFRlc3QzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBCcmFuY2hUZXN0NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJhbmNoRG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJyYW5jaEZsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgMzIpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaEFkZDMyOgorICAgICAgICBzd2l0Y2ggKGlu
c3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBH
UCwgMzIpOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VaRGVmLCBH
UCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9h
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJyYW5jaEFkZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAg
ICAgICAgY2FzZSA0OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTXVsMzI6CisgICAg
ICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDQ6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sz
XSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuU2Ny
YXRjaCwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuU2NyYXRj
aCwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQi
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBCcmFuY2hNdWw2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZVpEZWYsIEdQLCA2NCk7CisgICAg
ICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuU2NyYXRjaCwgR1AsIDY0KTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuU2NyYXRjaCwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzVdLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hTdWIzMjoKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVz
ZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoU3ViNjQ6Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
Ml0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNo
TmVnMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQnJhbmNoTmVnNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYs
IEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHkzMjoK
KyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNToKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRd
LCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJd
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5V
c2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQ
LCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQLCBQdHIp
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1v
dmVDb25kaXRpb25hbGx5NjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgewor
ICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZURlZiwgR1AsIFB0cik7CisgICAgICAgIGNhc2Ug
NjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVd
LCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseVRlc3QzMjoKKyAgICAgICAgc3dpdGNo
IChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNl
LCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlRGVmLCBH
UCwgUHRyKTsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRpb25hbGx5
VGVzdDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2Fz
ZSA1OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbNF0sIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworICAgICAgICBjYXNlIDY6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sz
XSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJn
LlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwg
R1AsIFB0cik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJs
b2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdz
Lmxlbmd0aCkgeworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQ
LCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgR1AsIFB0cik7CisgICAgICAgIGNh
c2UgNToKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzRdLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseUZsb2F0OgorICAg
ICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA2OgorICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
M10sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFy
Zy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYs
IEdQLCBQdHIpOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZURlZiwgR1AsIFB0cik7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURv
dWJsZUNvbmRpdGlvbmFsbHkzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzRdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRl
ZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9u
YWxseTY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sz
XSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2Us
IEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDMyOgor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVz
ZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDY0OgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5RG91YmxlOgorICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwg
NjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1v
dmVEb3VibGVDb25kaXRpb25hbGx5RmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAs
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1s0XSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0s
IEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSnVtcDoKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBSZXQzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0NjQ6CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJldEZsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAs
IDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZXREb3VibGU6CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IE9vcHM6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2h1ZmZsZToKKyAgICAgICAgU2h1ZmZs
ZUN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFBhdGNoOgorICAgICAgICBQYXRjaEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENDYWxsOgorICAgICAgICBDQ2FsbEN1c3RvbS5mb3JFYWNo
QXJnKGluc3QsIGZ1bmMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbGRDQ2FsbDoKKyAg
ICAgICAgQ29sZENDYWxsQ3VzdG9tLmZvckVhY2hBcmcoaW5zdCwgZnVuYyk7CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHRocm93ICJCYWQgb3Bjb2RlIjsKKyAgICB9Cit9
CitmdW5jdGlvbiBJbnN0X2hhc05vbkFyZ0VmZmVjdHMoaW5zdCkKK3sKKyAgICBzd2l0Y2ggKGlu
c3Qub3Bjb2RlKSB7CisgICAgY2FzZSBCcmFuY2g4OgorICAgIGNhc2UgQnJhbmNoMzI6CisgICAg
Y2FzZSBCcmFuY2g2NDoKKyAgICBjYXNlIEJyYW5jaFRlc3Q4OgorICAgIGNhc2UgQnJhbmNoVGVz
dDMyOgorICAgIGNhc2UgQnJhbmNoVGVzdDY0OgorICAgIGNhc2UgQnJhbmNoRG91YmxlOgorICAg
IGNhc2UgQnJhbmNoRmxvYXQ6CisgICAgY2FzZSBCcmFuY2hBZGQzMjoKKyAgICBjYXNlIEJyYW5j
aEFkZDY0OgorICAgIGNhc2UgQnJhbmNoTXVsMzI6CisgICAgY2FzZSBCcmFuY2hNdWw2NDoKKyAg
ICBjYXNlIEJyYW5jaFN1YjMyOgorICAgIGNhc2UgQnJhbmNoU3ViNjQ6CisgICAgY2FzZSBCcmFu
Y2hOZWczMjoKKyAgICBjYXNlIEJyYW5jaE5lZzY0OgorICAgIGNhc2UgSnVtcDoKKyAgICBjYXNl
IFJldDMyOgorICAgIGNhc2UgUmV0NjQ6CisgICAgY2FzZSBSZXRGbG9hdDoKKyAgICBjYXNlIFJl
dERvdWJsZToKKyAgICBjYXNlIE9vcHM6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2Ug
U2h1ZmZsZToKKyAgICAgICAgcmV0dXJuIFNodWZmbGVDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJv
bEVmZmVjdHMoaW5zdCk7CisgICAgY2FzZSBQYXRjaDoKKyAgICAgICAgcmV0dXJuIFBhdGNoQ3Vz
dG9tLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOworICAgIGNhc2UgQ0NhbGw6Cisg
ICAgICAgIHJldHVybiBDQ2FsbEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0
KTsKKyAgICBjYXNlIENvbGRDQ2FsbDoKKyAgICAgICAgcmV0dXJuIENvbGRDQ2FsbEN1c3RvbS5o
YXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMJKHJldmlzaW9u
IDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3JlZy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDk4IEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKK2NsYXNzIFJlZyB7CisgICAgY29uc3RydWN0b3IoaW5kZXgsIHR5
cGUsIG5hbWUsIGlzQ2FsbGVlU2F2ZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5k
ZXg7CisgICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOworICAgICAgICB0aGlzLl9uYW1lID0gbmFt
ZTsKKyAgICAgICAgdGhpcy5faXNDYWxsZWVTYXZlID0gISFpc0NhbGxlZVNhdmU7CisgICAgfQor
ICAgIAorICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9CisgICAgZ2V0IHR5
cGUoKSB7IHJldHVybiB0aGlzLl90eXBlOyB9CisgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlz
Ll9uYW1lOyB9CisgICAgZ2V0IGlzQ2FsbGVlU2F2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzQ2FsbGVl
U2F2ZTsgfQorICAgIAorICAgIGdldCBpc0dQKCkgeyByZXR1cm4gdGhpcy5fdHlwZSA9PSBHUDsg
fQorICAgIGdldCBpc0ZQKCkgeyByZXR1cm4gdGhpcy5fdHlwZSA9PSBGUDsgfQorICAgIAorICAg
IHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiJSIgKyB0aGlzLl9uYW1lOworICAg
IH0KK30KKworeworICAgIFJlZy5yZWdzID0gW107CisgICAgZnVuY3Rpb24gbmV3UmVnKC4uLmFy
Z3MpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFJlZyguLi5hcmdzKTsKKyAgICAg
ICAgUmVnLnJlZ3MucHVzaChyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KworICAgIC8vIERlZmluZSBYODZfNjQgR1BScworICAgIHsKKyAgICAgICAgbGV0IGluZGV4ID0g
MDsKKyAgICAgICAgZnVuY3Rpb24gbmV3R1BSKG5hbWUsIGlzQ2FsbGVlU2F2ZSkgeyByZXR1cm4g
bmV3UmVnKGluZGV4KyssIEdQLCBuYW1lLCBpc0NhbGxlZVNhdmUpOyB9CisgICAgICAgIAorICAg
ICAgICBSZWcucmF4ID0gbmV3R1BSKCJyYXgiKTsKKyAgICAgICAgUmVnLnJjeCA9IG5ld0dQUigi
cmN4Iik7CisgICAgICAgIFJlZy5yZHggPSBuZXdHUFIoInJkeCIpOworICAgICAgICBSZWcucmJ4
ID0gbmV3R1BSKCJyYngiLCB0cnVlKTsKKyAgICAgICAgUmVnLnJzcCA9IG5ld0dQUigicnNwIik7
CisgICAgICAgIFJlZy5yYnAgPSBuZXdHUFIoInJicCIsIHRydWUpOworICAgICAgICBSZWcucnNp
ID0gbmV3R1BSKCJyc2kiKTsKKyAgICAgICAgUmVnLnJkaSA9IG5ld0dQUigicmRpIik7CisgICAg
ICAgIGZvciAobGV0IGkgPSA4OyBpIDw9IDE1OyArK2kpCisgICAgICAgICAgICBSZWdbInIiICsg
aV0gPSBuZXdHUFIoInIiICsgaSwgaSA+PSAxMik7CisgICAgfQorCisgICAgLy8gRGVmaW5lIFg4
Nl82NCBGUFJzLgorICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDE1OyArK2kpCisgICAgICAgIFJl
Z1sieG1tIiArIGldID0gbmV3UmVnKGksIEZQLCAieG1tIiArIGkpOworCisgICAgUmVnLmdwcnMg
PSBbXQorICAgIFJlZy5mcHJzID0gW10KKyAgICBSZWcuY2FsbGVlU2F2ZUdQUnMgPSBbXQorICAg
IFJlZy5jYWxsZWVTYXZlRlBScyA9IFtdCisgICAgUmVnLmNhbGxlZVNhdmVzID0gW10KKyAgICBm
b3IgKGxldCByZWcgb2YgUmVnLnJlZ3MpIHsKKyAgICAgICAgaWYgKHJlZy5pc0dQKSB7CisgICAg
ICAgICAgICBSZWcuZ3Bycy5wdXNoKHJlZyk7CisgICAgICAgICAgICBpZiAocmVnLmlzQ2FsbGVl
U2F2ZSkKKyAgICAgICAgICAgICAgICBSZWcuY2FsbGVlU2F2ZUdQUnMucHVzaChyZWcpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgUmVnLmZwcnMucHVzaChyZWcpOworICAgICAgICAg
ICAgaWYgKHJlZy5pc0NhbGxlZVNhdmUpCisgICAgICAgICAgICAgICAgUmVnLmNhbGxlZVNhdmVG
UFJTLnB1c2gocmVnKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2ZSkK
KyAgICAgICAgICAgIFJlZy5jYWxsZWVTYXZlcy5wdXNoKHJlZyk7CisgICAgfQorfQpJbmRleDog
UGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9zeW1ib2xzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvc3ltYm9scy5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVz
dHMvSlNBaXIvc3ltYm9scy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc1IEBACisidXNl
IHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
Ky8vIFRoaXMgZmlsZSBpcyBmb3IgbWlzYyBzeW1ib2xzLgorCisvLyBBcmcgdHlwZQorY29uc3Qg
R1AgPSBTeW1ib2woIkdQIik7Citjb25zdCBGUCA9IFN5bWJvbCgiRlAiKTsKKworLy8gU3RhY2sg
c2xvdCBraW5kCitjb25zdCBMb2NrZWQgPSBTeW1ib2woIkxvY2tlZCIpOworY29uc3QgU3BpbGwg
PSBTeW1ib2woIlNwaWxsIik7CisKKy8vIEZyZXF1ZW5jeSBjbGFzcworY29uc3QgTm9ybWFsID0g
U3ltYm9sKCJOb3JtYWwiKTsKK2NvbnN0IFJhcmUgPSBTeW1ib2woIlJhcmUiKTsKKworLy8gUmVs
YXRpb25hbCBjb25kaXRpb25zCitjb25zdCBFcXVhbCA9IFN5bWJvbCgiRXF1YWwiKTsKK2NvbnN0
IE5vdEVxdWFsID0gU3ltYm9sKCJOb3RFcXVhbCIpOworY29uc3QgQWJvdmUgPSBTeW1ib2woIkFi
b3ZlIik7Citjb25zdCBBYm92ZU9yRXF1YWwgPSBTeW1ib2woIkFib3ZlT3JFcXVhbCIpOworY29u
c3QgQmVsb3cgPSBTeW1ib2woIkJlbG93Iik7Citjb25zdCBCZWxvd09yRXF1YWwgPSBTeW1ib2wo
IkJlbG93T3JFcXVhbCIpOworY29uc3QgR3JlYXRlclRoYW4gPSBTeW1ib2woIkdyZWF0ZXJUaGFu
Iik7Citjb25zdCBHcmVhdGVyVGhhbk9yRXF1YWwgPSBTeW1ib2woIkdyZWF0ZXJUaGFuT3JFcXVh
bCIpOworY29uc3QgTGVzc1RoYW4gPSBTeW1ib2woIkxlc3NUaGFuIik7Citjb25zdCBMZXNzVGhh
bk9yRXF1YWwgPSBTeW1ib2woIkxlc3NUaGFuT3JFcXVhbCIpOworCisvLyBSZXN1bHQgY29uZGl0
aW9ucworY29uc3QgT3ZlcmZsb3cgPSBTeW1ib2woIk92ZXJmbG93Iik7Citjb25zdCBTaWduZWQg
PSBTeW1ib2woIlNpZ25lZCIpOworY29uc3QgUG9zaXRpdmVPclplcm8gPSBTeW1ib2woIlBvc2l0
aXZlT3JaZXJvIik7Citjb25zdCBaZXJvID0gU3ltYm9sKCJaZXJvIik7Citjb25zdCBOb25aZXJv
ID0gU3ltYm9sKCJOb25aZXJvIik7CisKKy8vIERvdWJsZSBjb25kaXRpb25zCitjb25zdCBEb3Vi
bGVFcXVhbCA9IFN5bWJvbCgiRG91YmxlRXF1YWwiKTsKK2NvbnN0IERvdWJsZU5vdEVxdWFsID0g
U3ltYm9sKCJEb3VibGVOb3RFcXVhbCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW4gPSBTeW1i
b2woIkRvdWJsZUdyZWF0ZXJUaGFuIik7Citjb25zdCBEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwg
PSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbCIpOworY29uc3QgRG91YmxlTGVzc1Ro
YW4gPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuIik7Citjb25zdCBEb3VibGVMZXNzVGhhbk9yRXF1
YWwgPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuT3JFcXVhbCIpOworY29uc3QgRG91YmxlRXF1YWxP
clVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlRXF1YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91
YmxlTm90RXF1YWxPclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlTm90RXF1YWxPclVub3JkZXJl
ZCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW5PclVub3JkZXJlZCA9IFN5bWJvbCgiRG91Ymxl
R3JlYXRlclRoYW5PclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW5PckVxdWFs
T3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbE9yVW5vcmRlcmVk
Iik7Citjb25zdCBEb3VibGVMZXNzVGhhbk9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVMZXNz
VGhhbk9yVW5vcmRlcmVkIik7Citjb25zdCBEb3VibGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJl
ZCA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQiKTsKKworLy8gRGVm
aW5lIHBvaW50ZXJUeXBlKCkKK2NvbnN0IFB0ciA9IDY0OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIwMTYxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTgxLDYgKzE5ODEsOCBAQAogCQlEQzE3RTgxQTFDOUM5MUU5MDA4QTZBQjMgLyogQ0NhbGxI
ZWxwZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDMTdFODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovOyB9OwogCQlE
QzIxNDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElD
U3RhdHMuaCAqLzsgfTsKIAkJREMyMTQzMDgxQ0EzMkU1ODAwMEE4ODY5IC8qIElDU3RhdHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDUx
Q0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICovOyB9OworCQlEQzQ1NEI4QzFEMDBFODIy
MDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pT
LmNwcCAqLzsgfTsKKwkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFE
MDBFODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVB
MDAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVy
RXZlbnQuY3BwICovOyB9OwogCQlEQzYwNUI1RTFDRTI2RUEyMDA1OTM3MTggLyogUHJvZmlsZXJF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2
MDVCNUExQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzYwNUI1RjFDRTI2RUE1MDA1OTM3
MTggLyogUHJvZmlsZXJVSUQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCAq
LzsgfTsKQEAgLTQxOTMsNiArNDE5NSw4IEBACiAJCURDMTdFODE2MUM5QzgwMkIwMDhBNkFCMyAv
KiBDQ2FsbEhlbHBlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q0NhbGxIZWxwZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDUx
Q0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSUNTdGF0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURD
MjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IElDU3RhdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM0
NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckR1bXBBc0pTLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJE
dW1wQXNKUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNDU0QjhCMUQwMEU4
MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBBaXJEdW1wQXNKUy5oOyBwYXRoID0gYjMvYWlyL0FpckR1bXBBc0pTLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxl
ckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVy
RXZlbnQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVBMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVyRXZlbnQuaDsg
cGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVyVUlELmNwcDsgcGF0aCA9IHBy
b2ZpbGVyL1Byb2ZpbGVyVUlELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4
MTcsNiArNDgyMSw4IEBACiAJCQkJMEZFQzg1NTExQkRBQ0RDNzAwODBGRjc0IC8qIEFpckNvZGUu
aCAqLywKIAkJCQkwRjYxODMyMjFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyQ3VzdG9tLmNwcCAqLywK
IAkJCQkwRjEwRjFBMjFDNDIwQkYwMDAxQzA3RDIgLyogQWlyQ3VzdG9tLmggKi8sCisJCQkJREM0
NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLywKKwkJCQlEQzQ1NEI4
QjFEMDBFODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLywKIAkJCQkwRjQ1NzAzNjFCRTQ0
QzkxMDA2MkE2MjkgLyogQWlyRWxpbWluYXRlRGVhZENvZGUuY3BwICovLAogCQkJCTBGNDU3MDM3
MUJFNDRDOTEwMDYyQTYyOSAvKiBBaXJFbGltaW5hdGVEZWFkQ29kZS5oICovLAogCQkJCTBGNjE4
MzIzMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJFbWl0U2h1ZmZsZS5jcHAgKi8sCkBAIC03MDE2LDYg
KzcwMjIsNyBAQAogCQkJCTBGRUM4NTA2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrU3BlY2lh
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hl
Y2tWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MEExQkRBQ0RBQzAwODBGRjc0IC8q
IEIzQ29tbW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlEQzQ1NEI4RDFEMDBFODI0MDA0QzE4QUYg
LyogQWlyRHVtcEFzSlMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBDMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0NvbW11dGF0aXZpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBFMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0MzJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
Qzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLywK
QEAgLTkwOTgsNiArOTEwNSw3IEBACiAJCQkJMTQwNTY2RDYxMDdFQzI3MTAwNURCQzhEIC8qIEpT
RnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0QTM4RjkxQzhFMTNERjAwMTkwMzE4
IC8qIFN1cGVyU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OTdFMDdBOTFCOEZDRkI5
MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJREM0NTRCOEMxRDAwRTgyMjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0N0YzOUQyMTA3RUMzNzYwMDQyN0E0OCAvKiBKU0dsb2JhbE9iamVjdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA4NTE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9i
YWxPYmplY3RDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVDM0ExQTUxOEMw
NDkwMjAwQzk1OTNBIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMu
Y3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1w
QXNKUy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFpckR1bXBBc0pTLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAi
QWlyQ29kZS5oIgorI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKKworbmFtZXNwYWNlIHsKKworQ1N0cmlu
ZyB2YXJOYW1lRm9yQmxvY2tBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiB0
b0NTdHJpbmcoImJiIiwgaW5kZXgpOworfQorCitDU3RyaW5nIHZhck5hbWUoQmFzaWNCbG9jayog
YmxvY2spCit7CisgICAgcmV0dXJuIHZhck5hbWVGb3JCbG9ja0F0SW5kZXgoYmxvY2stPmluZGV4
KCkpOworfQorCitDU3RyaW5nIHZhck5hbWVGb3JTdGFja1Nsb3RBdEluZGV4KHVuc2lnbmVkIGlu
ZGV4KQoreworICAgIHJldHVybiB0b0NTdHJpbmcoInNsb3QiLCBpbmRleCk7Cit9CisKK0NTdHJp
bmcgdmFyTmFtZShTdGFja1Nsb3QqIHNsb3QpCit7CisgICAgcmV0dXJuIHZhck5hbWVGb3JTdGFj
a1Nsb3RBdEluZGV4KHNsb3QtPmluZGV4KCkpOworfQorCitDU3RyaW5nIHZhck5hbWUoUmVnIHJl
ZykKK3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKCJSZWcuIiwgcmVnLmRlYnVnTmFtZSgpKTsKK30K
KworQ1N0cmluZyB2YXJOYW1lRm9yVG1wV2l0aFR5cGVBbmRJbmRleChBcmc6OlR5cGUgdHlwZSwg
dW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIHRvQ1N0cmluZyh0eXBlID09IEFyZzo6RlAg
PyAiZiIgOiAiIiwgInRtcCIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFRtcCB0bXAp
Cit7CisgICAgaWYgKHRtcC5pc1JlZygpKQorICAgICAgICByZXR1cm4gdmFyTmFtZSh0bXAucmVn
KCkpOworICAgIHJldHVybiB2YXJOYW1lRm9yVG1wV2l0aFR5cGVBbmRJbmRleChBcmcodG1wKS50
eXBlKCksIHRtcC50bXBJbmRleCgpKTsKK30KKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisK
K3ZvaWQgZHVtcEFzSlMoQ29kZSYgY29kZSwgUHJpbnRTdHJlYW0mIG91dCkKK3sKKyAgICBvdXQu
cHJpbnRsbigibGV0IGNvZGUgPSBuZXcgQ29kZSgpOyIpOworICAgIAorICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBjb2RlLnNpemUoKTsgKytpKQorICAgICAgICBvdXQucHJpbnRsbigibGV0
ICIsIHZhck5hbWVGb3JCbG9ja0F0SW5kZXgoaSksICIgPSBjb2RlLmFkZEJsb2NrKCk7Iik7Cisg
ICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvZGUuc3RhY2tTbG90cygpLnNpemUo
KTsgKytpKSB7CisgICAgICAgIFN0YWNrU2xvdCogc2xvdCA9IGNvZGUuc3RhY2tTbG90cygpW2ld
OworICAgICAgICBpZiAoc2xvdCkKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJsZXQgIiwgdmFy
TmFtZShzbG90KSwgIiA9IGNvZGUuYWRkU3RhY2tTbG90KCIsIHNsb3QtPmJ5dGVTaXplKCksICIs
ICIsIHNsb3QtPmtpbmQoKSwgIik7Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5w
cmludGxuKCJjb2RlLmFkZFN0YWNrU2xvdCgxLCBTcGlsbCk7Iik7CisgICAgfQorICAgIAorICAg
IEFyZzo6Zm9yRWFjaFR5cGUoCisgICAgICAgIFsmXSAoQXJnOjpUeXBlIHR5cGUpIHsKKyAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IGNvZGUubnVtVG1wcyh0eXBlKTsgaS0tOykgeworICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAibGV0ICIsIHZh
ck5hbWVGb3JUbXBXaXRoVHlwZUFuZEluZGV4KHR5cGUsIGkpLCAiID0gY29kZS5uZXdUbXAoIiwg
dHlwZSwgIik7Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIAorICAgIG91dC5w
cmludGxuKCJsZXQgaW5zdDsiKTsKKyAgICBvdXQucHJpbnRsbigibGV0IGFyZzsiKTsKKyAgICAK
KyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgeworICAgICAgICBmb3IgKEZyZXF1
ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICB2YXJOYW1lKGJsb2NrKSwgIi5zdWNjZXNz
b3JzLmFwcGVuZChuZXcgRnJlcXVlbnRlZEJsb2NrKCIsCisgICAgICAgICAgICAgICAgdmFyTmFt
ZShzdWNjZXNzb3IuYmxvY2soKSksICIsICIsIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSwgIikpOyIp
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHByZWRlY2Vz
c29yIDogYmxvY2stPnByZWRlY2Vzc29ycygpKQorICAgICAgICAgICAgb3V0LnByaW50bG4odmFy
TmFtZShibG9jayksICIuYWRkUHJlZGVjZXNzb3IoIiwgdmFyTmFtZShwcmVkZWNlc3NvciksICIp
OyIpOworICAgICAgICAKKyAgICAgICAgZm9yIChJbnN0JiBpbnN0IDogKmJsb2NrKSB7CisgICAg
ICAgICAgICBvdXQucHJpbnRsbigiaW5zdCA9IG5ldyBJbnN0KCIsIGluc3Qub3Bjb2RlLCAiKTsi
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKAorICAgICAgICAg
ICAgICAgIFsmXSAoQXJnJiBhcmcsIEFyZzo6Um9sZSwgQXJnOjpUeXBlLCBBcmc6OldpZHRoKSB7
CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYXJnLmtpbmQoKSkgeworICAgICAgICAgICAg
ICAgICAgICBjYXNlIEFyZzo6SW52YWxpZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6
VG1wOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVh
dGVUbXAoIiwgdmFyTmFtZShhcmcudG1wKCkpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
IGNhc2UgQXJnOjpJbW06CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJn
ID0gQXJnLmNyZWF0ZUltbSgiLCBhcmcudmFsdWUoKSwgIik7Iik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
ICAgICBjYXNlIEFyZzo6QmlnSW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50
bG4oImFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBBcmc6OkJpdEltbToKKyAgICAgICAgICAgICAgICAgICAgICAg
IG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlQml0SW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlQml0SW1tNjQoIiwgYXJn
LnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkFkZHI6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZUFkZHIoIiwgdmFyTmFtZShhcmcuYmFzZSgpKSwgIiwg
IiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpT
dGFjazoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJhcmcgPSBBcmcuY3JlYXRlU3RhY2soIiwgYXJnLnN0YWNrU2xvdCgp
LCAiLCAiLCBhcmcub2Zmc2V0KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBB
cmc6OkNhbGxBcmc6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0g
QXJnLmNyZWF0ZUNhbGxBcmcoIiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQXJnOjpJbmRleDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmlu
dGxuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmcgPSBBcmcuY3JlYXRlSW5kZXgo
IiwgdmFyTmFtZShhcmcuYmFzZSgpKSwgIiwgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YXJOYW1lKGFyZy5pbmRleCgpKSwgIiwgIiwgYXJnLnNjYWxlKCksICIsICIsIGFyZy5vZmZz
ZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6UmVsQ29uZDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlUmVnQ29u
ZCgiLCBhcmcuYXNSZWxhdGlvbmFsQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBBcmc6OlJlc0NvbmQ6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJp
bnRsbigiYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoIiwgYXJnLmFzUmVzdWx0Q29uZGl0aW9uKCks
ICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkRvdWJsZUNvbmQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNv
bmQoIiwgYXJnLmFzRG91YmxlQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBBcmc6OlNwZWNpYWw6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBKUy1BaXIg
ZG9lc24ndCBoYXZlIFNwZWNpYWxzLgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6Oldp
ZHRoQXJnOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5j
cmVhdGVXaWR0aEFyZygiLCBhcmcud2lkdGgoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuYXJncy5wdXNoKGFyZyk7Iik7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbnN0
Lm9wY29kZSA9PSBQYXRjaCkgeworICAgICAgICAgICAgICAgIGlmIChpbnN0Lmhhc05vbkFyZ0Vm
ZmVjdHMoKSkKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QucGF0Y2hIYXNO
b25BcmdFZmZlY3RzID0gdHJ1ZTsiKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBvdXQucHJpbnRsbigiaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IFtdOyIpOworICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IFtdOyIp
OworICAgICAgICAgICAgICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoKS5mb3JFYWNo
KAorICAgICAgICAgICAgICAgICAgICBbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG91dC5wcmludGxuKCJpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLnB1c2goIiwg
dmFyTmFtZShyZWcpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MoKS5mb3JFYWNoKAorICAgICAgICAgICAgICAg
ICAgICBbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxu
KCJpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5wdXNoKCIsIHZhck5hbWUocmVnKSwgIik7Iik7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgICAgICBvdXQucHJpbnRsbih2YXJOYW1lKGJsb2NrKSwgIi5hcHBlbmQoaW5zdCk7Iik7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK30gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKwor
I2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRHVtcEFzSlMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckR1bXBBc0pTLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckR1bXBBc0pTLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFp
ckR1bXBBc0pTX2gKKyNkZWZpbmUgQWlyRHVtcEFzSlNfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkK
KworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisKK2NsYXNzIENvZGU7CisKKy8vIFRoaXMgaXMgYSBq
b2tlLiBWYXJpb3VzIG9wZXJhdGlvbnMgb24gQWlyIGFyZSBpbnRlcmVzdGluZyBmcm9tIGEgYmVu
Y2htYXJraW5nIHN0YW5kcG9pbnQuIFdlIGNhbgorLy8gd3JpdGUgc29tZSBBaXIgcGhhc2VzIGlu
IEpTIGFuZCB0aGVuIHVzZSB0aGF0IHRvIGJlbmNobWFyayBKUy4KK3ZvaWQgZHVtcEFzSlMoQ29k
ZSYsIFByaW50U3RyZWFtJik7CisKK30gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKwor
I2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBBaXJEdW1wQXNKU19oCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShyZXZp
c2lvbiAyMDE2MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQWlyQWxs
b2NhdGVTdGFjay5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIKKyNpbmNsdWRlICJBaXJEdW1wQXNK
Uy5oIgogI2luY2x1ZGUgIkFpckVsaW1pbmF0ZURlYWRDb2RlLmgiCiAjaW5jbHVkZSAiQWlyRml4
T2J2aW91c1NwaWxscy5oIgogI2luY2x1ZGUgIkFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5o
IgpAQCAtMTAyLDYgKzEwMywxMSBAQCB2b2lkIHByZXBhcmVGb3JHZW5lcmF0aW9uKENvZGUmIGNv
ZGUpCiAgICAgLy8gUHJpb3IgdG8gdGhpcyBwb2ludCB0aGUgcHJvbG9ndWUgYW5kIGVwaWxvZ3Vl
IGlzIGltcGxpY2l0LiBUaGlzIG1ha2VzIGl0IGV4cGxpY2l0LiBJdCBhbHNvCiAgICAgLy8gZG9l
cyB0aGluZ3MgbGlrZSBpZGVudGlmeSB3aGljaCBjYWxsZWUtc2F2ZXMgd2UncmUgdXNpbmcgYW5k
IHNhdmVzIHRoZW0uCiAgICAgaGFuZGxlQ2FsbGVlU2F2ZXMoY29kZSk7CisgICAgCisgICAgaWYg
KE9wdGlvbnM6OmR1bXBBaXJBc0pTQmVmb3JlQWxsb2NhdGVTdGFjaygpKSB7CisgICAgICAgIGRh
dGFMb2coIkR1bXBpbmcgQWlyIGFzIEpTIGJlZm9yZSBhbGxvY2F0ZVN0YWNrOlxuIik7CisgICAg
ICAgIGR1bXBBc0pTKGNvZGUsIFdURjo6ZGF0YUZpbGUoKSk7CisgICAgfQogCiAgICAgLy8gVGhp
cyB0dXJucyBhbGwgU3RhY2sgYW5kIENhbGxBcmcgQXJncyBpbnRvIEFkZHIgYXJncyB0aGF0IHVz
ZSB0aGUgZnJhbWUgcG9pbnRlci4gSXQgZG9lcwogICAgIC8vIHRoaXMgYnkgZmlyc3QtZml0IGFs
bG9jYXRpbmcgc3RhY2sgc2xvdHMuIEl0IHNob3VsZCBiZSBwcmV0dHkgZGFybiBjbG9zZSB0byBv
cHRpbWFsLCBzbyB3ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVf
Z2VuZXJhdG9yLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
b3Bjb2RlX2dlbmVyYXRvci5yYgkocmV2aXNpb24gMjAxNjE1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xMDkw
LDMgKzEwOTAsOTQgQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgb3V0cC5wdXRz
ICJ9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyIgogfQogCisjIFRoaXMgaXMgYSBoYWNr
IGZvciBKU0Fpci4gSXQncyBhIGpva2UuCitGaWxlLm9wZW4oIkpTQWlyX29wY29kZS5qcyIsICJ3
IikgeworICAgIHwgb3V0cCB8CisgICAgb3V0cC5wdXRzICJcInVzZSBzdHJpY3RcIjsiCisgICAg
b3V0cC5wdXRzICIvLyBHZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYiBmcm9tICN7JGZp
bGVOYW1lfSAtLSBkbyBub3QgZWRpdCEiCisgICAgCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2gg
eworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIG91dHAucHV0cyAiY29uc3QgI3tvcGNvZGUu
bmFtZX0gPSBTeW1ib2woI3tvcGNvZGUubmFtZS5pbnNwZWN0fSk7IgorICAgIH0KKyAgICAKKyAg
ICBvdXRwLnB1dHMgImZ1bmN0aW9uIEluc3RfZm9yRWFjaEFyZyhpbnN0LCBmdW5jKSIKKyAgICBv
dXRwLnB1dHMgInsiCisgICAgb3V0cC5wdXRzICJzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7IgorICAg
ICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBvdXRw
LnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICBpZiBvcGNvZGUuY3VzdG9tCisg
ICAgICAgICAgICBvdXRwLnB1dHMgIiN7b3Bjb2RlLm5hbWV9Q3VzdG9tLmZvckVhY2hBcmcoaW5z
dCwgZnVuYyk7IgorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZWVkT3ZlcmxvYWRTd2l0Y2gg
PSBvcGNvZGUub3ZlcmxvYWRzLnNpemUgIT0gMQorICAgICAgICAgICAgb3V0cC5wdXRzICJzd2l0
Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsiIGlmIG5lZWRPdmVybG9hZFN3aXRjaAorICAgICAgICAg
ICAgb3Bjb2RlLm92ZXJsb2Fkcy5lYWNoIHsKKyAgICAgICAgICAgICAgICB8IG92ZXJsb2FkIHwK
KyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvdmVybG9hZC5zaWduYXR1cmUubGVu
Z3RofToiIGlmIG5lZWRPdmVybG9hZFN3aXRjaAorICAgICAgICAgICAgICAgIG92ZXJsb2FkLnNp
Z25hdHVyZS5lYWNoX3dpdGhfaW5kZXggeworICAgICAgICAgICAgICAgICAgICB8IGFyZywgaW5k
ZXggfAorICAgICAgICAgICAgICAgICAgICByb2xlID0gbmlsCisgICAgICAgICAgICAgICAgICAg
IGNhc2UgYXJnLnJvbGUKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiVSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJvbGUgPSAiVXNlIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJEIgor
ICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJEZWYiCisgICAgICAgICAgICAgICAgICAg
IHdoZW4gIlpEIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJaRGVmIgorICAgICAg
ICAgICAgICAgICAgICB3aGVuICJVRCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAi
VXNlRGVmIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJVWkQiCisgICAgICAgICAgICAgICAg
ICAgICAgICByb2xlID0gIlVzZVpEZWYiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlVBIgor
ICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJVc2VBZGRyIgorICAgICAgICAgICAgICAg
ICAgICB3aGVuICJTIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJTY3JhdGNoIgor
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQor
ICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgICAgIG91dHAucHV0cyAiZnVuYyhpbnN0LmFyZ3NbI3tpbmRleH1dLCBBcmcuI3tyb2xl
fSwgI3thcmcudHlwZX1QLCAje2FyZy53aWR0aH0pOyIKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBpZiBuZWVkT3ZlcmxvYWRTd2l0Y2gKKyAgICAgICAgICAg
ICAgICBvdXRwLnB1dHMgImRlZmF1bHQ6IgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAidGhy
b3cgXCJCYWQgb3ZlcmxvYWRcIjsiCisgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJicmVhazsi
CisgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJ9IgorICAgICAgICAgICAgZW5kCisgICAgICAg
IGVuZAorICAgICAgICBvdXRwLnB1dHMgImJyZWFrOyIKKyAgICB9CisgICAgb3V0cC5wdXRzICJk
ZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInRocm93IFwiQmFkIG9wY29kZVwiOyIKKyAgICBvdXRw
LnB1dHMgIn0iCisgICAgb3V0cC5wdXRzICJ9IgorICAgIAorICAgIG91dHAucHV0cyAiZnVuY3Rp
b24gSW5zdF9oYXNOb25BcmdFZmZlY3RzKGluc3QpIgorICAgIG91dHAucHV0cyAieyIKKyAgICBv
dXRwLnB1dHMgInN3aXRjaCAoaW5zdC5vcGNvZGUpIHsiCisgICAgZm91bmRUcnVlID0gZmFsc2UK
KyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwKKyAgICAgICAg
aWYgb3Bjb2RlLmF0dHJpYnV0ZXNbOnRlcm1pbmFsXSBvciBvcGNvZGUuYXR0cmlidXRlc1s6ZWZm
ZWN0c10KKyAgICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAg
ICAgICAgICBmb3VuZFRydWUgPSB0cnVlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBpZiBmb3Vu
ZFRydWUKKyAgICAgICAgb3V0cC5wdXRzICJyZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisgICAgJG9w
Y29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29k
ZS5jdXN0b20KKyAgICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisg
ICAgICAgICAgICBvdXRwLnB1dHMgInJldHVybiAje29wY29kZS5uYW1lfUN1c3RvbS5oYXNOb25B
cmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsiCisgICAgICAgIGVuZAorICAgIH0KKyAgICBvdXRw
LnB1dHMgImRlZmF1bHQ6IgorICAgIG91dHAucHV0cyAicmV0dXJuIGZhbHNlOyIKKyAgICBvdXRw
LnB1dHMgIn0iCisgICAgb3V0cC5wdXRzICJ9IgorfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZWcuY3BwCShyZXZpc2lvbiAyMDE2MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1JlZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDE1IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCitjb25zdCBjaGFyKiBSZWc6OmRlYnVnTmFtZSgpIGNvbnN0Cit7CisgICAgaWYgKCEqdGhp
cykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlzR1BSKCkpCisgICAgICAgIHJl
dHVybiBHUFJJbmZvOjpkZWJ1Z05hbWUoZ3ByKCkpOworICAgIHJldHVybiBGUFJJbmZvOjpkZWJ1
Z05hbWUoZnByKCkpOworfQorCiB2b2lkIFJlZzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25z
dAogewogICAgIGlmICghKnRoaXMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Jl
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHJldmlz
aW9uIDIwMTYxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE3Miw2ICsxNzIsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2luZGV4
OwogICAgIH0KICAgICAKKyAgICBjb25zdCBjaGFyKiBkZWJ1Z05hbWUoKSBjb25zdDsKKyAgICAK
ICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKIAogICAgIGNsYXNzIEFsbFJlZ3NJ
dGVyYWJsZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShy
ZXZpc2lvbiAyMDE2MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2Niw2ICszNjYsOCBAQCB0eXBlZGVmIGNvbnN0IGNoYXIq
IG9wdGlvblN0cmluZzsKICAgICB2KGJvb2wsIGR1bXBNb2R1bGVMb2FkaW5nU3RhdGUsIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGV4cG9zZUludGVybmFsTW9kdWxlTG9h
ZGVyLCBmYWxzZSwgTm9ybWFsLCAiZXhwb3NlIHRoZSBpbnRlcm5hbCBtb2R1bGUgbG9hZGVyIG9i
amVjdCB0byB0aGUgZ2xvYmFsIHNwYWNlIGZvciBkZWJ1Z2dpbmciKSBcCiAgICAgXAorICAgIHYo
Ym9vbCwgZHVtcEFpckFzSlNCZWZvcmVBbGxvY2F0ZVN0YWNrLCBmYWxzZSwgTm9ybWFsLCBudWxs
cHRyKSBcCisgICAgXAogICAgIHYoYm9vbCwgdXNlU3VwZXJTYW1wbGVyLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKQogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL1ByaW50U3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUHJpbnRTdHJl
YW0uaAkocmV2aXNpb24gMjAxNjE1KQorKysgU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaAko
d29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsMTMgQEAgcHVibGljOgogICAgICAgICBwcmludElu
dGVybmFsKCp0aGlzLCB2YWx1ZSk7CiAgICAgICAgIHByaW50KHJlbWFpbmluZ1ZhbHVlcy4uLik7
CiAgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgorICAgIHZvaWQg
cHJpbnRsbihjb25zdCBUeXBlcyYuLi4gdmFsdWVzKQorICAgIHsKKyAgICAgICAgcHJpbnQodmFs
dWVzLi4uKTsKKyAgICAgICAgcHJpbnQoIlxuIik7CisgICAgfQogfTsKIAogV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIGNvbnN0IGNoYXIqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280452</attachid>
            <date>2016-06-03 12:19:30 -0700</date>
            <delta_ts>2016-06-03 13:22:20 -0700</delta_ts>
            <desc>so much fun</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>81330</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9hcmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNjkgQEAKKyJ1c2Ugc3Ry
aWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xh
c3MgQXJnIHsKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICB0aGlzLl9raW5kID0g
SW52YWxpZDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzQW55VXNlKHJvbGUpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBj
YXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2Ug
QXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJn
LkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoK
KyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyAiQmFkIHJvbGUiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0Nv
bGRVc2Uocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNl
IEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLlVz
ZURlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVz
ZToKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAg
ICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICBj
YXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgcm9sZSI7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgCisgICAgc3RhdGljIGlzV2FybVVzZShyb2xlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFy
Zy5pc0FueVVzZShyb2xlKSAmJiAhQXJnLmlzQ29sZFVzZShyb2xlKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgaXNFYXJseVVzZShyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7Cisg
ICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAg
Y2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRl
ZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToK
KyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6
CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCByb2xlIjsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNMYXRlVXNlKHJvbGUpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2Fz
ZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBB
cmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpE
ZWY6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAg
ICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIHJvbGUiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0FueURlZihy
b2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLlVz
ZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoK
KyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAg
ICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNl
IEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBB
cmcuU2NyYXRjaDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgIkJhZCByb2xlIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgaXNFYXJseURlZihyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7
CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAg
ICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAg
Y2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJn
LlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVD
b2xkVXNlOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFyZy5FYXJs
eURlZjoKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCByb2xlIjsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNMYXRlRGVmKHJvbGUpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNl
IEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFy
Zy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBBcmcu
U2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVm
OgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyAiQmFkIHJvbGUiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc1pEZWYo
cm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5V
c2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6
CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAg
ICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAg
Y2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2Ug
QXJnLlVzZVpEZWY6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93ICJCYWQgcm9sZSI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisg
ICAgc3RhdGljIGNvbnNlcnZhdGl2ZVdpZHRoKHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4g
dHlwZSA9PSBHUCA/IFB0ciA6IDY0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgbWluaW11bVdp
ZHRoKHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBHUCA/IDggOiAzMjsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIGJ5dGVzKHdpZHRoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHdpZHRoIC8gODsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHdpZHRoRm9yQnl0ZXMoYnl0ZXMp
CisgICAgeworICAgICAgICBzd2l0Y2ggKGJ5dGVzKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIDg7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIHJldHVybiAxNjsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICBjYXNlIDQ6CisgICAg
ICAgICAgICByZXR1cm4gMzI7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoYnl0
ZXMgPiA4KQorICAgICAgICAgICAgICAgIHRocm93ICJCYWQgbnVtYmVyIG9mIGJ5dGVzIjsKKyAg
ICAgICAgICAgIHJldHVybiA2NDsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQXJnIGtpbmRz
CitBcmcuSW52YWxpZCA9IFN5bWJvbCgiSW52YWxpZCIpOworQXJnLlRtcCA9IFN5bWJvbCgiVG1w
Iik7CitBcmcuSW1tID0gU3ltYm9sKCJJbW0iKTsKK0FyZy5CaWdJbW0gPSBTeW1ib2woIkJpZ0lt
bSIpOworQXJnLkJpdEltbSA9IFN5bWJvbCgiQml0SW1tIik7CitBcmcuQml0SW1tNjQgPSBTeW1i
b2woIkJpdEltbTY0Iik7CitBcmcuQWRkciA9IFN5bWJvbCgiQWRkciIpOworQXJnLlN0YWNrID0g
U3ltYm9sKCJTdGFjayIpOworQXJnLkNhbGxBcmcgPSBTeW1ib2woIkNhbGxBcmciKTsKK0FyZy5J
bmRleCA9IFN5bWJvbCgiSW5kZXgiKTsKK0FyZy5SZWxDb25kID0gU3ltYm9sKCJSZWxDb25kIik7
CitBcmcuUmVzQ29uZCA9IFN5bWJvbCgiUmVzQ29uZCIpOworQXJnLkRvdWJsZUNvbmQgPSBTeW1i
b2woIkRvdWJsZUNvbmQiKTsKK0FyZy5TcGVjaWFsID0gU3ltYm9sKCJTcGVjaWFsIik7CitBcmcu
V2lkdGhBcmcgPSBTeW1ib2woIldpZHRoQXJnIik7CisKKy8vIEFyZyByb2xlcworQXJnLlVzZSA9
IFN5bWJvbCgiVXNlIik7CitBcmcuQ29sZFVzZSA9IFN5bWJvbCgiQ29sZFVzZSIpOworQXJnLkxh
dGVVc2UgPSBTeW1ib2woIkxhdGVVc2UiKTsKK0FyZy5MYXRlQ29sZFVzZSA9IFN5bWJvbCgiTGF0
ZUNvbGRVc2UiKTsKK0FyZy5EZWYgPSBTeW1ib2woIkRlZiIpOworQXJnLlpEZWYgPSBTeW1ib2wo
IlpEZWYiKTsKK0FyZy5Vc2VEZWYgPSBTeW1ib2woIlVzZURlZiIpOworQXJnLlVzZVpEZWYgPSBT
eW1ib2woIlVzZVpEZWYiKTsKK0FyZy5FYXJseURlZiA9IFN5bWJvbCgiRWFybHlEZWYiKTsKK0Fy
Zy5TY3JhdGNoID0gU3ltYm9sKCJTY3JhdGNoIik7CitBcmcuVXNlQWRkciA9IFN5bWJvbCgiVXNl
QWRkciIpOworCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL29wY29kZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL29wY29kZS5qcwkocmV2aXNpb24gMCkKKysr
IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTIwOCBAQAorInVzZSBzdHJpY3QiOworLy8gR2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0
b3IucmIgZnJvbSBKYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgLS0gZG8g
bm90IGVkaXQhCitjb25zdCBOb3AgPSBTeW1ib2woIk5vcCIpOworY29uc3QgQWRkMzIgPSBTeW1i
b2woIkFkZDMyIik7Citjb25zdCBBZGQ4ID0gU3ltYm9sKCJBZGQ4Iik7Citjb25zdCBBZGQxNiA9
IFN5bWJvbCgiQWRkMTYiKTsKK2NvbnN0IEFkZDY0ID0gU3ltYm9sKCJBZGQ2NCIpOworY29uc3Qg
QWRkRG91YmxlID0gU3ltYm9sKCJBZGREb3VibGUiKTsKK2NvbnN0IEFkZEZsb2F0ID0gU3ltYm9s
KCJBZGRGbG9hdCIpOworY29uc3QgU3ViMzIgPSBTeW1ib2woIlN1YjMyIik7Citjb25zdCBTdWI2
NCA9IFN5bWJvbCgiU3ViNjQiKTsKK2NvbnN0IFN1YkRvdWJsZSA9IFN5bWJvbCgiU3ViRG91Ymxl
Iik7Citjb25zdCBTdWJGbG9hdCA9IFN5bWJvbCgiU3ViRmxvYXQiKTsKK2NvbnN0IE5lZzMyID0g
U3ltYm9sKCJOZWczMiIpOworY29uc3QgTmVnNjQgPSBTeW1ib2woIk5lZzY0Iik7Citjb25zdCBO
ZWdhdGVEb3VibGUgPSBTeW1ib2woIk5lZ2F0ZURvdWJsZSIpOworY29uc3QgTXVsMzIgPSBTeW1i
b2woIk11bDMyIik7Citjb25zdCBNdWw2NCA9IFN5bWJvbCgiTXVsNjQiKTsKK2NvbnN0IE11bHRp
cGx5QWRkMzIgPSBTeW1ib2woIk11bHRpcGx5QWRkMzIiKTsKK2NvbnN0IE11bHRpcGx5QWRkNjQg
PSBTeW1ib2woIk11bHRpcGx5QWRkNjQiKTsKK2NvbnN0IE11bHRpcGx5U3ViMzIgPSBTeW1ib2wo
Ik11bHRpcGx5U3ViMzIiKTsKK2NvbnN0IE11bHRpcGx5U3ViNjQgPSBTeW1ib2woIk11bHRpcGx5
U3ViNjQiKTsKK2NvbnN0IE11bHRpcGx5TmVnMzIgPSBTeW1ib2woIk11bHRpcGx5TmVnMzIiKTsK
K2NvbnN0IE11bHRpcGx5TmVnNjQgPSBTeW1ib2woIk11bHRpcGx5TmVnNjQiKTsKK2NvbnN0IERp
djMyID0gU3ltYm9sKCJEaXYzMiIpOworY29uc3QgRGl2NjQgPSBTeW1ib2woIkRpdjY0Iik7Citj
b25zdCBNdWxEb3VibGUgPSBTeW1ib2woIk11bERvdWJsZSIpOworY29uc3QgTXVsRmxvYXQgPSBT
eW1ib2woIk11bEZsb2F0Iik7Citjb25zdCBEaXZEb3VibGUgPSBTeW1ib2woIkRpdkRvdWJsZSIp
OworY29uc3QgRGl2RmxvYXQgPSBTeW1ib2woIkRpdkZsb2F0Iik7Citjb25zdCBYODZDb252ZXJ0
VG9Eb3VibGVXb3JkMzIgPSBTeW1ib2woIlg4NkNvbnZlcnRUb0RvdWJsZVdvcmQzMiIpOworY29u
c3QgWDg2Q29udmVydFRvUXVhZFdvcmQ2NCA9IFN5bWJvbCgiWDg2Q29udmVydFRvUXVhZFdvcmQ2
NCIpOworY29uc3QgWDg2RGl2MzIgPSBTeW1ib2woIlg4NkRpdjMyIik7Citjb25zdCBYODZEaXY2
NCA9IFN5bWJvbCgiWDg2RGl2NjQiKTsKK2NvbnN0IExlYSA9IFN5bWJvbCgiTGVhIik7Citjb25z
dCBBbmQzMiA9IFN5bWJvbCgiQW5kMzIiKTsKK2NvbnN0IEFuZDY0ID0gU3ltYm9sKCJBbmQ2NCIp
OworY29uc3QgQW5kRG91YmxlID0gU3ltYm9sKCJBbmREb3VibGUiKTsKK2NvbnN0IEFuZEZsb2F0
ID0gU3ltYm9sKCJBbmRGbG9hdCIpOworY29uc3QgWG9yRG91YmxlID0gU3ltYm9sKCJYb3JEb3Vi
bGUiKTsKK2NvbnN0IFhvckZsb2F0ID0gU3ltYm9sKCJYb3JGbG9hdCIpOworY29uc3QgTHNoaWZ0
MzIgPSBTeW1ib2woIkxzaGlmdDMyIik7Citjb25zdCBMc2hpZnQ2NCA9IFN5bWJvbCgiTHNoaWZ0
NjQiKTsKK2NvbnN0IFJzaGlmdDMyID0gU3ltYm9sKCJSc2hpZnQzMiIpOworY29uc3QgUnNoaWZ0
NjQgPSBTeW1ib2woIlJzaGlmdDY0Iik7Citjb25zdCBVcnNoaWZ0MzIgPSBTeW1ib2woIlVyc2hp
ZnQzMiIpOworY29uc3QgVXJzaGlmdDY0ID0gU3ltYm9sKCJVcnNoaWZ0NjQiKTsKK2NvbnN0IE9y
MzIgPSBTeW1ib2woIk9yMzIiKTsKK2NvbnN0IE9yNjQgPSBTeW1ib2woIk9yNjQiKTsKK2NvbnN0
IFhvcjMyID0gU3ltYm9sKCJYb3IzMiIpOworY29uc3QgWG9yNjQgPSBTeW1ib2woIlhvcjY0Iik7
Citjb25zdCBOb3QzMiA9IFN5bWJvbCgiTm90MzIiKTsKK2NvbnN0IE5vdDY0ID0gU3ltYm9sKCJO
b3Q2NCIpOworY29uc3QgQWJzRG91YmxlID0gU3ltYm9sKCJBYnNEb3VibGUiKTsKK2NvbnN0IEFi
c0Zsb2F0ID0gU3ltYm9sKCJBYnNGbG9hdCIpOworY29uc3QgQ2VpbERvdWJsZSA9IFN5bWJvbCgi
Q2VpbERvdWJsZSIpOworY29uc3QgQ2VpbEZsb2F0ID0gU3ltYm9sKCJDZWlsRmxvYXQiKTsKK2Nv
bnN0IEZsb29yRG91YmxlID0gU3ltYm9sKCJGbG9vckRvdWJsZSIpOworY29uc3QgRmxvb3JGbG9h
dCA9IFN5bWJvbCgiRmxvb3JGbG9hdCIpOworY29uc3QgU3FydERvdWJsZSA9IFN5bWJvbCgiU3Fy
dERvdWJsZSIpOworY29uc3QgU3FydEZsb2F0ID0gU3ltYm9sKCJTcXJ0RmxvYXQiKTsKK2NvbnN0
IENvbnZlcnRJbnQzMlRvRG91YmxlID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0RvdWJsZSIpOwor
Y29uc3QgQ29udmVydEludDY0VG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRJbnQ2NFRvRG91Ymxl
Iik7Citjb25zdCBDb252ZXJ0SW50MzJUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0Zs
b2F0Iik7Citjb25zdCBDb252ZXJ0SW50NjRUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50NjRU
b0Zsb2F0Iik7Citjb25zdCBDb3VudExlYWRpbmdaZXJvczMyID0gU3ltYm9sKCJDb3VudExlYWRp
bmdaZXJvczMyIik7Citjb25zdCBDb3VudExlYWRpbmdaZXJvczY0ID0gU3ltYm9sKCJDb3VudExl
YWRpbmdaZXJvczY0Iik7Citjb25zdCBDb252ZXJ0RG91YmxlVG9GbG9hdCA9IFN5bWJvbCgiQ29u
dmVydERvdWJsZVRvRmxvYXQiKTsKK2NvbnN0IENvbnZlcnRGbG9hdFRvRG91YmxlID0gU3ltYm9s
KCJDb252ZXJ0RmxvYXRUb0RvdWJsZSIpOworY29uc3QgTW92ZSA9IFN5bWJvbCgiTW92ZSIpOwor
Y29uc3QgU3dhcDMyID0gU3ltYm9sKCJTd2FwMzIiKTsKK2NvbnN0IFN3YXA2NCA9IFN5bWJvbCgi
U3dhcDY0Iik7Citjb25zdCBNb3ZlMzIgPSBTeW1ib2woIk1vdmUzMiIpOworY29uc3QgU3RvcmVa
ZXJvMzIgPSBTeW1ib2woIlN0b3JlWmVybzMyIik7Citjb25zdCBTaWduRXh0ZW5kMzJUb1B0ciA9
IFN5bWJvbCgiU2lnbkV4dGVuZDMyVG9QdHIiKTsKK2NvbnN0IFplcm9FeHRlbmQ4VG8zMiA9IFN5
bWJvbCgiWmVyb0V4dGVuZDhUbzMyIik7Citjb25zdCBTaWduRXh0ZW5kOFRvMzIgPSBTeW1ib2wo
IlNpZ25FeHRlbmQ4VG8zMiIpOworY29uc3QgWmVyb0V4dGVuZDE2VG8zMiA9IFN5bWJvbCgiWmVy
b0V4dGVuZDE2VG8zMiIpOworY29uc3QgU2lnbkV4dGVuZDE2VG8zMiA9IFN5bWJvbCgiU2lnbkV4
dGVuZDE2VG8zMiIpOworY29uc3QgTW92ZUZsb2F0ID0gU3ltYm9sKCJNb3ZlRmxvYXQiKTsKK2Nv
bnN0IE1vdmVEb3VibGUgPSBTeW1ib2woIk1vdmVEb3VibGUiKTsKK2NvbnN0IE1vdmVaZXJvVG9E
b3VibGUgPSBTeW1ib2woIk1vdmVaZXJvVG9Eb3VibGUiKTsKK2NvbnN0IE1vdmU2NFRvRG91Ymxl
ID0gU3ltYm9sKCJNb3ZlNjRUb0RvdWJsZSIpOworY29uc3QgTW92ZTMyVG9GbG9hdCA9IFN5bWJv
bCgiTW92ZTMyVG9GbG9hdCIpOworY29uc3QgTW92ZURvdWJsZVRvNjQgPSBTeW1ib2woIk1vdmVE
b3VibGVUbzY0Iik7Citjb25zdCBNb3ZlRmxvYXRUbzMyID0gU3ltYm9sKCJNb3ZlRmxvYXRUbzMy
Iik7Citjb25zdCBMb2FkOCA9IFN5bWJvbCgiTG9hZDgiKTsKK2NvbnN0IFN0b3JlOCA9IFN5bWJv
bCgiU3RvcmU4Iik7Citjb25zdCBMb2FkOFNpZ25lZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQ4
U2lnbmVkRXh0ZW5kVG8zMiIpOworY29uc3QgTG9hZDE2ID0gU3ltYm9sKCJMb2FkMTYiKTsKK2Nv
bnN0IExvYWQxNlNpZ25lZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQxNlNpZ25lZEV4dGVuZFRv
MzIiKTsKK2NvbnN0IFN0b3JlMTYgPSBTeW1ib2woIlN0b3JlMTYiKTsKK2NvbnN0IENvbXBhcmUz
MiA9IFN5bWJvbCgiQ29tcGFyZTMyIik7Citjb25zdCBDb21wYXJlNjQgPSBTeW1ib2woIkNvbXBh
cmU2NCIpOworY29uc3QgVGVzdDMyID0gU3ltYm9sKCJUZXN0MzIiKTsKK2NvbnN0IFRlc3Q2NCA9
IFN5bWJvbCgiVGVzdDY0Iik7Citjb25zdCBDb21wYXJlRG91YmxlID0gU3ltYm9sKCJDb21wYXJl
RG91YmxlIik7Citjb25zdCBDb21wYXJlRmxvYXQgPSBTeW1ib2woIkNvbXBhcmVGbG9hdCIpOwor
Y29uc3QgQnJhbmNoOCA9IFN5bWJvbCgiQnJhbmNoOCIpOworY29uc3QgQnJhbmNoMzIgPSBTeW1i
b2woIkJyYW5jaDMyIik7Citjb25zdCBCcmFuY2g2NCA9IFN5bWJvbCgiQnJhbmNoNjQiKTsKK2Nv
bnN0IEJyYW5jaFRlc3Q4ID0gU3ltYm9sKCJCcmFuY2hUZXN0OCIpOworY29uc3QgQnJhbmNoVGVz
dDMyID0gU3ltYm9sKCJCcmFuY2hUZXN0MzIiKTsKK2NvbnN0IEJyYW5jaFRlc3Q2NCA9IFN5bWJv
bCgiQnJhbmNoVGVzdDY0Iik7Citjb25zdCBCcmFuY2hEb3VibGUgPSBTeW1ib2woIkJyYW5jaERv
dWJsZSIpOworY29uc3QgQnJhbmNoRmxvYXQgPSBTeW1ib2woIkJyYW5jaEZsb2F0Iik7Citjb25z
dCBCcmFuY2hBZGQzMiA9IFN5bWJvbCgiQnJhbmNoQWRkMzIiKTsKK2NvbnN0IEJyYW5jaEFkZDY0
ID0gU3ltYm9sKCJCcmFuY2hBZGQ2NCIpOworY29uc3QgQnJhbmNoTXVsMzIgPSBTeW1ib2woIkJy
YW5jaE11bDMyIik7Citjb25zdCBCcmFuY2hNdWw2NCA9IFN5bWJvbCgiQnJhbmNoTXVsNjQiKTsK
K2NvbnN0IEJyYW5jaFN1YjMyID0gU3ltYm9sKCJCcmFuY2hTdWIzMiIpOworY29uc3QgQnJhbmNo
U3ViNjQgPSBTeW1ib2woIkJyYW5jaFN1YjY0Iik7Citjb25zdCBCcmFuY2hOZWczMiA9IFN5bWJv
bCgiQnJhbmNoTmVnMzIiKTsKK2NvbnN0IEJyYW5jaE5lZzY0ID0gU3ltYm9sKCJCcmFuY2hOZWc2
NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHkzMiA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFs
bHkzMiIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlv
bmFsbHk2NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlUZXN0MzIgPSBTeW1ib2woIk1vdmVD
b25kaXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2NCA9IFN5
bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlUZXN0NjQiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5
RG91YmxlID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseURvdWJsZSIpOworY29uc3QgTW92ZUNv
bmRpdGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlGbG9hdCIpOworY29u
c3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkzMiA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlv
bmFsbHkzMiIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92
ZURvdWJsZUNvbmRpdGlvbmFsbHk2NCIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlU
ZXN0MzIgPSBTeW1ib2woIk1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBN
b3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2NCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlv
bmFsbHlUZXN0NjQiKTsKK2NvbnN0IE1vdmVEb3VibGVDb25kaXRpb25hbGx5RG91YmxlID0gU3lt
Ym9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseURvdWJsZSIpOworY29uc3QgTW92ZURvdWJsZUNv
bmRpdGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCIp
OworY29uc3QgSnVtcCA9IFN5bWJvbCgiSnVtcCIpOworY29uc3QgUmV0MzIgPSBTeW1ib2woIlJl
dDMyIik7Citjb25zdCBSZXQ2NCA9IFN5bWJvbCgiUmV0NjQiKTsKK2NvbnN0IFJldEZsb2F0ID0g
U3ltYm9sKCJSZXRGbG9hdCIpOworY29uc3QgUmV0RG91YmxlID0gU3ltYm9sKCJSZXREb3VibGUi
KTsKK2NvbnN0IE9vcHMgPSBTeW1ib2woIk9vcHMiKTsKK2NvbnN0IFNodWZmbGUgPSBTeW1ib2wo
IlNodWZmbGUiKTsKK2NvbnN0IFBhdGNoID0gU3ltYm9sKCJQYXRjaCIpOworY29uc3QgQ0NhbGwg
PSBTeW1ib2woIkNDYWxsIik7Citjb25zdCBDb2xkQ0NhbGwgPSBTeW1ib2woIkNvbGRDQ2FsbCIp
OworZnVuY3Rpb24gSW5zdF9mb3JFYWNoQXJnKGluc3QsIGZ1bmMpCit7CisgICAgc3dpdGNoIChp
bnN0Lm9wY29kZSkgeworICAgIGNhc2UgTm9wOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFk
ZDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkODoKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBZGQx
NjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgMTYpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFkZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0
KTsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1As
IDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZERv
dWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBZGRGbG9hdDoKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdWIzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdWI2NDoKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFN1YkRvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgY2Fz
ZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdWJGbG9hdDoK
KyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOZWczMjoKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIE5lZzY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZURlZiwgR1AsIDY0
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOZWdhdGVEb3VibGU6CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWwzMjoKKyAg
ICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bDY0OgorICAgICAgICBzd2l0Y2gg
KGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE11bHRpcGx5QWRkMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNdWx0aXBseUFkZDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNdWx0aXBseVN1YjMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTXVsdGlwbHlTdWI2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwg
NjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTXVsdGlwbHlOZWczMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIp
OworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTXVsdGlwbHlOZWc2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCA2NCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGl2MzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpdjY0OgorICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bERvdWJsZToKKyAgICAgICAgc3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LkRlZiwgRlAsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZURlZiwgRlAsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNdWxGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDMy
KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwg
RlAsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3Zlcmxv
YWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEaXZEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAs
IDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAg
IGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCA2NCk7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGl2Rmxv
YXQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGNhc2UgMjoKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCAzMik7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWDg2Q29udmVydFRvRG91Ymxl
V29yZDMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFg4NkNvbnZlcnRUb1F1YWRXb3JkNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LkRlZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYODZEaXYzMjoKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFg4NkRp
djY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQLCA2NCk7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTGVhOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZUFkZHIsIEdQLCBQ
dHIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIFB0cik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQW5kMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxl
bmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwg
MzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRl
ZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3Zl
cmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBBbmQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
NjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAgICAg
Y2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmREb3Vi
bGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5kRmxvYXQ6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWG9yRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGlu
c3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
RGVmLCBGUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cg
IkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFhvckZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5n
dGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
RlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIp
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBG
UCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9h
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIExzaGlmdDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAg
ICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAz
Mik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAg
Y2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTHNoaWZ0
NjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFJzaGlmdDMyOgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUnNoaWZ0NjQ6CisgICAgICAgIHN3aXRjaCAo
aW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5aRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFVyc2hpZnQzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3Mu
bGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQ
LCAzMik7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Va
RGVmLCBHUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBv
dmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICBjYXNlIFVyc2hpZnQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCA2NCk7Cisg
ICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2
NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
T3IzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE9yNjQ6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWG9yMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5h
cmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVm
LCBHUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJC
YWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBYb3I2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0
KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBO
b3QzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
MjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBj
YXNlIDE6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQLCAz
Mik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Tm90NjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBj
YXNlIDE6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZURlZiwgR1AsIDY0
KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBB
YnNEb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBYnNGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENlaWxEb3VibGU6CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDZWlsRmxvYXQ6Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBGbG9vckRvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEZsb29yRmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwg
RlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcXJ0RG91YmxlOgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3FydEZs
b2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ29udmVydEludDMyVG9Eb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwg
RlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0SW50NjRUb0RvdWJsZToK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENvbnZlcnRJbnQzMlRvRmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMy
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0SW50NjRUb0Zsb2F0OgorICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ291
bnRMZWFkaW5nWmVyb3MzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDb3VudExlYWRpbmdaZXJvczY0OgorICAgICAgICBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udmVydERv
dWJsZVRvRmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQp
OworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb252ZXJ0RmxvYXRUb0RvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmU6CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN3
YXAzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2VEZWYsIEdQLCAzMik7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgMzIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN3YXA2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBH
UCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmUzMjoKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdG9yZVplcm8z
MjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU2lnbkV4dGVuZDMyVG9QdHI6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LkRlZiwgR1AsIFB0cik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWmVyb0V4dGVuZDhUbzMy
OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU2lnbkV4dGVuZDhUbzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWmVyb0V4dGVuZDE2VG8zMjoKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTaWduRXh0
ZW5kMTZUbzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE1vdmVGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwg
MzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGU6CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlWmVyb1Rv
RG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlNjRUb0RvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmUzMlRvRmxvYXQ6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBNb3ZlRG91YmxlVG82NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgNjQpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVGbG9hdFRvMzI6CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkODoKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0
b3JlODoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCA4KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBMb2FkOFNpZ25lZEV4dGVuZFRvMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwg
R1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkMTY6CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMTYpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZDE2U2ln
bmVkRXh0ZW5kVG8zMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAx
Nik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTdG9yZTE2OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDE2KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQ
LCAxNik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcGFyZTMyOgorICAgICAgICBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcGFyZTY0OgorICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwg
NjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgVGVzdDMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgVGVzdDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ29tcGFyZURvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENvbXBhcmVGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAz
Mik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJy
YW5jaDg6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJy
YW5jaDMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJyYW5jaDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJyYW5jaFRlc3Q4OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCcmFuY2hUZXN0MzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQnJhbmNoVGVzdDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaERvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDY0
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hGbG9hdDoKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwg
RlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hBZGQzMjoKKyAgICAgICAg
c3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBB
cmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJC
YWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBCcmFuY2hBZGQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAg
ICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaE11
bDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSA0
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDY6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sz
XSwgQXJnLlNjcmF0Y2gsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwg
QXJnLlNjcmF0Y2gsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJn
LlpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFk
IG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJhbmNoTXVsNjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBH
UCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VaRGVmLCBHUCwg
NjQpOworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBH
UCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlNjcmF0Y2gsIEdQLCA2NCk7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlNjcmF0Y2gsIEdQLCA2NCk7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoU3ViMzI6Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
Ml0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5j
aFN1YjY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJyYW5jaE5lZzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaE5lZzY0OgorICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2VaRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRp
b25hbGx5MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBj
YXNlIDU6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1s0XSwgQXJnLlVzZURlZiwgR1AsIFB0cik7CisgICAgICAgIGNhc2UgNjoKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBB
cmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVm
LCBHUCwgUHRyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3Zl
cmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseTY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwg
NjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworICAg
ICAgICBjYXNlIDY6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1s1XSwgQXJnLkRlZiwgR1AsIFB0cik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlUZXN0MzI6CisgICAg
ICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDU6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sz
XSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJn
LlVzZURlZiwgR1AsIFB0cik7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBH
UCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlQ29u
ZGl0aW9uYWxseVRlc3Q2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Cisg
ICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgY2FzZSA2
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbNF0sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0s
IEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cg
IkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRpb25hbGx5RG91YmxlOgorICAgICAgICBzd2l0Y2gg
KGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBB
cmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2Us
IEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQLCBQ
dHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQLCBQdHIpOwor
ICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZURlZiwgR1AsIFB0cik7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlG
bG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
NjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVd
LCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBB
cmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2Us
IEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VEZWYsIEdQ
LCBQdHIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9h
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5MzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
NV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJs
ZUNvbmRpdGlvbmFsbHk2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRd
LCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwg
RlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxs
eVRlc3QzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
M10sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNl
LCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgRlAsIDY0KTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2NDoK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJn
c1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5V
c2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQp
OworICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseURvdWJsZToKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0OgorICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwg
MzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEp1
bXA6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0MzI6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJldDY0
OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBSZXRGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0RG91YmxlOgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBPb3BzOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNodWZmbGU6CisgICAg
ICAgIFNodWZmbGVDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQYXRjaDoKKyAgICAgICAgUGF0Y2hDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBm
dW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQ2FsbDoKKyAgICAgICAgQ0NhbGxDdXN0
b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xk
Q0NhbGw6CisgICAgICAgIENvbGRDQ2FsbEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOwor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICB0aHJvdyAiQmFkIG9wY29kZSI7
CisgICAgfQorfQorZnVuY3Rpb24gSW5zdF9oYXNOb25BcmdFZmZlY3RzKGluc3QpCit7CisgICAg
c3dpdGNoIChpbnN0Lm9wY29kZSkgeworICAgIGNhc2UgQnJhbmNoODoKKyAgICBjYXNlIEJyYW5j
aDMyOgorICAgIGNhc2UgQnJhbmNoNjQ6CisgICAgY2FzZSBCcmFuY2hUZXN0ODoKKyAgICBjYXNl
IEJyYW5jaFRlc3QzMjoKKyAgICBjYXNlIEJyYW5jaFRlc3Q2NDoKKyAgICBjYXNlIEJyYW5jaERv
dWJsZToKKyAgICBjYXNlIEJyYW5jaEZsb2F0OgorICAgIGNhc2UgQnJhbmNoQWRkMzI6CisgICAg
Y2FzZSBCcmFuY2hBZGQ2NDoKKyAgICBjYXNlIEJyYW5jaE11bDMyOgorICAgIGNhc2UgQnJhbmNo
TXVsNjQ6CisgICAgY2FzZSBCcmFuY2hTdWIzMjoKKyAgICBjYXNlIEJyYW5jaFN1YjY0OgorICAg
IGNhc2UgQnJhbmNoTmVnMzI6CisgICAgY2FzZSBCcmFuY2hOZWc2NDoKKyAgICBjYXNlIEp1bXA6
CisgICAgY2FzZSBSZXQzMjoKKyAgICBjYXNlIFJldDY0OgorICAgIGNhc2UgUmV0RmxvYXQ6Cisg
ICAgY2FzZSBSZXREb3VibGU6CisgICAgY2FzZSBPb3BzOgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBjYXNlIFNodWZmbGU6CisgICAgICAgIHJldHVybiBTaHVmZmxlQ3VzdG9tLmhhc05vbkFy
Z05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOworICAgIGNhc2UgUGF0Y2g6CisgICAgICAgIHJldHVy
biBQYXRjaEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKKyAgICBjYXNl
IENDYWxsOgorICAgICAgICByZXR1cm4gQ0NhbGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoaW5zdCk7CisgICAgY2FzZSBDb2xkQ0NhbGw6CisgICAgICAgIHJldHVybiBDb2xkQ0Nh
bGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvcmVnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcmVnLmpz
CShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw5NyBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBSZWcgZXh0ZW5kcyBUbXBCYXNlIHsK
KyAgICBjb25zdHJ1Y3RvcihpbmRleCwgdHlwZSwgbmFtZSwgaXNDYWxsZWVTYXZlKQorICAgIHsK
KyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKKyAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7
CisgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOworICAgICAgICB0aGlzLl9pc0NhbGxlZVNhdmUg
PSAhIWlzQ2FsbGVlU2F2ZTsKKyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4KCkgeyByZXR1cm4g
dGhpcy5faW5kZXg7IH0KKyAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KKyAg
ICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KKyAgICBnZXQgaXNDYWxsZWVTYXZl
KCkgeyByZXR1cm4gdGhpcy5faXNDYWxsZWVTYXZlOyB9CisgICAgCisgICAgZ2V0IGlzUmVnKCkg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAiJSIgKyB0aGlzLl9uYW1lOworICAgIH0KK30KKworeworICAgIFJlZy5yZWdzID0gW107
CisgICAgZnVuY3Rpb24gbmV3UmVnKC4uLmFyZ3MpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0
ID0gbmV3IFJlZyguLi5hcmdzKTsKKyAgICAgICAgUmVnLnJlZ3MucHVzaChyZXN1bHQpOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIERlZmluZSBYODZfNjQgR1BScwor
ICAgIHsKKyAgICAgICAgbGV0IGluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rpb24gbmV3R1BSKG5h
bWUsIGlzQ2FsbGVlU2F2ZSkgeyByZXR1cm4gbmV3UmVnKGluZGV4KyssIEdQLCBuYW1lLCBpc0Nh
bGxlZVNhdmUpOyB9CisgICAgICAgIAorICAgICAgICBSZWcucmF4ID0gbmV3R1BSKCJyYXgiKTsK
KyAgICAgICAgUmVnLnJjeCA9IG5ld0dQUigicmN4Iik7CisgICAgICAgIFJlZy5yZHggPSBuZXdH
UFIoInJkeCIpOworICAgICAgICBSZWcucmJ4ID0gbmV3R1BSKCJyYngiLCB0cnVlKTsKKyAgICAg
ICAgUmVnLnJzcCA9IG5ld0dQUigicnNwIik7CisgICAgICAgIFJlZy5yYnAgPSBuZXdHUFIoInJi
cCIsIHRydWUpOworICAgICAgICBSZWcucnNpID0gbmV3R1BSKCJyc2kiKTsKKyAgICAgICAgUmVn
LnJkaSA9IG5ld0dQUigicmRpIik7CisgICAgICAgIGZvciAobGV0IGkgPSA4OyBpIDw9IDE1OyAr
K2kpCisgICAgICAgICAgICBSZWdbInIiICsgaV0gPSBuZXdHUFIoInIiICsgaSwgaSA+PSAxMik7
CisgICAgfQorCisgICAgLy8gRGVmaW5lIFg4Nl82NCBGUFJzLgorICAgIGZvciAobGV0IGkgPSAw
OyBpIDw9IDE1OyArK2kpCisgICAgICAgIFJlZ1sieG1tIiArIGldID0gbmV3UmVnKGksIEZQLCAi
eG1tIiArIGkpOworCisgICAgUmVnLmdwcnMgPSBbXQorICAgIFJlZy5mcHJzID0gW10KKyAgICBS
ZWcuY2FsbGVlU2F2ZUdQUnMgPSBbXQorICAgIFJlZy5jYWxsZWVTYXZlRlBScyA9IFtdCisgICAg
UmVnLmNhbGxlZVNhdmVzID0gW10KKyAgICBmb3IgKGxldCByZWcgb2YgUmVnLnJlZ3MpIHsKKyAg
ICAgICAgaWYgKHJlZy5pc0dQKSB7CisgICAgICAgICAgICBSZWcuZ3Bycy5wdXNoKHJlZyk7Cisg
ICAgICAgICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2ZSkKKyAgICAgICAgICAgICAgICBSZWcuY2Fs
bGVlU2F2ZUdQUnMucHVzaChyZWcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgUmVn
LmZwcnMucHVzaChyZWcpOworICAgICAgICAgICAgaWYgKHJlZy5pc0NhbGxlZVNhdmUpCisgICAg
ICAgICAgICAgICAgUmVnLmNhbGxlZVNhdmVGUFJTLnB1c2gocmVnKTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2ZSkKKyAgICAgICAgICAgIFJlZy5jYWxsZWVTYXZlcy5w
dXNoKHJlZyk7CisgICAgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9zeW1ib2xz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9scy5qcwkocmV2
aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9scy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDc1IEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIFRoaXMgZmlsZSBpcyBmb3IgbWlzYyBzeW1i
b2xzLgorCisvLyBBcmcgdHlwZQorY29uc3QgR1AgPSBTeW1ib2woIkdQIik7Citjb25zdCBGUCA9
IFN5bWJvbCgiRlAiKTsKKworLy8gU3RhY2sgc2xvdCBraW5kCitjb25zdCBMb2NrZWQgPSBTeW1i
b2woIkxvY2tlZCIpOworY29uc3QgU3BpbGwgPSBTeW1ib2woIlNwaWxsIik7CisKKy8vIEZyZXF1
ZW5jeSBjbGFzcworY29uc3QgTm9ybWFsID0gU3ltYm9sKCJOb3JtYWwiKTsKK2NvbnN0IFJhcmUg
PSBTeW1ib2woIlJhcmUiKTsKKworLy8gUmVsYXRpb25hbCBjb25kaXRpb25zCitjb25zdCBFcXVh
bCA9IFN5bWJvbCgiRXF1YWwiKTsKK2NvbnN0IE5vdEVxdWFsID0gU3ltYm9sKCJOb3RFcXVhbCIp
OworY29uc3QgQWJvdmUgPSBTeW1ib2woIkFib3ZlIik7Citjb25zdCBBYm92ZU9yRXF1YWwgPSBT
eW1ib2woIkFib3ZlT3JFcXVhbCIpOworY29uc3QgQmVsb3cgPSBTeW1ib2woIkJlbG93Iik7Citj
b25zdCBCZWxvd09yRXF1YWwgPSBTeW1ib2woIkJlbG93T3JFcXVhbCIpOworY29uc3QgR3JlYXRl
clRoYW4gPSBTeW1ib2woIkdyZWF0ZXJUaGFuIik7Citjb25zdCBHcmVhdGVyVGhhbk9yRXF1YWwg
PSBTeW1ib2woIkdyZWF0ZXJUaGFuT3JFcXVhbCIpOworY29uc3QgTGVzc1RoYW4gPSBTeW1ib2wo
Ikxlc3NUaGFuIik7Citjb25zdCBMZXNzVGhhbk9yRXF1YWwgPSBTeW1ib2woIkxlc3NUaGFuT3JF
cXVhbCIpOworCisvLyBSZXN1bHQgY29uZGl0aW9ucworY29uc3QgT3ZlcmZsb3cgPSBTeW1ib2wo
Ik92ZXJmbG93Iik7Citjb25zdCBTaWduZWQgPSBTeW1ib2woIlNpZ25lZCIpOworY29uc3QgUG9z
aXRpdmVPclplcm8gPSBTeW1ib2woIlBvc2l0aXZlT3JaZXJvIik7Citjb25zdCBaZXJvID0gU3lt
Ym9sKCJaZXJvIik7Citjb25zdCBOb25aZXJvID0gU3ltYm9sKCJOb25aZXJvIik7CisKKy8vIERv
dWJsZSBjb25kaXRpb25zCitjb25zdCBEb3VibGVFcXVhbCA9IFN5bWJvbCgiRG91YmxlRXF1YWwi
KTsKK2NvbnN0IERvdWJsZU5vdEVxdWFsID0gU3ltYm9sKCJEb3VibGVOb3RFcXVhbCIpOworY29u
c3QgRG91YmxlR3JlYXRlclRoYW4gPSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJUaGFuIik7Citjb25z
dCBEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwgPSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJUaGFuT3JF
cXVhbCIpOworY29uc3QgRG91YmxlTGVzc1RoYW4gPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuIik7
Citjb25zdCBEb3VibGVMZXNzVGhhbk9yRXF1YWwgPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuT3JF
cXVhbCIpOworY29uc3QgRG91YmxlRXF1YWxPclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlRXF1
YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlTm90RXF1YWxPclVub3JkZXJlZCA9IFN5bWJv
bCgiRG91YmxlTm90RXF1YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW5P
clVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRoYW5PclVub3JkZXJlZCIpOworY29u
c3QgRG91YmxlR3JlYXRlclRoYW5PckVxdWFsT3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUdy
ZWF0ZXJUaGFuT3JFcXVhbE9yVW5vcmRlcmVkIik7Citjb25zdCBEb3VibGVMZXNzVGhhbk9yVW5v
cmRlcmVkID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9yVW5vcmRlcmVkIik7Citjb25zdCBEb3Vi
bGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW5PckVx
dWFsT3JVbm9yZGVyZWQiKTsKKworLy8gRGVmaW5lIHBvaW50ZXJUeXBlKCkKK2NvbnN0IFB0ciA9
IDY0OwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXAuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
UGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXAuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5j
ZVRlc3RzL0pTQWlyL3RtcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQzIEBACisidXNl
IHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K2NsYXNzIFRtcCBleHRlbmRzIFRtcEJhc2UgeworICAgIGNvbnN0cnVjdG9yKGluZGV4LCB0eXBl
KQorICAgIHsKKyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKKyAgICAgICAgdGhpcy5fdHlw
ZSA9IHR5cGU7CisgICAgfQorICAgIAorICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2lu
ZGV4OyB9CisgICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90eXBlOyB9CisgICAgCisgICAg
Z2V0IGlzUmVnKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAg
eworICAgICAgICByZXR1cm4gIiUiICsgKHRoaXMuaXNHUCA/ICIiIDogImYiKSArICJ0bXAiICsg
dGhpcy5faW5kZXg7CisgICAgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXBf
YmFzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3RtcF9iYXNlLmpz
CShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXBfYmFzZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDMxIEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIFRtcEJhc2UgeworICAgIGdl
dCBpc0dQKCkgeyByZXR1cm4gdGhpcy50eXBlID09IEdQOyB9CisgICAgZ2V0IGlzRlAoKSB7IHJl
dHVybiB0aGlzLnR5cGUgPT0gRlA7IH0KK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDIwMTYxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgx
LDYgKzE5ODEsOCBAQAogCQlEQzE3RTgxQTFDOUM5MUU5MDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMTdF
ODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovOyB9OwogCQlEQzIxNDMw
NzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMu
aCAqLzsgfTsKIAkJREMyMTQzMDgxQ0EzMkU1ODAwMEE4ODY5IC8qIElDU3RhdHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDUxQ0EzMkU1
MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICovOyB9OworCQlEQzQ1NEI4QzFEMDBFODIyMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAq
LzsgfTsKKwkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBFODFG
MDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAwNTkz
NzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQu
Y3BwICovOyB9OwogCQlEQzYwNUI1RTFDRTI2RUEyMDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNUEx
Q0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzYwNUI1RjFDRTI2RUE1MDA1OTM3MTggLyog
UHJvZmlsZXJVSUQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCAqLzsgfTsK
QEAgLTQxOTMsNiArNDE5NSw4IEBACiAJCURDMTdFODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBDQ2Fs
bEhlbHBlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0NhbGxI
ZWxwZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDUxQ0EzMkU1
MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSUNTdGF0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA2
MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElDU3RhdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM0NTRCOEEx
RDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEFpckR1bXBBc0pTLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNK
Uy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNDU0QjhCMUQwMEU4MUYwMDRD
MThBRiAvKiBBaXJEdW1wQXNKUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBB
aXJEdW1wQXNKUy5oOyBwYXRoID0gYjMvYWlyL0FpckR1bXBBc0pTLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCURDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVyRXZlbnQu
Y3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCURDNjA1QjVBMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVyRXZlbnQuaDsgcGF0aCA9
IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
REM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVyVUlELmNwcDsgcGF0aCA9IHByb2ZpbGVy
L1Byb2ZpbGVyVUlELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4MTcsNiAr
NDgyMSw4IEBACiAJCQkJMEZFQzg1NTExQkRBQ0RDNzAwODBGRjc0IC8qIEFpckNvZGUuaCAqLywK
IAkJCQkwRjYxODMyMjFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyQ3VzdG9tLmNwcCAqLywKIAkJCQkw
RjEwRjFBMjFDNDIwQkYwMDAxQzA3RDIgLyogQWlyQ3VzdG9tLmggKi8sCisJCQkJREM0NTRCOEEx
RDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLywKKwkJCQlEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLywKIAkJCQkwRjQ1NzAzNjFCRTQ0QzkxMDA2
MkE2MjkgLyogQWlyRWxpbWluYXRlRGVhZENvZGUuY3BwICovLAogCQkJCTBGNDU3MDM3MUJFNDRD
OTEwMDYyQTYyOSAvKiBBaXJFbGltaW5hdGVEZWFkQ29kZS5oICovLAogCQkJCTBGNjE4MzIzMUM0
NUJGMDcwMDcyNDUwQiAvKiBBaXJFbWl0U2h1ZmZsZS5jcHAgKi8sCkBAIC03MDE2LDYgKzcwMjIs
NyBAQAogCQkJCTBGRUM4NTA2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrU3BlY2lhbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MEExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29t
bW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlEQzQ1NEI4RDFEMDBFODI0MDA0QzE4QUYgLyogQWly
RHVtcEFzSlMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBDMUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0NvbW11dGF0aXZpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBFMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnN0MzJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MTAx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTkw
OTgsNiArOTEwNSw3IEBACiAJCQkJMTQwNTY2RDYxMDdFQzI3MTAwNURCQzhEIC8qIEpTRnVuY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0QTM4RjkxQzhFMTNERjAwMTkwMzE4IC8qIFN1
cGVyU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OTdFMDdBOTFCOEZDRkI5MDA4NDAw
QkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
REM0NTRCOEMxRDAwRTgyMjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0N0YzOUQyMTA3RUMzNzYwMDQyN0E0OCAvKiBKU0dsb2JhbE9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBNUZEMDA4NTE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVDM0ExQTUxOEMwNDkwMjAw
Qzk1OTNBIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkFpckR1bXBBc0pTLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQWlyQ29k
ZS5oIgorI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKKworbmFtZXNwYWNlIHsKKworQ1N0cmluZyB2YXJO
YW1lRm9yQmxvY2tBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiB0b0NTdHJp
bmcoImJiIiwgaW5kZXgpOworfQorCitDU3RyaW5nIHZhck5hbWUoQmFzaWNCbG9jayogYmxvY2sp
Cit7CisgICAgcmV0dXJuIHZhck5hbWVGb3JCbG9ja0F0SW5kZXgoYmxvY2stPmluZGV4KCkpOwor
fQorCitDU3RyaW5nIHZhck5hbWVGb3JTdGFja1Nsb3RBdEluZGV4KHVuc2lnbmVkIGluZGV4KQor
eworICAgIHJldHVybiB0b0NTdHJpbmcoInNsb3QiLCBpbmRleCk7Cit9CisKK0NTdHJpbmcgdmFy
TmFtZShTdGFja1Nsb3QqIHNsb3QpCit7CisgICAgcmV0dXJuIHZhck5hbWVGb3JTdGFja1Nsb3RB
dEluZGV4KHNsb3QtPmluZGV4KCkpOworfQorCitDU3RyaW5nIHZhck5hbWUoUmVnIHJlZykKK3sK
KyAgICByZXR1cm4gdG9DU3RyaW5nKCJSZWcuIiwgcmVnLmRlYnVnTmFtZSgpKTsKK30KKworQ1N0
cmluZyB2YXJOYW1lRm9yVG1wV2l0aFR5cGVBbmRJbmRleChBcmc6OlR5cGUgdHlwZSwgdW5zaWdu
ZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIHRvQ1N0cmluZyh0eXBlID09IEFyZzo6RlAgPyAiZiIg
OiAiIiwgInRtcCIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFRtcCB0bXApCit7Cisg
ICAgaWYgKHRtcC5pc1JlZygpKQorICAgICAgICByZXR1cm4gdmFyTmFtZSh0bXAucmVnKCkpOwor
ICAgIHJldHVybiB2YXJOYW1lRm9yVG1wV2l0aFR5cGVBbmRJbmRleChBcmcodG1wKS50eXBlKCks
IHRtcC50bXBJbmRleCgpKTsKK30KKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK3ZvaWQg
ZHVtcEFzSlMoQ29kZSYgY29kZSwgUHJpbnRTdHJlYW0mIG91dCkKK3sKKyAgICBvdXQucHJpbnRs
bigibGV0IGNvZGUgPSBuZXcgQ29kZSgpOyIpOworICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBjb2RlLnNpemUoKTsgKytpKQorICAgICAgICBvdXQucHJpbnRsbigibGV0ICIsIHZh
ck5hbWVGb3JCbG9ja0F0SW5kZXgoaSksICIgPSBjb2RlLmFkZEJsb2NrKCk7Iik7CisgICAgCisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvZGUuc3RhY2tTbG90cygpLnNpemUoKTsgKytp
KSB7CisgICAgICAgIFN0YWNrU2xvdCogc2xvdCA9IGNvZGUuc3RhY2tTbG90cygpW2ldOworICAg
ICAgICBpZiAoc2xvdCkKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJsZXQgIiwgdmFyTmFtZShz
bG90KSwgIiA9IGNvZGUuYWRkU3RhY2tTbG90KCIsIHNsb3QtPmJ5dGVTaXplKCksICIsICIsIHNs
b3QtPmtpbmQoKSwgIik7Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludGxu
KCJjb2RlLmFkZFN0YWNrU2xvdCgxLCBTcGlsbCk7Iik7CisgICAgfQorICAgIAorICAgIEFyZzo6
Zm9yRWFjaFR5cGUoCisgICAgICAgIFsmXSAoQXJnOjpUeXBlIHR5cGUpIHsKKyAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IGNvZGUubnVtVG1wcyh0eXBlKTsgaS0tOykgeworICAgICAgICAg
ICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAibGV0ICIsIHZhck5hbWVG
b3JUbXBXaXRoVHlwZUFuZEluZGV4KHR5cGUsIGkpLCAiID0gY29kZS5uZXdUbXAoIiwgdHlwZSwg
Iik7Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIAorICAgIG91dC5wcmludGxu
KCJsZXQgaW5zdDsiKTsKKyAgICBvdXQucHJpbnRsbigibGV0IGFyZzsiKTsKKyAgICAKKyAgICBm
b3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgeworICAgICAgICBmb3IgKEZyZXF1ZW50ZWRC
bG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7CisgICAgICAgICAgICBvdXQu
cHJpbnRsbigKKyAgICAgICAgICAgICAgICB2YXJOYW1lKGJsb2NrKSwgIi5zdWNjZXNzb3JzLmFw
cGVuZChuZXcgRnJlcXVlbnRlZEJsb2NrKCIsCisgICAgICAgICAgICAgICAgdmFyTmFtZShzdWNj
ZXNzb3IuYmxvY2soKSksICIsICIsIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSwgIikpOyIpOworICAg
ICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHByZWRlY2Vzc29yIDog
YmxvY2stPnByZWRlY2Vzc29ycygpKQorICAgICAgICAgICAgb3V0LnByaW50bG4odmFyTmFtZShi
bG9jayksICIuYWRkUHJlZGVjZXNzb3IoIiwgdmFyTmFtZShwcmVkZWNlc3NvciksICIpOyIpOwor
ICAgICAgICAKKyAgICAgICAgZm9yIChJbnN0JiBpbnN0IDogKmJsb2NrKSB7CisgICAgICAgICAg
ICBvdXQucHJpbnRsbigiaW5zdCA9IG5ldyBJbnN0KCIsIGluc3Qub3Bjb2RlLCAiKTsiKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKAorICAgICAgICAgICAgICAg
IFsmXSAoQXJnJiBhcmcsIEFyZzo6Um9sZSwgQXJnOjpUeXBlLCBBcmc6OldpZHRoKSB7CisgICAg
ICAgICAgICAgICAgICAgIHN3aXRjaCAoYXJnLmtpbmQoKSkgeworICAgICAgICAgICAgICAgICAg
ICBjYXNlIEFyZzo6SW52YWxpZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6VG1wOgor
ICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVUbXAo
IiwgdmFyTmFtZShhcmcudG1wKCkpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
QXJnOjpJbW06CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJn
LmNyZWF0ZUltbSgiLCBhcmcudmFsdWUoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBj
YXNlIEFyZzo6QmlnSW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFy
ZyA9IEFyZy5jcmVhdGVCaWdJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBBcmc6OkJpdEltbToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5w
cmludGxuKCJhcmcgPSBBcmcuY3JlYXRlQml0SW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlQml0SW1tNjQoIiwgYXJnLnZhbHVl
KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkFkZHI6CisgICAgICAg
ICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiYXJnID0gQXJnLmNyZWF0ZUFkZHIoIiwgdmFyTmFtZShhcmcuYmFzZSgpKSwgIiwgIiwgYXJn
Lm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpTdGFjazoK
KyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJhcmcgPSBBcmcuY3JlYXRlU3RhY2soIiwgYXJnLnN0YWNrU2xvdCgpLCAiLCAi
LCBhcmcub2Zmc2V0KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkNh
bGxBcmc6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNy
ZWF0ZUNhbGxBcmcoIiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
IGNhc2UgQXJnOjpJbmRleDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmcgPSBBcmcuY3JlYXRlSW5kZXgoIiwgdmFy
TmFtZShhcmcuYmFzZSgpKSwgIiwgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJO
YW1lKGFyZy5pbmRleCgpKSwgIiwgIiwgYXJnLnNjYWxlKCksICIsICIsIGFyZy5vZmZzZXQoKSwg
Iik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6UmVsQ29uZDoKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlUmVnQ29uZCgiLCBh
cmcuYXNSZWxhdGlvbmFsQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBBcmc6OlJlc0NvbmQ6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigi
YXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoIiwgYXJnLmFzUmVzdWx0Q29uZGl0aW9uKCksICIpOyIp
OworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkRvdWJsZUNvbmQ6CisgICAgICAgICAg
ICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoIiwg
YXJnLmFzRG91YmxlQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBBcmc6OlNwZWNpYWw6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBKUy1BaXIgZG9lc24n
dCBoYXZlIFNwZWNpYWxzLgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OldpZHRoQXJn
OgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVX
aWR0aEFyZygiLCBhcmcud2lkdGgoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuYXJncy5wdXNoKGFyZyk7Iik7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbnN0Lm9wY29k
ZSA9PSBQYXRjaCkgeworICAgICAgICAgICAgICAgIGlmIChpbnN0Lmhhc05vbkFyZ0VmZmVjdHMo
KSkKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsiKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQu
cHJpbnRsbigiaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IFtdOyIpOworICAgICAgICAg
ICAgICAgIG91dC5wcmludGxuKCJpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IFtdOyIpOworICAg
ICAgICAgICAgICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoKS5mb3JFYWNoKAorICAg
ICAgICAgICAgICAgICAgICBbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG91dC5wcmludGxuKCJpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLnB1c2goIiwgdmFyTmFt
ZShyZWcpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MoKS5mb3JFYWNoKAorICAgICAgICAgICAgICAgICAgICBb
Jl0gKFJlZyByZWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5wdXNoKCIsIHZhck5hbWUocmVnKSwgIik7Iik7CisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAg
ICBvdXQucHJpbnRsbih2YXJOYW1lKGJsb2NrKSwgIi5hcHBlbmQoaW5zdCk7Iik7CisgICAgICAg
IH0KKyAgICB9Cit9CisKK30gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKworI2VuZGlm
IC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyRHVtcEFzSlMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckR1bXBBc0pTLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckR1bXBBc0pTLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFpckR1bXBB
c0pTX2gKKyNkZWZpbmUgQWlyRHVtcEFzSlNfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2lu
Y2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsgbmFtZXNwYWNlIEFpciB7CisKK2NsYXNzIENvZGU7CisKKy8vIFRoaXMgaXMgYSBqb2tlLiBW
YXJpb3VzIG9wZXJhdGlvbnMgb24gQWlyIGFyZSBpbnRlcmVzdGluZyBmcm9tIGEgYmVuY2htYXJr
aW5nIHN0YW5kcG9pbnQuIFdlIGNhbgorLy8gd3JpdGUgc29tZSBBaXIgcGhhc2VzIGluIEpTIGFu
ZCB0aGVuIHVzZSB0aGF0IHRvIGJlbmNobWFyayBKUy4KK3ZvaWQgZHVtcEFzSlMoQ29kZSYsIFBy
aW50U3RyZWFtJik7CisKK30gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKworI2VuZGlm
IC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBBaXJEdW1wQXNKU19oCisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShyZXZpc2lvbiAy
MDE2MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQWlyQWxsb2NhdGVT
dGFjay5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIKKyNpbmNsdWRlICJBaXJEdW1wQXNKUy5oIgog
I2luY2x1ZGUgIkFpckVsaW1pbmF0ZURlYWRDb2RlLmgiCiAjaW5jbHVkZSAiQWlyRml4T2J2aW91
c1NwaWxscy5oIgogI2luY2x1ZGUgIkFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5oIgpAQCAt
MTAyLDYgKzEwMywxMSBAQCB2b2lkIHByZXBhcmVGb3JHZW5lcmF0aW9uKENvZGUmIGNvZGUpCiAg
ICAgLy8gUHJpb3IgdG8gdGhpcyBwb2ludCB0aGUgcHJvbG9ndWUgYW5kIGVwaWxvZ3VlIGlzIGlt
cGxpY2l0LiBUaGlzIG1ha2VzIGl0IGV4cGxpY2l0LiBJdCBhbHNvCiAgICAgLy8gZG9lcyB0aGlu
Z3MgbGlrZSBpZGVudGlmeSB3aGljaCBjYWxsZWUtc2F2ZXMgd2UncmUgdXNpbmcgYW5kIHNhdmVz
IHRoZW0uCiAgICAgaGFuZGxlQ2FsbGVlU2F2ZXMoY29kZSk7CisgICAgCisgICAgaWYgKE9wdGlv
bnM6OmR1bXBBaXJBc0pTQmVmb3JlQWxsb2NhdGVTdGFjaygpKSB7CisgICAgICAgIGRhdGFMb2co
IkR1bXBpbmcgQWlyIGFzIEpTIGJlZm9yZSBhbGxvY2F0ZVN0YWNrOlxuIik7CisgICAgICAgIGR1
bXBBc0pTKGNvZGUsIFdURjo6ZGF0YUZpbGUoKSk7CisgICAgfQogCiAgICAgLy8gVGhpcyB0dXJu
cyBhbGwgU3RhY2sgYW5kIENhbGxBcmcgQXJncyBpbnRvIEFkZHIgYXJncyB0aGF0IHVzZSB0aGUg
ZnJhbWUgcG9pbnRlci4gSXQgZG9lcwogICAgIC8vIHRoaXMgYnkgZmlyc3QtZml0IGFsbG9jYXRp
bmcgc3RhY2sgc2xvdHMuIEl0IHNob3VsZCBiZSBwcmV0dHkgZGFybiBjbG9zZSB0byBvcHRpbWFs
LCBzbyB3ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJh
dG9yLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2Rl
X2dlbmVyYXRvci5yYgkocmV2aXNpb24gMjAxNjE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xMDkwLDMgKzEw
OTAsOTQgQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgb3V0cC5wdXRzICJ9IH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyIgogfQogCisjIFRoaXMgaXMgYSBoYWNrIGZvciBK
U0Fpci4gSXQncyBhIGpva2UuCitGaWxlLm9wZW4oIkpTQWlyX29wY29kZS5qcyIsICJ3Iikgewor
ICAgIHwgb3V0cCB8CisgICAgb3V0cC5wdXRzICJcInVzZSBzdHJpY3RcIjsiCisgICAgb3V0cC5w
dXRzICIvLyBHZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYiBmcm9tICN7JGZpbGVOYW1l
fSAtLSBkbyBub3QgZWRpdCEiCisgICAgCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAg
ICAgICB8IG9wY29kZSB8CisgICAgICAgIG91dHAucHV0cyAiY29uc3QgI3tvcGNvZGUubmFtZX0g
PSBTeW1ib2woI3tvcGNvZGUubmFtZS5pbnNwZWN0fSk7IgorICAgIH0KKyAgICAKKyAgICBvdXRw
LnB1dHMgImZ1bmN0aW9uIEluc3RfZm9yRWFjaEFyZyhpbnN0LCBmdW5jKSIKKyAgICBvdXRwLnB1
dHMgInsiCisgICAgb3V0cC5wdXRzICJzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7IgorICAgICRvcGNv
ZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBvdXRwLnB1dHMg
ImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICBpZiBvcGNvZGUuY3VzdG9tCisgICAgICAg
ICAgICBvdXRwLnB1dHMgIiN7b3Bjb2RlLm5hbWV9Q3VzdG9tLmZvckVhY2hBcmcoaW5zdCwgZnVu
Yyk7IgorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZWVkT3ZlcmxvYWRTd2l0Y2ggPSBvcGNv
ZGUub3ZlcmxvYWRzLnNpemUgIT0gMQorICAgICAgICAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKGlu
c3QuYXJncy5sZW5ndGgpIHsiIGlmIG5lZWRPdmVybG9hZFN3aXRjaAorICAgICAgICAgICAgb3Bj
b2RlLm92ZXJsb2Fkcy5lYWNoIHsKKyAgICAgICAgICAgICAgICB8IG92ZXJsb2FkIHwKKyAgICAg
ICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvdmVybG9hZC5zaWduYXR1cmUubGVuZ3RofToi
IGlmIG5lZWRPdmVybG9hZFN3aXRjaAorICAgICAgICAgICAgICAgIG92ZXJsb2FkLnNpZ25hdHVy
ZS5lYWNoX3dpdGhfaW5kZXggeworICAgICAgICAgICAgICAgICAgICB8IGFyZywgaW5kZXggfAor
ICAgICAgICAgICAgICAgICAgICByb2xlID0gbmlsCisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
YXJnLnJvbGUKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiVSIKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJvbGUgPSAiVXNlIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJEIgorICAgICAg
ICAgICAgICAgICAgICAgICAgcm9sZSA9ICJEZWYiCisgICAgICAgICAgICAgICAgICAgIHdoZW4g
IlpEIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJaRGVmIgorICAgICAgICAgICAg
ICAgICAgICB3aGVuICJVRCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNlRGVm
IgorICAgICAgICAgICAgICAgICAgICB3aGVuICJVWkQiCisgICAgICAgICAgICAgICAgICAgICAg
ICByb2xlID0gIlVzZVpEZWYiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlVBIgorICAgICAg
ICAgICAgICAgICAgICAgICAgcm9sZSA9ICJVc2VBZGRyIgorICAgICAgICAgICAgICAgICAgICB3
aGVuICJTIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJTY3JhdGNoIgorICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAg
ICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIG91dHAucHV0cyAiZnVuYyhpbnN0LmFyZ3NbI3tpbmRleH1dLCBBcmcuI3tyb2xlfSwgI3th
cmcudHlwZX1QLCAje2FyZy53aWR0aH0pOyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiBuZWVkT3ZlcmxvYWRTd2l0Y2gKKyAgICAgICAgICAgICAgICBv
dXRwLnB1dHMgImRlZmF1bHQ6IgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAidGhyb3cgXCJC
YWQgb3ZlcmxvYWRcIjsiCisgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJicmVhazsiCisgICAg
ICAgICAgICAgICAgb3V0cC5wdXRzICJ9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAor
ICAgICAgICBvdXRwLnB1dHMgImJyZWFrOyIKKyAgICB9CisgICAgb3V0cC5wdXRzICJkZWZhdWx0
OiIKKyAgICBvdXRwLnB1dHMgInRocm93IFwiQmFkIG9wY29kZVwiOyIKKyAgICBvdXRwLnB1dHMg
In0iCisgICAgb3V0cC5wdXRzICJ9IgorICAgIAorICAgIG91dHAucHV0cyAiZnVuY3Rpb24gSW5z
dF9oYXNOb25BcmdFZmZlY3RzKGluc3QpIgorICAgIG91dHAucHV0cyAieyIKKyAgICBvdXRwLnB1
dHMgInN3aXRjaCAoaW5zdC5vcGNvZGUpIHsiCisgICAgZm91bmRUcnVlID0gZmFsc2UKKyAgICAk
b3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwKKyAgICAgICAgaWYgb3Bj
b2RlLmF0dHJpYnV0ZXNbOnRlcm1pbmFsXSBvciBvcGNvZGUuYXR0cmlidXRlc1s6ZWZmZWN0c10K
KyAgICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAg
ICBmb3VuZFRydWUgPSB0cnVlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBpZiBmb3VuZFRydWUK
KyAgICAgICAgb3V0cC5wdXRzICJyZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisgICAgJG9wY29kZXMu
dmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5jdXN0
b20KKyAgICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAg
ICAgICBvdXRwLnB1dHMgInJldHVybiAje29wY29kZS5uYW1lfUN1c3RvbS5oYXNOb25BcmdOb25D
b250cm9sRWZmZWN0cyhpbnN0KTsiCisgICAgICAgIGVuZAorICAgIH0KKyAgICBvdXRwLnB1dHMg
ImRlZmF1bHQ6IgorICAgIG91dHAucHV0cyAicmV0dXJuIGZhbHNlOyIKKyAgICBvdXRwLnB1dHMg
In0iCisgICAgb3V0cC5wdXRzICJ9IgorfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcu
Y3BwCShyZXZpc2lvbiAyMDE2MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDE1IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitj
b25zdCBjaGFyKiBSZWc6OmRlYnVnTmFtZSgpIGNvbnN0Cit7CisgICAgaWYgKCEqdGhpcykKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlzR1BSKCkpCisgICAgICAgIHJldHVybiBH
UFJJbmZvOjpkZWJ1Z05hbWUoZ3ByKCkpOworICAgIHJldHVybiBGUFJJbmZvOjpkZWJ1Z05hbWUo
ZnByKCkpOworfQorCiB2b2lkIFJlZzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewog
ICAgIGlmICghKnRoaXMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHJldmlzaW9uIDIw
MTYxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE3Miw2ICsxNzIsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2luZGV4OwogICAg
IH0KICAgICAKKyAgICBjb25zdCBjaGFyKiBkZWJ1Z05hbWUoKSBjb25zdDsKKyAgICAKICAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKIAogICAgIGNsYXNzIEFsbFJlZ3NJdGVyYWJs
ZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lv
biAyMDE2MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2Niw2ICszNjYsOCBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlv
blN0cmluZzsKICAgICB2KGJvb2wsIGR1bXBNb2R1bGVMb2FkaW5nU3RhdGUsIGZhbHNlLCBOb3Jt
YWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGV4cG9zZUludGVybmFsTW9kdWxlTG9hZGVyLCBm
YWxzZSwgTm9ybWFsLCAiZXhwb3NlIHRoZSBpbnRlcm5hbCBtb2R1bGUgbG9hZGVyIG9iamVjdCB0
byB0aGUgZ2xvYmFsIHNwYWNlIGZvciBkZWJ1Z2dpbmciKSBcCiAgICAgXAorICAgIHYoYm9vbCwg
ZHVtcEFpckFzSlNCZWZvcmVBbGxvY2F0ZVN0YWNrLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBc
CisgICAgXAogICAgIHYoYm9vbCwgdXNlU3VwZXJTYW1wbGVyLCBmYWxzZSwgTm9ybWFsLCBudWxs
cHRyKQogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1By
aW50U3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaAko
cmV2aXNpb24gMjAxNjE1KQorKysgU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzAsNiArNzAsMTMgQEAgcHVibGljOgogICAgICAgICBwcmludEludGVybmFs
KCp0aGlzLCB2YWx1ZSk7CiAgICAgICAgIHByaW50KHJlbWFpbmluZ1ZhbHVlcy4uLik7CiAgICAg
fQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgorICAgIHZvaWQgcHJpbnRs
bihjb25zdCBUeXBlcyYuLi4gdmFsdWVzKQorICAgIHsKKyAgICAgICAgcHJpbnQodmFsdWVzLi4u
KTsKKyAgICAgICAgcHJpbnQoIlxuIik7CisgICAgfQogfTsKIAogV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIGNvbnN0IGNoYXIqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280456</attachid>
            <date>2016-06-03 13:22:20 -0700</date>
            <delta_ts>2016-06-06 13:56:20 -0700</delta_ts>
            <desc>a bit more</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>84922</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9hcmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MjEgQEAKKyJ1c2Ugc3Ry
aWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xh
c3MgQXJnIHsKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICB0aGlzLl9raW5kID0g
SW52YWxpZDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzQW55VXNlKHJvbGUpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBj
YXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2Ug
QXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJn
LkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoK
KyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyAiQmFkIHJvbGUiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0Nv
bGRVc2Uocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNl
IEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLlVz
ZURlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVz
ZToKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAg
ICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICBj
YXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgcm9sZSI7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgCisgICAgc3RhdGljIGlzV2FybVVzZShyb2xlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFy
Zy5pc0FueVVzZShyb2xlKSAmJiAhQXJnLmlzQ29sZFVzZShyb2xlKTsKKyAgICB9CisKKyAgICBz
dGF0aWMgaXNFYXJseVVzZShyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7Cisg
ICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAg
Y2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRl
ZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToK
KyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6
CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCByb2xlIjsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNMYXRlVXNlKHJvbGUpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2Fz
ZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBB
cmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpE
ZWY6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAg
ICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIHJvbGUiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0FueURlZihy
b2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLlVz
ZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoK
KyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAg
ICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNl
IEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBB
cmcuU2NyYXRjaDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgIkJhZCByb2xlIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgaXNFYXJseURlZihyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7
CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAg
ICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAg
Y2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJn
LlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVD
b2xkVXNlOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFyZy5FYXJs
eURlZjoKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCByb2xlIjsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNMYXRlRGVmKHJvbGUpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNl
IEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFy
Zy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBBcmcu
U2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVm
OgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyAiQmFkIHJvbGUiOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc1pEZWYo
cm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5V
c2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6
CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAg
ICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAg
Y2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2Ug
QXJnLlVzZVpEZWY6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93ICJCYWQgcm9sZSI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisg
ICAgc3RhdGljIGNvbnNlcnZhdGl2ZVdpZHRoKHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4g
dHlwZSA9PSBHUCA/IFB0ciA6IDY0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgbWluaW11bVdp
ZHRoKHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBHUCA/IDggOiAzMjsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIGJ5dGVzKHdpZHRoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHdpZHRoIC8gODsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHdpZHRoRm9yQnl0ZXMoYnl0ZXMp
CisgICAgeworICAgICAgICBzd2l0Y2ggKGJ5dGVzKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIDg7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIHJldHVybiAxNjsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICBjYXNlIDQ6CisgICAg
ICAgICAgICByZXR1cm4gMzI7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoYnl0
ZXMgPiA4KQorICAgICAgICAgICAgICAgIHRocm93ICJCYWQgbnVtYmVyIG9mIGJ5dGVzIjsKKyAg
ICAgICAgICAgIHJldHVybiA2NDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
Y3JlYXRlVG1wKHRtcCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7Cisg
ICAgICAgIHJlc3VsdC5fdG1wID0gdG1wOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KyAgICAKKyAgICBzdGF0aWMgY3JlYXRlSW1tKHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkltbTsKKyAgICAg
ICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQmlnSW1tKHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkJpZ0ltbTsK
KyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQml0SW1tKHZhbHVlKQorICAgIHsKKyAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkJp
dEltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQml0SW1tNjQodmFsdWUpCisgICAg
eworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQg
PSBBcmcuQml0SW1tNjQ7CisgICAgICAgIHJlc3VsdC5fdmFsdWUgPSB2YWx1ZTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUFkZHIoYmFzZSwg
b2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQorICAgICAgICAgICAg
b2Zmc2V0ID0gMDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVz
dWx0Ll9raW5kID0gQXJnLkFkZHI7CisgICAgICAgIHJlc3VsdC5fYmFzZSA9IGJhc2U7CisgICAg
ICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlU3RhY2soc2xvdCwgb2Zmc2V0KQorICAgIHsKKyAg
ICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQorICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlN0
YWNrOworICAgICAgICByZXN1bHQuX3Nsb3QgPSBzbG90OworICAgICAgICByZXN1bHQuX29mZnNl
dCA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3Rh
dGljIGNyZWF0ZUNhbGxBcmcob2Zmc2V0KQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkNhbGxBcmc7CisgICAgICAgIHJl
c3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgY3JlYXRlU3RhY2tBZGRyKG9mZnNldEZyb21GUCwgZnJhbWVTaXplLCB3
aWR0aCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBBcmcuY3JlYXRlQWRkcihSZWcuY2Fs
bEZyYW1lUmVnaXN0ZXIsIG9mZnNldEZyb21GUCk7CisgICAgICAgIGlmICghcmVzdWx0LmlzVmFs
aWRGcm9tKHdpZHRoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IEFyZy5jcmVhdGVBZGRyKFJlZy5z
dGFja1BvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0RnJvbUZQICsgZnJhbWVTaXplKTsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzVmFsaWRTY2FsZShzY2Fs
ZSwgd2lkdGgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHNjYWxlKSB7CisgICAgICAgIGNhc2Ug
MToKKyAgICAgICAgY2FzZSAyOgorICAgICAgICBjYXNlIDQ6CisgICAgICAgIGNhc2UgODoKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBsb2dTY2FsZShz
Y2FsZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoc2NhbGUpIHsKKyAgICAgICAgY2FzZSAxOgor
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVy
biAxOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgY2Fz
ZSA4OgorICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0aHJvdyAiQmFkIHNjYWxlIjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
Y3JlYXRlSW5kZXgoYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQpCisgICAgeworICAgICAgICBp
ZiAoc2NhbGUgPT0gbnVsbCkKKyAgICAgICAgICAgIHNjYWxlID0gMTsKKyAgICAgICAgaWYgKG9m
ZnNldCA9PSBudWxsKQorICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkluZGV4OworICAgICAg
ICByZXN1bHQuX2Jhc2UgPSBiYXNlOworICAgICAgICByZXN1bHQuX2luZGV4ID0gaW5kZXg7Cisg
ICAgICAgIHJlc3VsdC5fc2NhbGUgPSBzY2FsZTsKKyAgICAgICAgcmVzdWx0Ll9vZmZzZXQgPSBv
ZmZzZXQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBj
cmVhdGVSZWxDb25kKGNvbmRpdGlvbikKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcg
QXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5SZWxDb25kOworICAgICAgICByZXN1
bHQuX2NvbmRpdGlvbiA9IGNvbmRpdGlvbjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVJlc0NvbmQoY29uZGl0aW9uKQorICAgIHsKKyAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlJl
c0NvbmQ7CisgICAgICAgIHJlc3VsdC5fY29uZGl0aW9uID0gY29uZGl0aW9uOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlRG91YmxlQ29uZChj
b25kaXRpb24pCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAg
ICByZXN1bHQuX2tpbmQgPSBBcmcuRG91YmxlQ29uZDsKKyAgICAgICAgcmVzdWx0Ll9jb25kaXRp
b24gPSBjb25kaXRpb247CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBjcmVhdGVXaWR0aCh3aWR0aCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBu
ZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5XaWR0aDsKKyAgICAgICAgcmVz
dWx0Ll93aWR0aCA9IHdpZHRoOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KKwor
Ly8gQXJnIGtpbmRzCitBcmcuSW52YWxpZCA9IFN5bWJvbCgiSW52YWxpZCIpOworQXJnLlRtcCA9
IFN5bWJvbCgiVG1wIik7CitBcmcuSW1tID0gU3ltYm9sKCJJbW0iKTsKK0FyZy5CaWdJbW0gPSBT
eW1ib2woIkJpZ0ltbSIpOworQXJnLkJpdEltbSA9IFN5bWJvbCgiQml0SW1tIik7CitBcmcuQml0
SW1tNjQgPSBTeW1ib2woIkJpdEltbTY0Iik7CitBcmcuQWRkciA9IFN5bWJvbCgiQWRkciIpOwor
QXJnLlN0YWNrID0gU3ltYm9sKCJTdGFjayIpOworQXJnLkNhbGxBcmcgPSBTeW1ib2woIkNhbGxB
cmciKTsKK0FyZy5JbmRleCA9IFN5bWJvbCgiSW5kZXgiKTsKK0FyZy5SZWxDb25kID0gU3ltYm9s
KCJSZWxDb25kIik7CitBcmcuUmVzQ29uZCA9IFN5bWJvbCgiUmVzQ29uZCIpOworQXJnLkRvdWJs
ZUNvbmQgPSBTeW1ib2woIkRvdWJsZUNvbmQiKTsKK0FyZy5XaWR0aCA9IFN5bWJvbCgiV2lkdGgi
KTsKKworLy8gQXJnIHJvbGVzCitBcmcuVXNlID0gU3ltYm9sKCJVc2UiKTsKK0FyZy5Db2xkVXNl
ID0gU3ltYm9sKCJDb2xkVXNlIik7CitBcmcuTGF0ZVVzZSA9IFN5bWJvbCgiTGF0ZVVzZSIpOwor
QXJnLkxhdGVDb2xkVXNlID0gU3ltYm9sKCJMYXRlQ29sZFVzZSIpOworQXJnLkRlZiA9IFN5bWJv
bCgiRGVmIik7CitBcmcuWkRlZiA9IFN5bWJvbCgiWkRlZiIpOworQXJnLlVzZURlZiA9IFN5bWJv
bCgiVXNlRGVmIik7CitBcmcuVXNlWkRlZiA9IFN5bWJvbCgiVXNlWkRlZiIpOworQXJnLkVhcmx5
RGVmID0gU3ltYm9sKCJFYXJseURlZiIpOworQXJnLlNjcmF0Y2ggPSBTeW1ib2woIlNjcmF0Y2gi
KTsKK0FyZy5Vc2VBZGRyID0gU3ltYm9sKCJVc2VBZGRyIik7CisKSW5kZXg6IFBlcmZvcm1hbmNl
VGVzdHMvSlNBaXIvb3Bjb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNB
aXIvb3Bjb2RlLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9vcGNv
ZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjA4IEBACisidXNlIHN0cmljdCI7Cisv
LyBHZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYiBmcm9tIEphdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJPcGNvZGUub3Bjb2RlcyAtLSBkbyBub3QgZWRpdCEKK2NvbnN0IE5vcCA9IFN5bWJv
bCgiTm9wIik7Citjb25zdCBBZGQzMiA9IFN5bWJvbCgiQWRkMzIiKTsKK2NvbnN0IEFkZDggPSBT
eW1ib2woIkFkZDgiKTsKK2NvbnN0IEFkZDE2ID0gU3ltYm9sKCJBZGQxNiIpOworY29uc3QgQWRk
NjQgPSBTeW1ib2woIkFkZDY0Iik7Citjb25zdCBBZGREb3VibGUgPSBTeW1ib2woIkFkZERvdWJs
ZSIpOworY29uc3QgQWRkRmxvYXQgPSBTeW1ib2woIkFkZEZsb2F0Iik7Citjb25zdCBTdWIzMiA9
IFN5bWJvbCgiU3ViMzIiKTsKK2NvbnN0IFN1YjY0ID0gU3ltYm9sKCJTdWI2NCIpOworY29uc3Qg
U3ViRG91YmxlID0gU3ltYm9sKCJTdWJEb3VibGUiKTsKK2NvbnN0IFN1YkZsb2F0ID0gU3ltYm9s
KCJTdWJGbG9hdCIpOworY29uc3QgTmVnMzIgPSBTeW1ib2woIk5lZzMyIik7Citjb25zdCBOZWc2
NCA9IFN5bWJvbCgiTmVnNjQiKTsKK2NvbnN0IE5lZ2F0ZURvdWJsZSA9IFN5bWJvbCgiTmVnYXRl
RG91YmxlIik7Citjb25zdCBNdWwzMiA9IFN5bWJvbCgiTXVsMzIiKTsKK2NvbnN0IE11bDY0ID0g
U3ltYm9sKCJNdWw2NCIpOworY29uc3QgTXVsdGlwbHlBZGQzMiA9IFN5bWJvbCgiTXVsdGlwbHlB
ZGQzMiIpOworY29uc3QgTXVsdGlwbHlBZGQ2NCA9IFN5bWJvbCgiTXVsdGlwbHlBZGQ2NCIpOwor
Y29uc3QgTXVsdGlwbHlTdWIzMiA9IFN5bWJvbCgiTXVsdGlwbHlTdWIzMiIpOworY29uc3QgTXVs
dGlwbHlTdWI2NCA9IFN5bWJvbCgiTXVsdGlwbHlTdWI2NCIpOworY29uc3QgTXVsdGlwbHlOZWcz
MiA9IFN5bWJvbCgiTXVsdGlwbHlOZWczMiIpOworY29uc3QgTXVsdGlwbHlOZWc2NCA9IFN5bWJv
bCgiTXVsdGlwbHlOZWc2NCIpOworY29uc3QgRGl2MzIgPSBTeW1ib2woIkRpdjMyIik7Citjb25z
dCBEaXY2NCA9IFN5bWJvbCgiRGl2NjQiKTsKK2NvbnN0IE11bERvdWJsZSA9IFN5bWJvbCgiTXVs
RG91YmxlIik7Citjb25zdCBNdWxGbG9hdCA9IFN5bWJvbCgiTXVsRmxvYXQiKTsKK2NvbnN0IERp
dkRvdWJsZSA9IFN5bWJvbCgiRGl2RG91YmxlIik7Citjb25zdCBEaXZGbG9hdCA9IFN5bWJvbCgi
RGl2RmxvYXQiKTsKK2NvbnN0IFg4NkNvbnZlcnRUb0RvdWJsZVdvcmQzMiA9IFN5bWJvbCgiWDg2
Q29udmVydFRvRG91YmxlV29yZDMyIik7Citjb25zdCBYODZDb252ZXJ0VG9RdWFkV29yZDY0ID0g
U3ltYm9sKCJYODZDb252ZXJ0VG9RdWFkV29yZDY0Iik7Citjb25zdCBYODZEaXYzMiA9IFN5bWJv
bCgiWDg2RGl2MzIiKTsKK2NvbnN0IFg4NkRpdjY0ID0gU3ltYm9sKCJYODZEaXY2NCIpOworY29u
c3QgTGVhID0gU3ltYm9sKCJMZWEiKTsKK2NvbnN0IEFuZDMyID0gU3ltYm9sKCJBbmQzMiIpOwor
Y29uc3QgQW5kNjQgPSBTeW1ib2woIkFuZDY0Iik7Citjb25zdCBBbmREb3VibGUgPSBTeW1ib2wo
IkFuZERvdWJsZSIpOworY29uc3QgQW5kRmxvYXQgPSBTeW1ib2woIkFuZEZsb2F0Iik7Citjb25z
dCBYb3JEb3VibGUgPSBTeW1ib2woIlhvckRvdWJsZSIpOworY29uc3QgWG9yRmxvYXQgPSBTeW1i
b2woIlhvckZsb2F0Iik7Citjb25zdCBMc2hpZnQzMiA9IFN5bWJvbCgiTHNoaWZ0MzIiKTsKK2Nv
bnN0IExzaGlmdDY0ID0gU3ltYm9sKCJMc2hpZnQ2NCIpOworY29uc3QgUnNoaWZ0MzIgPSBTeW1i
b2woIlJzaGlmdDMyIik7Citjb25zdCBSc2hpZnQ2NCA9IFN5bWJvbCgiUnNoaWZ0NjQiKTsKK2Nv
bnN0IFVyc2hpZnQzMiA9IFN5bWJvbCgiVXJzaGlmdDMyIik7Citjb25zdCBVcnNoaWZ0NjQgPSBT
eW1ib2woIlVyc2hpZnQ2NCIpOworY29uc3QgT3IzMiA9IFN5bWJvbCgiT3IzMiIpOworY29uc3Qg
T3I2NCA9IFN5bWJvbCgiT3I2NCIpOworY29uc3QgWG9yMzIgPSBTeW1ib2woIlhvcjMyIik7Citj
b25zdCBYb3I2NCA9IFN5bWJvbCgiWG9yNjQiKTsKK2NvbnN0IE5vdDMyID0gU3ltYm9sKCJOb3Qz
MiIpOworY29uc3QgTm90NjQgPSBTeW1ib2woIk5vdDY0Iik7Citjb25zdCBBYnNEb3VibGUgPSBT
eW1ib2woIkFic0RvdWJsZSIpOworY29uc3QgQWJzRmxvYXQgPSBTeW1ib2woIkFic0Zsb2F0Iik7
Citjb25zdCBDZWlsRG91YmxlID0gU3ltYm9sKCJDZWlsRG91YmxlIik7Citjb25zdCBDZWlsRmxv
YXQgPSBTeW1ib2woIkNlaWxGbG9hdCIpOworY29uc3QgRmxvb3JEb3VibGUgPSBTeW1ib2woIkZs
b29yRG91YmxlIik7Citjb25zdCBGbG9vckZsb2F0ID0gU3ltYm9sKCJGbG9vckZsb2F0Iik7Citj
b25zdCBTcXJ0RG91YmxlID0gU3ltYm9sKCJTcXJ0RG91YmxlIik7Citjb25zdCBTcXJ0RmxvYXQg
PSBTeW1ib2woIlNxcnRGbG9hdCIpOworY29uc3QgQ29udmVydEludDMyVG9Eb3VibGUgPSBTeW1i
b2woIkNvbnZlcnRJbnQzMlRvRG91YmxlIik7Citjb25zdCBDb252ZXJ0SW50NjRUb0RvdWJsZSA9
IFN5bWJvbCgiQ29udmVydEludDY0VG9Eb3VibGUiKTsKK2NvbnN0IENvbnZlcnRJbnQzMlRvRmxv
YXQgPSBTeW1ib2woIkNvbnZlcnRJbnQzMlRvRmxvYXQiKTsKK2NvbnN0IENvbnZlcnRJbnQ2NFRv
RmxvYXQgPSBTeW1ib2woIkNvbnZlcnRJbnQ2NFRvRmxvYXQiKTsKK2NvbnN0IENvdW50TGVhZGlu
Z1plcm9zMzIgPSBTeW1ib2woIkNvdW50TGVhZGluZ1plcm9zMzIiKTsKK2NvbnN0IENvdW50TGVh
ZGluZ1plcm9zNjQgPSBTeW1ib2woIkNvdW50TGVhZGluZ1plcm9zNjQiKTsKK2NvbnN0IENvbnZl
cnREb3VibGVUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0RG91YmxlVG9GbG9hdCIpOworY29uc3Qg
Q29udmVydEZsb2F0VG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRGbG9hdFRvRG91YmxlIik7Citj
b25zdCBNb3ZlID0gU3ltYm9sKCJNb3ZlIik7Citjb25zdCBTd2FwMzIgPSBTeW1ib2woIlN3YXAz
MiIpOworY29uc3QgU3dhcDY0ID0gU3ltYm9sKCJTd2FwNjQiKTsKK2NvbnN0IE1vdmUzMiA9IFN5
bWJvbCgiTW92ZTMyIik7Citjb25zdCBTdG9yZVplcm8zMiA9IFN5bWJvbCgiU3RvcmVaZXJvMzIi
KTsKK2NvbnN0IFNpZ25FeHRlbmQzMlRvUHRyID0gU3ltYm9sKCJTaWduRXh0ZW5kMzJUb1B0ciIp
OworY29uc3QgWmVyb0V4dGVuZDhUbzMyID0gU3ltYm9sKCJaZXJvRXh0ZW5kOFRvMzIiKTsKK2Nv
bnN0IFNpZ25FeHRlbmQ4VG8zMiA9IFN5bWJvbCgiU2lnbkV4dGVuZDhUbzMyIik7Citjb25zdCBa
ZXJvRXh0ZW5kMTZUbzMyID0gU3ltYm9sKCJaZXJvRXh0ZW5kMTZUbzMyIik7Citjb25zdCBTaWdu
RXh0ZW5kMTZUbzMyID0gU3ltYm9sKCJTaWduRXh0ZW5kMTZUbzMyIik7Citjb25zdCBNb3ZlRmxv
YXQgPSBTeW1ib2woIk1vdmVGbG9hdCIpOworY29uc3QgTW92ZURvdWJsZSA9IFN5bWJvbCgiTW92
ZURvdWJsZSIpOworY29uc3QgTW92ZVplcm9Ub0RvdWJsZSA9IFN5bWJvbCgiTW92ZVplcm9Ub0Rv
dWJsZSIpOworY29uc3QgTW92ZTY0VG9Eb3VibGUgPSBTeW1ib2woIk1vdmU2NFRvRG91YmxlIik7
Citjb25zdCBNb3ZlMzJUb0Zsb2F0ID0gU3ltYm9sKCJNb3ZlMzJUb0Zsb2F0Iik7Citjb25zdCBN
b3ZlRG91YmxlVG82NCA9IFN5bWJvbCgiTW92ZURvdWJsZVRvNjQiKTsKK2NvbnN0IE1vdmVGbG9h
dFRvMzIgPSBTeW1ib2woIk1vdmVGbG9hdFRvMzIiKTsKK2NvbnN0IExvYWQ4ID0gU3ltYm9sKCJM
b2FkOCIpOworY29uc3QgU3RvcmU4ID0gU3ltYm9sKCJTdG9yZTgiKTsKK2NvbnN0IExvYWQ4U2ln
bmVkRXh0ZW5kVG8zMiA9IFN5bWJvbCgiTG9hZDhTaWduZWRFeHRlbmRUbzMyIik7Citjb25zdCBM
b2FkMTYgPSBTeW1ib2woIkxvYWQxNiIpOworY29uc3QgTG9hZDE2U2lnbmVkRXh0ZW5kVG8zMiA9
IFN5bWJvbCgiTG9hZDE2U2lnbmVkRXh0ZW5kVG8zMiIpOworY29uc3QgU3RvcmUxNiA9IFN5bWJv
bCgiU3RvcmUxNiIpOworY29uc3QgQ29tcGFyZTMyID0gU3ltYm9sKCJDb21wYXJlMzIiKTsKK2Nv
bnN0IENvbXBhcmU2NCA9IFN5bWJvbCgiQ29tcGFyZTY0Iik7Citjb25zdCBUZXN0MzIgPSBTeW1i
b2woIlRlc3QzMiIpOworY29uc3QgVGVzdDY0ID0gU3ltYm9sKCJUZXN0NjQiKTsKK2NvbnN0IENv
bXBhcmVEb3VibGUgPSBTeW1ib2woIkNvbXBhcmVEb3VibGUiKTsKK2NvbnN0IENvbXBhcmVGbG9h
dCA9IFN5bWJvbCgiQ29tcGFyZUZsb2F0Iik7Citjb25zdCBCcmFuY2g4ID0gU3ltYm9sKCJCcmFu
Y2g4Iik7Citjb25zdCBCcmFuY2gzMiA9IFN5bWJvbCgiQnJhbmNoMzIiKTsKK2NvbnN0IEJyYW5j
aDY0ID0gU3ltYm9sKCJCcmFuY2g2NCIpOworY29uc3QgQnJhbmNoVGVzdDggPSBTeW1ib2woIkJy
YW5jaFRlc3Q4Iik7Citjb25zdCBCcmFuY2hUZXN0MzIgPSBTeW1ib2woIkJyYW5jaFRlc3QzMiIp
OworY29uc3QgQnJhbmNoVGVzdDY0ID0gU3ltYm9sKCJCcmFuY2hUZXN0NjQiKTsKK2NvbnN0IEJy
YW5jaERvdWJsZSA9IFN5bWJvbCgiQnJhbmNoRG91YmxlIik7Citjb25zdCBCcmFuY2hGbG9hdCA9
IFN5bWJvbCgiQnJhbmNoRmxvYXQiKTsKK2NvbnN0IEJyYW5jaEFkZDMyID0gU3ltYm9sKCJCcmFu
Y2hBZGQzMiIpOworY29uc3QgQnJhbmNoQWRkNjQgPSBTeW1ib2woIkJyYW5jaEFkZDY0Iik7Citj
b25zdCBCcmFuY2hNdWwzMiA9IFN5bWJvbCgiQnJhbmNoTXVsMzIiKTsKK2NvbnN0IEJyYW5jaE11
bDY0ID0gU3ltYm9sKCJCcmFuY2hNdWw2NCIpOworY29uc3QgQnJhbmNoU3ViMzIgPSBTeW1ib2wo
IkJyYW5jaFN1YjMyIik7Citjb25zdCBCcmFuY2hTdWI2NCA9IFN5bWJvbCgiQnJhbmNoU3ViNjQi
KTsKK2NvbnN0IEJyYW5jaE5lZzMyID0gU3ltYm9sKCJCcmFuY2hOZWczMiIpOworY29uc3QgQnJh
bmNoTmVnNjQgPSBTeW1ib2woIkJyYW5jaE5lZzY0Iik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxs
eTMyID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseTMyIik7Citjb25zdCBNb3ZlQ29uZGl0aW9u
YWxseTY0ID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseTY0Iik7Citjb25zdCBNb3ZlQ29uZGl0
aW9uYWxseVRlc3QzMiA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlUZXN0MzIiKTsKK2NvbnN0
IE1vdmVDb25kaXRpb25hbGx5VGVzdDY0ID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2
NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlEb3VibGUgPSBTeW1ib2woIk1vdmVDb25kaXRp
b25hbGx5RG91YmxlIik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseUZsb2F0ID0gU3ltYm9sKCJN
b3ZlQ29uZGl0aW9uYWxseUZsb2F0Iik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTMy
ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTMyIik7Citjb25zdCBNb3ZlRG91Ymxl
Q29uZGl0aW9uYWxseTY0ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTY0Iik7Citj
b25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3QzMiA9IFN5bWJvbCgiTW92ZURvdWJsZUNv
bmRpdGlvbmFsbHlUZXN0MzIiKTsKK2NvbnN0IE1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDY0
ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2NCIpOworY29uc3QgTW92ZURv
dWJsZUNvbmRpdGlvbmFsbHlEb3VibGUgPSBTeW1ib2woIk1vdmVEb3VibGVDb25kaXRpb25hbGx5
RG91YmxlIik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0ID0gU3ltYm9sKCJN
b3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0Iik7Citjb25zdCBKdW1wID0gU3ltYm9sKCJKdW1w
Iik7Citjb25zdCBSZXQzMiA9IFN5bWJvbCgiUmV0MzIiKTsKK2NvbnN0IFJldDY0ID0gU3ltYm9s
KCJSZXQ2NCIpOworY29uc3QgUmV0RmxvYXQgPSBTeW1ib2woIlJldEZsb2F0Iik7Citjb25zdCBS
ZXREb3VibGUgPSBTeW1ib2woIlJldERvdWJsZSIpOworY29uc3QgT29wcyA9IFN5bWJvbCgiT29w
cyIpOworY29uc3QgU2h1ZmZsZSA9IFN5bWJvbCgiU2h1ZmZsZSIpOworY29uc3QgUGF0Y2ggPSBT
eW1ib2woIlBhdGNoIik7Citjb25zdCBDQ2FsbCA9IFN5bWJvbCgiQ0NhbGwiKTsKK2NvbnN0IENv
bGRDQ2FsbCA9IFN5bWJvbCgiQ29sZENDYWxsIik7CitmdW5jdGlvbiBJbnN0X2ZvckVhY2hBcmco
aW5zdCwgZnVuYykKK3sKKyAgICBzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7CisgICAgY2FzZSBOb3A6
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5h
cmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVm
LCBHUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJC
YWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBZGQ4OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDgpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZDE2OgorICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDE2KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VE
ZWYsIEdQLCAxNik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkNjQ6CisgICAgICAgIHN3
aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3Qu
YXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVm
LCBGUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlRGVmLCBGUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJh
ZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFkZEZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgp
IHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAs
IDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIpOwor
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
RlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwg
MzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNl
IFN1YjMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN1YjY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2
NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3ViRG91YmxlOgorICAgICAgICBzd2l0Y2gg
KGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBB
cmcuRGVmLCBGUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFN1YkZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwg
MzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVm
LCBGUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVy
bG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE5lZzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQ
LCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmVnNjQ6CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IE5lZ2F0ZURvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE11bDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5n
dGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpE
ZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYs
IEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJs
b2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTXVsNjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOwor
ICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsdGlwbHlB
ZGQzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10s
IEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bHRpcGx5QWRk
NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBB
cmcuRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bHRpcGx5U3ViMzI6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcu
WkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWx0aXBseVN1YjY0Ogor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLkRl
ZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWx0aXBseU5lZzMyOgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJd
LCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWx0aXBseU5l
ZzY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBE
aXYzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RGl2NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TXVsRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAg
Y2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bEZsb2F0Ogor
ICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgMzIpOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIERpdkRvdWJsZToKKyAgICAgICAgc3dp
dGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sy
XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXZGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwg
RlAsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZURlZiwgRlAsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQg
b3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBYODZDb252ZXJ0VG9Eb3VibGVXb3JkMzI6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWDg2Q29udmVydFRvUXVh
ZFdvcmQ2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFg4NkRpdjMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwg
R1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgWDg2RGl2NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2VaRGVmLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwg
R1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMZWE6CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlQWRkciwgR1AsIFB0cik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmQzMjoK
KyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFuZDY0OgorICAgICAgICBzd2l0
Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJd
LCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFuZERvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwg
RlAsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZURlZiwgRlAsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQg
b3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBbmRGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAz
Mik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMy
KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBY
b3JEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBj
YXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGNhc2Ug
MjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWG9yRmxvYXQ6Cisg
ICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTHNoaWZ0MzI6CisgICAgICAgIHN3aXRj
aCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0s
IEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBMc2hpZnQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYs
IEdQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFk
IG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUnNoaWZ0MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkg
eworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOwor
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQi
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBSc2hpZnQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgIGNh
c2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVXJzaGlmdDMy
OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVXJzaGlmdDY0OgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcjMyOgorICAgICAgICBzd2l0Y2ggKGluc3Qu
YXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRl
ZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgT3I2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0
KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBY
b3IzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFhvcjY0OgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vdDMyOgorICAgICAgICBzd2l0Y2ggKGluc3Qu
YXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOb3Q2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0
LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFic0RvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFic0Zsb2F0OgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q2VpbERvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENlaWxGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwg
MzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEZsb29yRG91YmxlOgorICAgICAgICBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRmxvb3JGbG9h
dDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFNxcnREb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBG
UCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTcXJ0RmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRl
ZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0SW50MzJUb0RvdWJs
ZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENvbnZlcnRJbnQ2NFRvRG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQ
LCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udmVydEludDMyVG9GbG9hdDoKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENvbnZlcnRJbnQ2NFRvRmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb3VudExlYWRpbmdaZXJvczMyOgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvdW50
TGVhZGluZ1plcm9zNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
NjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0RG91YmxlVG9GbG9hdDoKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRGbG9h
dFRvRG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTW92ZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCBQdHIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIFB0cik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3dhcDMyOgorICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZURlZiwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2VEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3dhcDY0OgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTW92ZTMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFN0b3JlWmVybzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTaWduRXh0ZW5k
MzJUb1B0cjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBaZXJvRXh0ZW5kOFRvMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwg
R1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTaWduRXh0ZW5kOFRvMzI6CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBa
ZXJvRXh0ZW5kMTZUbzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDE2KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNpZ25FeHRlbmQxNlRvMzI6CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMTYpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUZsb2F0Ogor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTW92ZURvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1vdmVaZXJvVG9Eb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmU2
NFRvRG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTW92ZTMyVG9GbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBG
UCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVUbzY0OgorICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92
ZUZsb2F0VG8zMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgMzIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIExvYWQ4OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmU4OgorICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRl
ZiwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQ4U2lnbmVkRXh0ZW5kVG8z
MjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIExvYWQxNjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAx
Nik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBMb2FkMTZTaWduZWRFeHRlbmRUbzMyOgorICAgICAgICBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JlMTY6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMTYpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIDE2KTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDb21wYXJlMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
b21wYXJlNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZXN0MzI6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcu
WkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZXN0NjQ6CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wYXJlRG91YmxlOgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAz
Mik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcGFyZUZsb2F0OgorICAgICAgICBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNl
LCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoODoKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBHUCwgOCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgOCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoMzI6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAz
Mik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoNjQ6CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQ
LCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoVGVzdDg6CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVz
ZSwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaFRlc3QzMjoKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hUZXN0NjQ6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNo
RG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJyYW5jaEZsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEJyYW5jaEFkZDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsK
KyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBj
YXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaEFkZDY0Ogor
ICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA0OgorICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbM10sIEFyZy5aRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
Ml0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTXVsMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5h
cmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2Va
RGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAz
Mik7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuU2NyYXRjaCwgR1AsIDMyKTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuU2NyYXRjaCwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hNdWw2NDoKKyAg
ICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZVpEZWYsIEdQLCA2NCk7CisgICAgICAgIGNhc2UgNjoKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzNdLCBBcmcuU2NyYXRjaCwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRd
LCBBcmcuU2NyYXRjaCwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBB
cmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJC
YWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBCcmFuY2hTdWIzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoU3ViNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VEZWYsIEdQ
LCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTmVnMzI6CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJh
bmNoTmVnNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCA2NCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHkzMjoKKyAgICAgICAgc3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBH
UCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlRGVmLCBHUCwg
UHRyKTsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRpb25hbGx5NjQ6
CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDU6Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0
XSwgQXJnLlVzZURlZiwgR1AsIFB0cik7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sy
XSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcu
VXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBH
UCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRy
KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBN
b3ZlQ29uZGl0aW9uYWxseVRlc3QzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3Ro
KSB7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAg
Y2FzZSA2OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbNV0sIEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRpb25hbGx5VGVzdDY0OgorICAgICAgICBz
d2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFy
Zy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VE
ZWYsIEdQLCBQdHIpOworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0
cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgR1AsIFB0cik7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgR1AsIFB0cik7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlv
bmFsbHlEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAg
ICBjYXNlIDY6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1s1XSwgQXJnLkRlZiwgR1AsIFB0cik7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1syXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBB
cmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNl
RGVmLCBHUCwgUHRyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQg
b3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseUZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3Qu
YXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNl
LCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQ
dHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQLCBQdHIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAg
ICBjYXNlIDU6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1s0XSwgQXJnLlVzZURlZiwgR1AsIFB0cik7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkz
MjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFy
Zy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwg
NjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTY0OgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDMyOgorICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1v
dmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVd
LCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVD
b25kaXRpb25hbGx5RG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
NF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVm
LCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25h
bGx5RmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzNdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVz
ZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEZQLCA2NCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSnVtcDoKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBSZXQzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJldEZsb2F0Ogor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBSZXREb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9vcHM6CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU2h1ZmZsZToKKyAgICAgICAgU2h1ZmZsZUN1c3RvbS5mb3JFYWNoQXJn
KGluc3QsIGZ1bmMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhdGNoOgorICAgICAgICBQ
YXRjaEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENDYWxsOgorICAgICAgICBDQ2FsbEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbGRDQ2FsbDoKKyAgICAgICAgQ29sZENDYWxsQ3Vz
dG9tLmZvckVhY2hBcmcoaW5zdCwgZnVuYyk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHRocm93ICJCYWQgb3Bjb2RlIjsKKyAgICB9Cit9CitmdW5jdGlvbiBJbnN0X2hh
c05vbkFyZ0VmZmVjdHMoaW5zdCkKK3sKKyAgICBzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7CisgICAg
Y2FzZSBCcmFuY2g4OgorICAgIGNhc2UgQnJhbmNoMzI6CisgICAgY2FzZSBCcmFuY2g2NDoKKyAg
ICBjYXNlIEJyYW5jaFRlc3Q4OgorICAgIGNhc2UgQnJhbmNoVGVzdDMyOgorICAgIGNhc2UgQnJh
bmNoVGVzdDY0OgorICAgIGNhc2UgQnJhbmNoRG91YmxlOgorICAgIGNhc2UgQnJhbmNoRmxvYXQ6
CisgICAgY2FzZSBCcmFuY2hBZGQzMjoKKyAgICBjYXNlIEJyYW5jaEFkZDY0OgorICAgIGNhc2Ug
QnJhbmNoTXVsMzI6CisgICAgY2FzZSBCcmFuY2hNdWw2NDoKKyAgICBjYXNlIEJyYW5jaFN1YjMy
OgorICAgIGNhc2UgQnJhbmNoU3ViNjQ6CisgICAgY2FzZSBCcmFuY2hOZWczMjoKKyAgICBjYXNl
IEJyYW5jaE5lZzY0OgorICAgIGNhc2UgSnVtcDoKKyAgICBjYXNlIFJldDMyOgorICAgIGNhc2Ug
UmV0NjQ6CisgICAgY2FzZSBSZXRGbG9hdDoKKyAgICBjYXNlIFJldERvdWJsZToKKyAgICBjYXNl
IE9vcHM6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgU2h1ZmZsZToKKyAgICAgICAg
cmV0dXJuIFNodWZmbGVDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7Cisg
ICAgY2FzZSBQYXRjaDoKKyAgICAgICAgcmV0dXJuIFBhdGNoQ3VzdG9tLmhhc05vbkFyZ05vbkNv
bnRyb2xFZmZlY3RzKGluc3QpOworICAgIGNhc2UgQ0NhbGw6CisgICAgICAgIHJldHVybiBDQ2Fs
bEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKKyAgICBjYXNlIENvbGRD
Q2FsbDoKKyAgICAgICAgcmV0dXJuIENvbGRDQ2FsbEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9s
RWZmZWN0cyhpbnN0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
UGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5j
ZVRlc3RzL0pTQWlyL3JlZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwMCBAQAorInVz
ZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CitjbGFzcyBSZWcgZXh0ZW5kcyBUbXBCYXNlIHsKKyAgICBjb25zdHJ1Y3RvcihpbmRleCwgdHlw
ZSwgbmFtZSwgaXNDYWxsZWVTYXZlKQorICAgIHsKKyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRl
eDsKKyAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7CisgICAgICAgIHRoaXMuX25hbWUgPSBuYW1l
OworICAgICAgICB0aGlzLl9pc0NhbGxlZVNhdmUgPSAhIWlzQ2FsbGVlU2F2ZTsKKyAgICB9Cisg
ICAgCisgICAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgdHlw
ZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KKyAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMu
X25hbWU7IH0KKyAgICBnZXQgaXNDYWxsZWVTYXZlKCkgeyByZXR1cm4gdGhpcy5faXNDYWxsZWVT
YXZlOyB9CisgICAgCisgICAgZ2V0IGlzUmVnKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIAorICAg
IHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiJSIgKyB0aGlzLl9uYW1lOworICAg
IH0KK30KKworeworICAgIFJlZy5yZWdzID0gW107CisgICAgZnVuY3Rpb24gbmV3UmVnKC4uLmFy
Z3MpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFJlZyguLi5hcmdzKTsKKyAgICAg
ICAgUmVnLnJlZ3MucHVzaChyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KworICAgIC8vIERlZmluZSBYODZfNjQgR1BScworICAgIHsKKyAgICAgICAgbGV0IGluZGV4ID0g
MDsKKyAgICAgICAgZnVuY3Rpb24gbmV3R1BSKG5hbWUsIGlzQ2FsbGVlU2F2ZSkgeyByZXR1cm4g
bmV3UmVnKGluZGV4KyssIEdQLCBuYW1lLCBpc0NhbGxlZVNhdmUpOyB9CisgICAgICAgIAorICAg
ICAgICBSZWcucmF4ID0gbmV3R1BSKCJyYXgiKTsKKyAgICAgICAgUmVnLnJjeCA9IG5ld0dQUigi
cmN4Iik7CisgICAgICAgIFJlZy5yZHggPSBuZXdHUFIoInJkeCIpOworICAgICAgICBSZWcucmJ4
ID0gbmV3R1BSKCJyYngiLCB0cnVlKTsKKyAgICAgICAgUmVnLnJzcCA9IG5ld0dQUigicnNwIik7
CisgICAgICAgIFJlZy5yYnAgPSBuZXdHUFIoInJicCIsIHRydWUpOworICAgICAgICBSZWcucnNp
ID0gbmV3R1BSKCJyc2kiKTsKKyAgICAgICAgUmVnLnJkaSA9IG5ld0dQUigicmRpIik7CisgICAg
ICAgIGZvciAobGV0IGkgPSA4OyBpIDw9IDE1OyArK2kpCisgICAgICAgICAgICBSZWdbInIiICsg
aV0gPSBuZXdHUFIoInIiICsgaSwgaSA+PSAxMik7CisgICAgfQorCisgICAgLy8gRGVmaW5lIFg4
Nl82NCBGUFJzLgorICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDE1OyArK2kpCisgICAgICAgIFJl
Z1sieG1tIiArIGldID0gbmV3UmVnKGksIEZQLCAieG1tIiArIGkpOworCisgICAgUmVnLmdwcnMg
PSBbXQorICAgIFJlZy5mcHJzID0gW10KKyAgICBSZWcuY2FsbGVlU2F2ZUdQUnMgPSBbXQorICAg
IFJlZy5jYWxsZWVTYXZlRlBScyA9IFtdCisgICAgUmVnLmNhbGxlZVNhdmVzID0gW10KKyAgICBm
b3IgKGxldCByZWcgb2YgUmVnLnJlZ3MpIHsKKyAgICAgICAgaWYgKHJlZy5pc0dQKSB7CisgICAg
ICAgICAgICBSZWcuZ3Bycy5wdXNoKHJlZyk7CisgICAgICAgICAgICBpZiAocmVnLmlzQ2FsbGVl
U2F2ZSkKKyAgICAgICAgICAgICAgICBSZWcuY2FsbGVlU2F2ZUdQUnMucHVzaChyZWcpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgUmVnLmZwcnMucHVzaChyZWcpOworICAgICAgICAg
ICAgaWYgKHJlZy5pc0NhbGxlZVNhdmUpCisgICAgICAgICAgICAgICAgUmVnLmNhbGxlZVNhdmVG
UFJTLnB1c2gocmVnKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2ZSkK
KyAgICAgICAgICAgIFJlZy5jYWxsZWVTYXZlcy5wdXNoKHJlZyk7CisgICAgfQorICAgIAorICAg
IFJlZy5jYWxsRnJhbWVSZWdpc3RlciA9IFJlZy5yYnA7CisgICAgUmVnLnN0YWNrUG9pbnRlclJl
Z2lzdGVyID0gUmVnLnJzcDsKK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9s
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHJl
dmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3NSBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisvLyBUaGlzIGZpbGUgaXMgZm9yIG1pc2Mgc3lt
Ym9scy4KKworLy8gQXJnIHR5cGUKK2NvbnN0IEdQID0gU3ltYm9sKCJHUCIpOworY29uc3QgRlAg
PSBTeW1ib2woIkZQIik7CisKKy8vIFN0YWNrIHNsb3Qga2luZAorY29uc3QgTG9ja2VkID0gU3lt
Ym9sKCJMb2NrZWQiKTsKK2NvbnN0IFNwaWxsID0gU3ltYm9sKCJTcGlsbCIpOworCisvLyBGcmVx
dWVuY3kgY2xhc3MKK2NvbnN0IE5vcm1hbCA9IFN5bWJvbCgiTm9ybWFsIik7Citjb25zdCBSYXJl
ID0gU3ltYm9sKCJSYXJlIik7CisKKy8vIFJlbGF0aW9uYWwgY29uZGl0aW9ucworY29uc3QgRXF1
YWwgPSBTeW1ib2woIkVxdWFsIik7Citjb25zdCBOb3RFcXVhbCA9IFN5bWJvbCgiTm90RXF1YWwi
KTsKK2NvbnN0IEFib3ZlID0gU3ltYm9sKCJBYm92ZSIpOworY29uc3QgQWJvdmVPckVxdWFsID0g
U3ltYm9sKCJBYm92ZU9yRXF1YWwiKTsKK2NvbnN0IEJlbG93ID0gU3ltYm9sKCJCZWxvdyIpOwor
Y29uc3QgQmVsb3dPckVxdWFsID0gU3ltYm9sKCJCZWxvd09yRXF1YWwiKTsKK2NvbnN0IEdyZWF0
ZXJUaGFuID0gU3ltYm9sKCJHcmVhdGVyVGhhbiIpOworY29uc3QgR3JlYXRlclRoYW5PckVxdWFs
ID0gU3ltYm9sKCJHcmVhdGVyVGhhbk9yRXF1YWwiKTsKK2NvbnN0IExlc3NUaGFuID0gU3ltYm9s
KCJMZXNzVGhhbiIpOworY29uc3QgTGVzc1RoYW5PckVxdWFsID0gU3ltYm9sKCJMZXNzVGhhbk9y
RXF1YWwiKTsKKworLy8gUmVzdWx0IGNvbmRpdGlvbnMKK2NvbnN0IE92ZXJmbG93ID0gU3ltYm9s
KCJPdmVyZmxvdyIpOworY29uc3QgU2lnbmVkID0gU3ltYm9sKCJTaWduZWQiKTsKK2NvbnN0IFBv
c2l0aXZlT3JaZXJvID0gU3ltYm9sKCJQb3NpdGl2ZU9yWmVybyIpOworY29uc3QgWmVybyA9IFN5
bWJvbCgiWmVybyIpOworY29uc3QgTm9uWmVybyA9IFN5bWJvbCgiTm9uWmVybyIpOworCisvLyBE
b3VibGUgY29uZGl0aW9ucworY29uc3QgRG91YmxlRXF1YWwgPSBTeW1ib2woIkRvdWJsZUVxdWFs
Iik7Citjb25zdCBEb3VibGVOb3RFcXVhbCA9IFN5bWJvbCgiRG91YmxlTm90RXF1YWwiKTsKK2Nv
bnN0IERvdWJsZUdyZWF0ZXJUaGFuID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhhbiIpOworY29u
c3QgRG91YmxlR3JlYXRlclRoYW5PckVxdWFsID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhhbk9y
RXF1YWwiKTsKK2NvbnN0IERvdWJsZUxlc3NUaGFuID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbiIp
OworY29uc3QgRG91YmxlTGVzc1RoYW5PckVxdWFsID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9y
RXF1YWwiKTsKK2NvbnN0IERvdWJsZUVxdWFsT3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUVx
dWFsT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQgPSBTeW1i
b2woIkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZUdyZWF0ZXJUaGFu
T3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJUaGFuT3JVbm9yZGVyZWQiKTsKK2Nv
bnN0IERvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVH
cmVhdGVyVGhhbk9yRXF1YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlTGVzc1RoYW5PclVu
b3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW5PclVub3JkZXJlZCIpOworY29uc3QgRG91
YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuT3JF
cXVhbE9yVW5vcmRlcmVkIik7CisKKy8vIERlZmluZSBwb2ludGVyVHlwZSgpCitjb25zdCBQdHIg
PSA2NDsKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFu
Y2VUZXN0cy9KU0Fpci90bXAuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MyBAQAorInVz
ZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CitjbGFzcyBUbXAgZXh0ZW5kcyBUbXBCYXNlIHsKKyAgICBjb25zdHJ1Y3RvcihpbmRleCwgdHlw
ZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMuX3R5
cGUgPSB0eXBlOworICAgIH0KKyAgICAKKyAgICBnZXQgaW5kZXgoKSB7IHJldHVybiB0aGlzLl9p
bmRleDsgfQorICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQorICAgIAorICAg
IGdldCBpc1JlZygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgCisgICAgdG9TdHJpbmcoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICIlIiArICh0aGlzLmlzR1AgPyAiIiA6ICJmIikgKyAidG1wIiAr
IHRoaXMuX2luZGV4OworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1w
X2Jhc2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXBfYmFzZS5q
cwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wX2Jhc2UuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBUbXBCYXNlIHsKKyAgICBn
ZXQgaXNHUCgpIHsgcmV0dXJuIHRoaXMudHlwZSA9PSBHUDsgfQorICAgIGdldCBpc0ZQKCkgeyBy
ZXR1cm4gdGhpcy50eXBlID09IEZQOyB9Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiAyMDE2MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4
MSw2ICsxOTgxLDggQEAKIAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVy
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3
RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQz
MDcxQ0EzMkU1NTAwMEE4ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRz
LmggKi87IH07CiAJCURDMjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJF
NTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCOEMxRDAwRTgyMjAwNEMx
OEFGIC8qIEFpckR1bXBBc0pTLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDNDU0QjhBMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAg
Ki87IH07CisJCURDNDU0QjhEMUQwMEU4MjQwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCOEIxRDAwRTgx
RjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggKi87IH07CiAJCURDNjA1QjVEMUNFMjZFQTAwMDU5
MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50
LmNwcCAqLzsgfTsKIAkJREM2MDVCNUUxQ0UyNkVBMjAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVB
MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM2MDVCNUYxQ0UyNkVBNTAwNTkzNzE4IC8q
IFByb2ZpbGVyVUlELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi87IH07
CkBAIC00MTkzLDYgKzQxOTUsOCBAQAogCQlEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0Nh
bGxIZWxwZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENDYWxs
SGVscGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA1MUNBMzJF
NTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElDU3RhdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMw
NjFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJQ1N0YXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNDU0QjhB
MUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFz
SlMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzQ1NEI4QjFEMDBFODFGMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
QWlyRHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50
LmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlckV2ZW50Lmg7IHBhdGgg
PSBwcm9maWxlci9Qcm9maWxlckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CURDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxl
ci9Qcm9maWxlclVJRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODE3LDYg
KzQ4MjEsOCBAQAogCQkJCTBGRUM4NTUxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDb2RlLmggKi8s
CiAJCQkJMEY2MTgzMjIxQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckN1c3RvbS5jcHAgKi8sCiAJCQkJ
MEYxMEYxQTIxQzQyMEJGMDAwMUMwN0QyIC8qIEFpckN1c3RvbS5oICovLAorCQkJCURDNDU0QjhB
MUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8sCisJCQkJREM0NTRCOEIxRDAw
RTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggKi8sCiAJCQkJMEY0NTcwMzYxQkU0NEM5MTAw
NjJBNjI5IC8qIEFpckVsaW1pbmF0ZURlYWRDb2RlLmNwcCAqLywKIAkJCQkwRjQ1NzAzNzFCRTQ0
QzkxMDA2MkE2MjkgLyogQWlyRWxpbWluYXRlRGVhZENvZGUuaCAqLywKIAkJCQkwRjYxODMyMzFD
NDVCRjA3MDA3MjQ1MEIgLyogQWlyRW1pdFNodWZmbGUuY3BwICovLApAQCAtNzAxNiw2ICs3MDIy
LDcgQEAKIAkJCQkwRkVDODUwNjFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUM4NTA4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrVmFs
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Nv
bW1vbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFp
ckR1bXBBc0pTLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwQzFCREFDREFDMDA4MEZGNzQg
LyogQjNDb21tdXRhdGl2aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwRTFCREFDREFD
MDA4MEZGNzQgLyogQjNDb25zdDMyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTEw
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05
MDk4LDYgKzkxMDUsNyBAQAogCQkJCTE0MDU2NkQ2MTA3RUMyNzEwMDVEQkM4RCAvKiBKU0Z1bmN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNEEzOEY5MUM4RTEzREYwMDE5MDMxOCAvKiBT
dXBlclNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQw
MEJBIC8qIEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CURDNDU0QjhDMUQwMEU4MjIwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDdGMzlEMjEwN0VDMzc2MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2Jq
ZWN0Q29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThDMDQ5MDIw
MEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJBaXJEdW1wQXNKUy5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkFpckNv
ZGUuaCIKKyNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisKK25hbWVzcGFjZSB7CisKK0NTdHJpbmcgdmFy
TmFtZUZvckJsb2NrQXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gdG9DU3Ry
aW5nKCJiYiIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKEJhc2ljQmxvY2sqIGJsb2Nr
KQoreworICAgIHJldHVybiB2YXJOYW1lRm9yQmxvY2tBdEluZGV4KGJsb2NrLT5pbmRleCgpKTsK
K30KKworQ1N0cmluZyB2YXJOYW1lRm9yU3RhY2tTbG90QXRJbmRleCh1bnNpZ25lZCBpbmRleCkK
K3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKCJzbG90IiwgaW5kZXgpOworfQorCitDU3RyaW5nIHZh
ck5hbWUoU3RhY2tTbG90KiBzbG90KQoreworICAgIHJldHVybiB2YXJOYW1lRm9yU3RhY2tTbG90
QXRJbmRleChzbG90LT5pbmRleCgpKTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFJlZyByZWcpCit7
CisgICAgcmV0dXJuIHRvQ1N0cmluZygiUmVnLiIsIHJlZy5kZWJ1Z05hbWUoKSk7Cit9CisKK0NT
dHJpbmcgdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5kSW5kZXgoQXJnOjpUeXBlIHR5cGUsIHVuc2ln
bmVkIGluZGV4KQoreworICAgIHJldHVybiB0b0NTdHJpbmcodHlwZSA9PSBBcmc6OkZQID8gImYi
IDogIiIsICJ0bXAiLCBpbmRleCk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShUbXAgdG1wKQorewor
ICAgIGlmICh0bXAuaXNSZWcoKSkKKyAgICAgICAgcmV0dXJuIHZhck5hbWUodG1wLnJlZygpKTsK
KyAgICByZXR1cm4gdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5kSW5kZXgoQXJnKHRtcCkudHlwZSgp
LCB0bXAudG1wSW5kZXgoKSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCit2b2lk
IGR1bXBBc0pTKENvZGUmIGNvZGUsIFByaW50U3RyZWFtJiBvdXQpCit7CisgICAgb3V0LnByaW50
bG4oImxldCBjb2RlID0gbmV3IENvZGUoKTsiKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgY29kZS5zaXplKCk7ICsraSkKKyAgICAgICAgb3V0LnByaW50bG4oImxldCAiLCB2
YXJOYW1lRm9yQmxvY2tBdEluZGV4KGkpLCAiID0gY29kZS5hZGRCbG9jaygpOyIpOworICAgIAor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2RlLnN0YWNrU2xvdHMoKS5zaXplKCk7ICsr
aSkgeworICAgICAgICBTdGFja1Nsb3QqIHNsb3QgPSBjb2RlLnN0YWNrU2xvdHMoKVtpXTsKKyAg
ICAgICAgaWYgKHNsb3QpCisgICAgICAgICAgICBvdXQucHJpbnRsbigibGV0ICIsIHZhck5hbWUo
c2xvdCksICIgPSBjb2RlLmFkZFN0YWNrU2xvdCgiLCBzbG90LT5ieXRlU2l6ZSgpLCAiLCAiLCBz
bG90LT5raW5kKCksICIpOyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJpbnRs
bigiY29kZS5hZGRTdGFja1Nsb3QoMSwgU3BpbGwpOyIpOworICAgIH0KKyAgICAKKyAgICBBcmc6
OmZvckVhY2hUeXBlKAorICAgICAgICBbJl0gKEFyZzo6VHlwZSB0eXBlKSB7CisgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBjb2RlLm51bVRtcHModHlwZSk7IGktLTspIHsKKyAgICAgICAg
ICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgImxldCAiLCB2YXJOYW1l
Rm9yVG1wV2l0aFR5cGVBbmRJbmRleCh0eXBlLCBpKSwgIiA9IGNvZGUubmV3VG1wKCIsIHR5cGUs
ICIpOyIpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAKKyAgICBvdXQucHJpbnRs
bigibGV0IGluc3Q7Iik7CisgICAgb3V0LnByaW50bG4oImxldCBhcmc7Iik7CisgICAgCisgICAg
Zm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgZm9yIChGcmVxdWVudGVk
QmxvY2sgc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAgb3V0
LnByaW50bG4oCisgICAgICAgICAgICAgICAgdmFyTmFtZShibG9jayksICIuc3VjY2Vzc29ycy5h
cHBlbmQobmV3IEZyZXF1ZW50ZWRCbG9jaygiLAorICAgICAgICAgICAgICAgIHZhck5hbWUoc3Vj
Y2Vzc29yLmJsb2NrKCkpLCAiLCAiLCBzdWNjZXNzb3IuZnJlcXVlbmN5KCksICIpKTsiKTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBwcmVkZWNlc3NvciA6
IGJsb2NrLT5wcmVkZWNlc3NvcnMoKSkKKyAgICAgICAgICAgIG91dC5wcmludGxuKHZhck5hbWUo
YmxvY2spLCAiLmFkZFByZWRlY2Vzc29yKCIsIHZhck5hbWUocHJlZGVjZXNzb3IpLCAiKTsiKTsK
KyAgICAgICAgCisgICAgICAgIGZvciAoSW5zdCYgaW5zdCA6ICpibG9jaykgeworICAgICAgICAg
ICAgb3V0LnByaW50bG4oImluc3QgPSBuZXcgSW5zdCgiLCBpbnN0Lm9wY29kZSwgIik7Iik7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGluc3QuZm9yRWFjaEFyZygKKyAgICAgICAgICAgICAg
ICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUsIEFyZzo6VHlwZSwgQXJnOjpXaWR0aCkgeworICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFyZy5raW5kKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBBcmc6OkludmFsaWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlRtcDoK
KyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlVG1w
KCIsIHZhck5hbWUoYXJnLnRtcCgpKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNl
IEFyZzo6SW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFy
Zy5jcmVhdGVJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBBcmc6OkJpZ0ltbToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJh
cmcgPSBBcmcuY3JlYXRlQmlnSW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgQXJnOjpCaXRJbW06CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQu
cHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpdEltbSgiLCBhcmcudmFsdWUoKSwgIik7Iik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CisgICAgICAgICAgICAgICAg
ICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpdEltbTY0KCIsIGFyZy52YWx1
ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpBZGRyOgorICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImFyZyA9IEFyZy5jcmVhdGVBZGRyKCIsIHZhck5hbWUoYXJnLmJhc2UoKSksICIsICIsIGFy
Zy5vZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6U3RhY2s6
CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZVN0YWNrKCIsIGFyZy5zdGFja1Nsb3QoKSwgIiwg
IiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpD
YWxsQXJnOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5j
cmVhdGVDYWxsQXJnKCIsIGFyZy5vZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICBjYXNlIEFyZzo6SW5kZXg6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZUluZGV4KCIsIHZh
ck5hbWUoYXJnLmJhc2UoKSksICIsICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFy
TmFtZShhcmcuaW5kZXgoKSksICIsICIsIGFyZy5zY2FsZSgpLCAiLCAiLCBhcmcub2Zmc2V0KCks
ICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlJlbENvbmQ6CisgICAgICAg
ICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZVJlZ0NvbmQoIiwg
YXJnLmFzUmVsYXRpb25hbENvbmRpdGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
IGNhc2UgQXJnOjpSZXNDb25kOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4o
ImFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKCIsIGFyZy5hc1Jlc3VsdENvbmRpdGlvbigpLCAiKTsi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpEb3VibGVDb25kOgorICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVEb3VibGVDb25kKCIs
IGFyZy5hc0RvdWJsZUNvbmRpdGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNh
c2UgQXJnOjpTcGVjaWFsOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gSlMtQWlyIGRvZXNu
J3QgaGF2ZSBTcGVjaWFscy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpXaWR0aEFy
ZzoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRl
V2lkdGhBcmcoIiwgYXJnLndpZHRoKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmFyZ3MucHVzaChhcmcpOyIpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5zdC5vcGNv
ZGUgPT0gUGF0Y2gpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5zdC5oYXNOb25BcmdFZmZlY3Rz
KCkpCisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7Iik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0
LnByaW50bG4oImluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBbXTsiKTsKKyAgICAgICAg
ICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBbXTsiKTsKKyAg
ICAgICAgICAgICAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKCkuZm9yRWFjaCgKKyAg
ICAgICAgICAgICAgICAgICAgWyZdIChSZWcgcmVnKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBvdXQucHJpbnRsbigiaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncy5wdXNoKCIsIHZhck5h
bWUocmVnKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzKCkuZm9yRWFjaCgKKyAgICAgICAgICAgICAgICAgICAg
WyZdIChSZWcgcmVnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MucHVzaCgiLCB2YXJOYW1lKHJlZyksICIpOyIpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgb3V0LnByaW50bG4odmFyTmFtZShibG9jayksICIuYXBwZW5kKGluc3QpOyIpOworICAgICAg
ICB9CisgICAgfQorfQorCit9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckR1bXBBc0pTLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJEdW1wQXNKUy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJEdW1wQXNKUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBBaXJEdW1w
QXNKU19oCisjZGVmaW5lIEFpckR1bXBBc0pTX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNp
bmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7IG5hbWVzcGFjZSBBaXIgeworCitjbGFzcyBDb2RlOworCisvLyBUaGlzIGlzIGEgam9rZS4g
VmFyaW91cyBvcGVyYXRpb25zIG9uIEFpciBhcmUgaW50ZXJlc3RpbmcgZnJvbSBhIGJlbmNobWFy
a2luZyBzdGFuZHBvaW50LiBXZSBjYW4KKy8vIHdyaXRlIHNvbWUgQWlyIHBoYXNlcyBpbiBKUyBh
bmQgdGhlbiB1c2UgdGhhdCB0byBiZW5jaG1hcmsgSlMuCit2b2lkIGR1bXBBc0pTKENvZGUmLCBQ
cmludFN0cmVhbSYpOworCit9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQWlyRHVtcEFzSlNfaAorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24g
MjAxNjE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFpckFsbG9jYXRl
U3RhY2suaCIKICNpbmNsdWRlICJBaXJDb2RlLmgiCisjaW5jbHVkZSAiQWlyRHVtcEFzSlMuaCIK
ICNpbmNsdWRlICJBaXJFbGltaW5hdGVEZWFkQ29kZS5oIgogI2luY2x1ZGUgIkFpckZpeE9idmlv
dXNTcGlsbHMuaCIKICNpbmNsdWRlICJBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuaCIKQEAg
LTEwMiw2ICsxMDMsMTEgQEAgdm9pZCBwcmVwYXJlRm9yR2VuZXJhdGlvbihDb2RlJiBjb2RlKQog
ICAgIC8vIFByaW9yIHRvIHRoaXMgcG9pbnQgdGhlIHByb2xvZ3VlIGFuZCBlcGlsb2d1ZSBpcyBp
bXBsaWNpdC4gVGhpcyBtYWtlcyBpdCBleHBsaWNpdC4gSXQgYWxzbwogICAgIC8vIGRvZXMgdGhp
bmdzIGxpa2UgaWRlbnRpZnkgd2hpY2ggY2FsbGVlLXNhdmVzIHdlJ3JlIHVzaW5nIGFuZCBzYXZl
cyB0aGVtLgogICAgIGhhbmRsZUNhbGxlZVNhdmVzKGNvZGUpOworICAgIAorICAgIGlmIChPcHRp
b25zOjpkdW1wQWlyQXNKU0JlZm9yZUFsbG9jYXRlU3RhY2soKSkgeworICAgICAgICBkYXRhTG9n
KCJEdW1waW5nIEFpciBhcyBKUyBiZWZvcmUgYWxsb2NhdGVTdGFjazpcbiIpOworICAgICAgICBk
dW1wQXNKUyhjb2RlLCBXVEY6OmRhdGFGaWxlKCkpOworICAgIH0KIAogICAgIC8vIFRoaXMgdHVy
bnMgYWxsIFN0YWNrIGFuZCBDYWxsQXJnIEFyZ3MgaW50byBBZGRyIGFyZ3MgdGhhdCB1c2UgdGhl
IGZyYW1lIHBvaW50ZXIuIEl0IGRvZXMKICAgICAvLyB0aGlzIGJ5IGZpcnN0LWZpdCBhbGxvY2F0
aW5nIHN0YWNrIHNsb3RzLiBJdCBzaG91bGQgYmUgcHJldHR5IGRhcm4gY2xvc2UgdG8gb3B0aW1h
bCwgc28gd2UKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVy
YXRvci5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29k
ZV9nZW5lcmF0b3IucmIJKHJldmlzaW9uIDIwMTYxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkod29ya2luZyBjb3B5KQpAQCAtMTA5MCwzICsx
MDkwLDk0IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgIG91dHAucHV0cyAifSB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpciIKIH0KIAorIyBUaGlzIGlzIGEgaGFjayBmb3Ig
SlNBaXIuIEl0J3MgYSBqb2tlLgorRmlsZS5vcGVuKCJKU0Fpcl9vcGNvZGUuanMiLCAidyIpIHsK
KyAgICB8IG91dHAgfAorICAgIG91dHAucHV0cyAiXCJ1c2Ugc3RyaWN0XCI7IgorICAgIG91dHAu
cHV0cyAiLy8gR2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIgZnJvbSAjeyRmaWxlTmFt
ZX0gLS0gZG8gbm90IGVkaXQhIgorICAgIAorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAg
ICAgICAgfCBvcGNvZGUgfAorICAgICAgICBvdXRwLnB1dHMgImNvbnN0ICN7b3Bjb2RlLm5hbWV9
ID0gU3ltYm9sKCN7b3Bjb2RlLm5hbWUuaW5zcGVjdH0pOyIKKyAgICB9CisgICAgCisgICAgb3V0
cC5wdXRzICJmdW5jdGlvbiBJbnN0X2ZvckVhY2hBcmcoaW5zdCwgZnVuYykiCisgICAgb3V0cC5w
dXRzICJ7IgorICAgIG91dHAucHV0cyAic3dpdGNoIChpbnN0Lm9wY29kZSkgeyIKKyAgICAkb3Bj
b2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwKKyAgICAgICAgb3V0cC5wdXRz
ICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgaWYgb3Bjb2RlLmN1c3RvbQorICAgICAg
ICAgICAgb3V0cC5wdXRzICIje29wY29kZS5uYW1lfUN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1
bmMpOyIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmVlZE92ZXJsb2FkU3dpdGNoID0gb3Bj
b2RlLm92ZXJsb2Fkcy5zaXplICE9IDEKKyAgICAgICAgICAgIG91dHAucHV0cyAic3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7IiBpZiBuZWVkT3ZlcmxvYWRTd2l0Y2gKKyAgICAgICAgICAgIG9w
Y29kZS5vdmVybG9hZHMuZWFjaCB7CisgICAgICAgICAgICAgICAgfCBvdmVybG9hZCB8CisgICAg
ICAgICAgICAgICAgb3V0cC5wdXRzICJjYXNlICN7b3ZlcmxvYWQuc2lnbmF0dXJlLmxlbmd0aH06
IiBpZiBuZWVkT3ZlcmxvYWRTd2l0Y2gKKyAgICAgICAgICAgICAgICBvdmVybG9hZC5zaWduYXR1
cmUuZWFjaF93aXRoX2luZGV4IHsKKyAgICAgICAgICAgICAgICAgICAgfCBhcmcsIGluZGV4IHwK
KyAgICAgICAgICAgICAgICAgICAgcm9sZSA9IG5pbAorICAgICAgICAgICAgICAgICAgICBjYXNl
IGFyZy5yb2xlCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlUiCisgICAgICAgICAgICAgICAg
ICAgICAgICByb2xlID0gIlVzZSIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiRCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiRGVmIgorICAgICAgICAgICAgICAgICAgICB3aGVu
ICJaRCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiWkRlZiIKKyAgICAgICAgICAg
ICAgICAgICAgd2hlbiAiVUQiCisgICAgICAgICAgICAgICAgICAgICAgICByb2xlID0gIlVzZURl
ZiIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiVVpEIgorICAgICAgICAgICAgICAgICAgICAg
ICAgcm9sZSA9ICJVc2VaRGVmIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJVQSIKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNlQWRkciIKKyAgICAgICAgICAgICAgICAgICAg
d2hlbiAiUyIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiU2NyYXRjaCIKKyAgICAg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAg
ICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
ICAgICBvdXRwLnB1dHMgImZ1bmMoaW5zdC5hcmdzWyN7aW5kZXh9XSwgQXJnLiN7cm9sZX0sICN7
YXJnLnR5cGV9UCwgI3thcmcud2lkdGh9KTsiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgbmVlZE92ZXJsb2FkU3dpdGNoCisgICAgICAgICAgICAgICAg
b3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgInRocm93IFwi
QmFkIG92ZXJsb2FkXCI7IgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiYnJlYWs7IgorICAg
ICAgICAgICAgICAgIG91dHAucHV0cyAifSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQK
KyAgICAgICAgb3V0cC5wdXRzICJicmVhazsiCisgICAgfQorICAgIG91dHAucHV0cyAiZGVmYXVs
dDoiCisgICAgb3V0cC5wdXRzICJ0aHJvdyBcIkJhZCBvcGNvZGVcIjsiCisgICAgb3V0cC5wdXRz
ICJ9IgorICAgIG91dHAucHV0cyAifSIKKyAgICAKKyAgICBvdXRwLnB1dHMgImZ1bmN0aW9uIElu
c3RfaGFzTm9uQXJnRWZmZWN0cyhpbnN0KSIKKyAgICBvdXRwLnB1dHMgInsiCisgICAgb3V0cC5w
dXRzICJzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7IgorICAgIGZvdW5kVHJ1ZSA9IGZhbHNlCisgICAg
JG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9w
Y29kZS5hdHRyaWJ1dGVzWzp0ZXJtaW5hbF0gb3Igb3Bjb2RlLmF0dHJpYnV0ZXNbOmVmZmVjdHNd
CisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICAg
ICAgZm91bmRUcnVlID0gdHJ1ZQorICAgICAgICBlbmQKKyAgICB9CisgICAgaWYgZm91bmRUcnVl
CisgICAgICAgIG91dHAucHV0cyAicmV0dXJuIHRydWU7IgorICAgIGVuZAorICAgICRvcGNvZGVz
LnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuY3Vz
dG9tCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAg
ICAgICAgb3V0cC5wdXRzICJyZXR1cm4gI3tvcGNvZGUubmFtZX1DdXN0b20uaGFzTm9uQXJnTm9u
Q29udHJvbEVmZmVjdHMoaW5zdCk7IgorICAgICAgICBlbmQKKyAgICB9CisgICAgb3V0cC5wdXRz
ICJkZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInJldHVybiBmYWxzZTsiCisgICAgb3V0cC5wdXRz
ICJ9IgorICAgIG91dHAucHV0cyAifSIKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9SZWcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVn
LmNwcAkocmV2aXNpb24gMjAxNjE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMywxNSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAor
Y29uc3QgY2hhciogUmVnOjpkZWJ1Z05hbWUoKSBjb25zdAoreworICAgIGlmICghKnRoaXMpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChpc0dQUigpKQorICAgICAgICByZXR1cm4g
R1BSSW5mbzo6ZGVidWdOYW1lKGdwcigpKTsKKyAgICByZXR1cm4gRlBSSW5mbzo6ZGVidWdOYW1l
KGZwcigpKTsKK30KKwogdm9pZCBSZWc6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsK
ICAgICBpZiAoISp0aGlzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCShyZXZpc2lvbiAy
MDE2MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzIsNiArMTcyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9pbmRleDsKICAg
ICB9CiAgICAgCisgICAgY29uc3QgY2hhciogZGVidWdOYW1lKCkgY29uc3Q7CisgICAgCiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKICAgICBjbGFzcyBBbGxSZWdzSXRlcmFi
bGUgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNp
b24gMjAxNjE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNjYsNiArMzY2LDggQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRp
b25TdHJpbmc7CiAgICAgdihib29sLCBkdW1wTW9kdWxlTG9hZGluZ1N0YXRlLCBmYWxzZSwgTm9y
bWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCBleHBvc2VJbnRlcm5hbE1vZHVsZUxvYWRlciwg
ZmFsc2UsIE5vcm1hbCwgImV4cG9zZSB0aGUgaW50ZXJuYWwgbW9kdWxlIGxvYWRlciBvYmplY3Qg
dG8gdGhlIGdsb2JhbCBzcGFjZSBmb3IgZGVidWdnaW5nIikgXAogICAgIFwKKyAgICB2KGJvb2ws
IGR1bXBBaXJBc0pTQmVmb3JlQWxsb2NhdGVTdGFjaywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikg
XAorICAgIFwKICAgICB2KGJvb2wsIHVzZVN1cGVyU2FtcGxlciwgZmFsc2UsIE5vcm1hbCwgbnVs
bHB0cikKIAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Q
cmludFN0cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgJ
KHJldmlzaW9uIDIwMTYxNSkKKysrIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgJKHdvcmtp
bmcgY29weSkKQEAgLTcwLDYgKzcwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcHJpbnRJbnRlcm5h
bCgqdGhpcywgdmFsdWUpOwogICAgICAgICBwcmludChyZW1haW5pbmdWYWx1ZXMuLi4pOwogICAg
IH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KKyAgICB2b2lkIHByaW50
bG4oY29uc3QgVHlwZXMmLi4uIHZhbHVlcykKKyAgICB7CisgICAgICAgIHByaW50KHZhbHVlcy4u
Lik7CisgICAgICAgIHByaW50KCJcbiIpOworICAgIH0KIH07CiAKIFdURl9FWFBPUlRfUFJJVkFU
RSB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBjaGFyKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280629</attachid>
            <date>2016-06-06 13:56:20 -0700</date>
            <delta_ts>2016-06-06 16:04:42 -0700</delta_ts>
            <desc>it grows</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>109144</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9hcmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NDkgQEAKKyJ1c2Ugc3Ry
aWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xh
c3MgQXJnIHsKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICB0aGlzLl9raW5kID0g
SW52YWxpZDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzQW55VXNlKHJvbGUpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBj
YXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2Ug
QXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJn
LkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoK
KyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAg
c3RhdGljIGlzQ29sZFVzZShyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7Cisg
ICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAg
Y2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNl
IEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlpE
ZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6
CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIp
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc1dhcm1Vc2Uocm9sZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBBcmcuaXNBbnlVc2Uocm9sZSkgJiYgIUFyZy5pc0NvbGRVc2Uo
cm9sZSk7CisgICAgfQorCisgICAgc3RhdGljIGlzRWFybHlVc2Uocm9sZSkKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2Ug
QXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcu
VXNlWkRlZjoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5EZWY6
CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAg
ICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAg
ICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0
aWMgaXNMYXRlVXNlKHJvbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAg
ICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAg
ICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
Y2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFy
Zy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkRl
ZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAg
ICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzQW55RGVmKHJvbGUpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBj
YXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNl
IEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5V
c2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6
CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAg
c3RhdGljIGlzRWFybHlEZWYocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgewor
ICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAg
IGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNh
c2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5a
RGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29s
ZFVzZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcuRWFybHlE
ZWY6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNMYXRlRGVmKHJvbGUpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAg
ICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAg
ICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAg
Y2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBB
cmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2Va
RGVmOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgc3RhdGljIGlzWkRlZihyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7
CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAg
ICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAg
Y2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJn
LkVhcmx5RGVmOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICBjYXNlIEFyZy5M
YXRlQ29sZFVzZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcu
WkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9s
ZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjb25zZXJ2YXRpdmVXaWR0
aCh0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gR1AgPyBQdHIgOiA2NDsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIG1pbmltdW1XaWR0aCh0eXBlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHR5cGUgPT0gR1AgPyA4IDogMzI7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBieXRl
cyh3aWR0aCkKKyAgICB7CisgICAgICAgIHJldHVybiB3aWR0aCAvIDg7CisgICAgfQorICAgIAor
ICAgIHN0YXRpYyB3aWR0aEZvckJ5dGVzKGJ5dGVzKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChi
eXRlcykgeworICAgICAgICBjYXNlIDA6CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJl
dHVybiA4OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gMTY7CisgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmV0dXJuIDMyOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKGJ5dGVzID4gOCkKKyAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCBudW1iZXIgb2YgYnl0ZXMiKTsKKyAgICAgICAgICAgIHJldHVy
biA2NDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlVG1wKHRtcCkK
KyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5f
dG1wID0gdG1wOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0
aWMgY3JlYXRlSW1tKHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmco
KTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1
ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0
aWMgY3JlYXRlQmlnSW1tKHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBB
cmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkJpZ0ltbTsKKyAgICAgICAgcmVzdWx0
Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgY3JlYXRlQml0SW1tKHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9
IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkJpdEltbTsKKyAgICAgICAg
cmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgY3JlYXRlQml0SW1tNjQodmFsdWUpCisgICAgeworICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuQml0SW1tNjQ7
CisgICAgICAgIHJlc3VsdC5fdmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUFkZHIoYmFzZSwgb2Zmc2V0KQorICAgIHsK
KyAgICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQorICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJn
LkFkZHI7CisgICAgICAgIHJlc3VsdC5fYmFzZSA9IGJhc2U7CisgICAgICAgIHJlc3VsdC5fb2Zm
c2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBz
dGF0aWMgY3JlYXRlU3RhY2soc2xvdCwgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNl
dCA9PSBudWxsKQorICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgbGV0IHJlc3VsdCA9
IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlN0YWNrOworICAgICAgICBy
ZXN1bHQuX3Nsb3QgPSBzbG90OworICAgICAgICByZXN1bHQuX29mZnNldCA9IG9mZnNldDsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUNhbGxB
cmcob2Zmc2V0KQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAg
ICAgcmVzdWx0Ll9raW5kID0gQXJnLkNhbGxBcmc7CisgICAgICAgIHJlc3VsdC5fb2Zmc2V0ID0g
b2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
Y3JlYXRlU3RhY2tBZGRyKG9mZnNldEZyb21GUCwgZnJhbWVTaXplLCB3aWR0aCkKKyAgICB7Cisg
ICAgICAgIGxldCByZXN1bHQgPSBBcmcuY3JlYXRlQWRkcihSZWcuY2FsbEZyYW1lUmVnaXN0ZXIs
IG9mZnNldEZyb21GUCk7CisgICAgICAgIGlmICghcmVzdWx0LmlzVmFsaWRGcm9tKHdpZHRoKSkK
KyAgICAgICAgICAgIHJlc3VsdCA9IEFyZy5jcmVhdGVBZGRyKFJlZy5zdGFja1BvaW50ZXJSZWdp
c3Rlciwgb2Zmc2V0RnJvbUZQICsgZnJhbWVTaXplKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisgICAgCisgICAgc3RhdGljIGlzVmFsaWRTY2FsZShzY2FsZSwgd2lkdGgpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHNjYWxlKSB7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgY2Fz
ZSAyOgorICAgICAgICBjYXNlIDQ6CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBsb2dTY2FsZShzY2FsZSkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAoc2NhbGUpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBj
YXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAg
ICAgcmV0dXJuIDM7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkJhZCBzY2FsZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVh
dGVJbmRleChiYXNlLCBpbmRleCwgc2NhbGUsIG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChz
Y2FsZSA9PSBudWxsKQorICAgICAgICAgICAgc2NhbGUgPSAxOworICAgICAgICBpZiAob2Zmc2V0
ID09IG51bGwpCisgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICBsZXQgcmVzdWx0ID0g
bmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuSW5kZXg7CisgICAgICAgIHJl
c3VsdC5fYmFzZSA9IGJhc2U7CisgICAgICAgIHJlc3VsdC5faW5kZXggPSBpbmRleDsKKyAgICAg
ICAgcmVzdWx0Ll9zY2FsZSA9IHNjYWxlOworICAgICAgICByZXN1bHQuX29mZnNldCA9IG9mZnNl
dDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0
ZVJlbENvbmQoY29uZGl0aW9uKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmco
KTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlJlbENvbmQ7CisgICAgICAgIHJlc3VsdC5f
Y29uZGl0aW9uID0gY29uZGl0aW9uOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgY3JlYXRlUmVzQ29uZChjb25kaXRpb24pCisgICAgeworICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuUmVzQ29u
ZDsKKyAgICAgICAgcmVzdWx0Ll9jb25kaXRpb24gPSBjb25kaXRpb247CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVEb3VibGVDb25kKGNvbmRp
dGlvbikKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJl
c3VsdC5fa2luZCA9IEFyZy5Eb3VibGVDb25kOworICAgICAgICByZXN1bHQuX2NvbmRpdGlvbiA9
IGNvbmRpdGlvbjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3Rh
dGljIGNyZWF0ZVdpZHRoKHdpZHRoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBB
cmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLldpZHRoOworICAgICAgICByZXN1bHQu
X3dpZHRoID0gd2lkdGg7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAg
IGdldCBraW5kKCkgeyByZXR1cm4gdGhpcy5fa2luZDsgfQorICAgIGdldCBpc1RtcCgpIHsgcmV0
dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlRtcDsgfQorICAgIGdldCBpc0ltbSgpIHsgcmV0dXJuIHRo
aXMuX2tpbmQgPT0gQXJnLkltbTsgfQorICAgIGdldCBpc0JpZ0ltbSgpIHsgcmV0dXJuIHRoaXMu
X2tpbmQgPT0gQXJnLkJpZ0ltbTsgfQorICAgIGdldCBpc0JpdEltbSgpIHsgcmV0dXJuIHRoaXMu
X2tpbmQgPT0gQXJnLkJpdEltbTsgfQorICAgIGdldCBpc0JpdEltbTY0KCkgeyByZXR1cm4gdGhp
cy5fa2luZCA9PSBBcmcuQml0SW1tNjQ7IH0KKyAgICBnZXQgaXNTb21lSW1tKCkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbW06CisgICAg
ICAgIGNhc2UgQXJnLkJpZ0ltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICBj
YXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIGdl
dCBpc0FkZHIgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuQWRkcjsgfQorICAgIGdldCBpc1N0
YWNrIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlN0YWNrOyB9CisgICAgZ2V0IGlzQ2FsbEFy
ZyB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5DYWxsQXJnOyB9CisgICAgZ2V0IGlzSW5kZXgg
eyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuSW5kZXg7IH0KKyAgICBnZXQgaXNNZW1vcnkoKQor
ICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkFk
ZHI6CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgor
ICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQor
ICAgIGdldCBpc1N0YWNrTWVtb3J5KCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2lu
ZCkgeworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Jh
c2UgPT0gUmVnLmNhbGxGcmFtZVJlZ2lzdGVyCisgICAgICAgICAgICAgICAgfHwgdGhpcy5fYmFz
ZSA9PSBSZWcuc3RhY2tQb2ludGVyUmVnaXN0ZXI7CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgor
ICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9
CisgICAgZ2V0IGlzUmVsQ29uZCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlJlbENvbmQ7
IH0KKyAgICBnZXQgaXNSZXNDb25kKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuUmVzQ29u
ZDsgfQorICAgIGdldCBpc0RvdWJsZUNvbmQoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5E
b3VibGVDb25kOyB9CisgICAgZ2V0IGlzQ29uZGl0aW9uKCkKKyAgICB7CisgICAgICAgIHN3aXRj
aCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5SZWxDb25kOgorICAgICAgICBjYXNl
IEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFyZy5Eb3VibGVDb25kOgorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKyAgICB9CisgICAgZ2V0IGlzV2lkdGgoKSB7IHJldHVybiB0aGlzLl9raW5k
ID09IEFyZy5XaWR0aDsgfQorICAgIGdldCBpc0FsaXZlKCkgeyByZXR1cm4gdGhpcy5pc1RtcCB8
fCB0aGlzLmlzU3RhY2s7IH0KKyAgICAKKyAgICBnZXQgdG1wKCkKKyAgICB7CisgICAgICAgIGlm
ICh0aGlzLl9raW5kICE9IEFyZy5UbXApCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNh
bGxlZCAudG1wIGZvciBub24tdG1wIik7CisgICAgICAgIHJldHVybiB0aGlzLl90bXA7CisgICAg
fQorICAgIAorICAgIGdldCB2YWx1ZSgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNTb21l
SW1tKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnZhbHVlIGZvciBub24t
aW1tIik7CisgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTsKKyAgICB9CisgICAgCisgICAgZ2V0
IGJhc2UoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNh
c2UgQXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX2Jhc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkNhbGxlZCAuYmFzZSBmb3Igbm9uLWFkZHJlc3MiKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICAKKyAgICBnZXQgaGFzT2Zmc2V0KCkgeyByZXR1cm4gdGhpcy5pc01lbW9yeTsgfQorICAgIAor
ICAgIGdldCBvZmZzZXQoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7Cisg
ICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICBj
YXNlIEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9vZmZzZXQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkNhbGxlZCAub2Zmc2V0IGZvciBub24tYWRkcmVzcyIpOworICAgICAgICB9Cisg
ICAgfQorICAgIAorICAgIGdldCBzdGFja1Nsb3QoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X2tpbmQgIT0gQXJnLlN0YWNrKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQg
LnN0YWNrU2xvdCBmb3Igbm9uLWFkZHJlc3MiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Nsb3Q7
CisgICAgfQorICAgIAorICAgIGdldCBpbmRleCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
a2luZCAhPSBBcmcuSW5kZXgpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAu
aW5kZXggZm9yIG5vbi1JbmRleCIpOworICAgICAgICByZXR1cm4gdGhpcy5faW5kZXg7CisgICAg
fQorICAgIAorICAgIGdldCBzY2FsZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAh
PSBBcmcuSW5kZXgpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuc2NhbGUg
Zm9yIG5vbi1JbmRleCIpOworICAgICAgICByZXR1cm4gdGhpcy5fc2NhbGU7CisgICAgfQorICAg
IAorICAgIGdldCBsb2dTY2FsZSgpCisgICAgeworICAgICAgICByZXR1cm4gQXJnLmxvZ1NjYWxl
KHRoaXMuc2NhbGUpOworICAgIH0KKyAgICAKKyAgICBnZXQgd2lkdGgoKQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLldpZHRoKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJDYWxsZWQgLndpZHRoIGZvciBub24tV2lkdGgiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X3dpZHRoOworICAgIH0KKyAgICAKKyAgICBnZXQgaXNHUFRtcCgpIHsgcmV0dXJuIHRoaXMuaXNU
bXAgJiYgdGhpcy50bXAuaXNHUDsgfQorICAgIGdldCBpc0ZQVG1wKCkgeyByZXR1cm4gdGhpcy5p
c1RtcCAmJiB0aGlzLnRtcC5pc0ZQOyB9CisgICAgCisgICAgZ2V0IGlzR1AoKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkltbToKKyAgICAg
ICAgY2FzZSBBcmcuQmlnSW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW06CisgICAgICAgIGNh
c2UgQXJnLkJpdEltbTY0OgorICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICBjYXNlIEFy
Zy5JbmRleDoKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6CisgICAgICAgIGNhc2UgQXJnLkNhbGxB
cmc6CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6
CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgIGNhc2UgQXJnLldpZHRoOgor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLmlzR1BUbXA7CisgICAgICAgIGNhc2UgQXJnLkludmFsaWQ6CisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkJhZCBraW5kIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0
IGlzRlAoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNh
c2UgQXJnLkltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNlIEFyZy5C
aXRJbW02NDoKKyAgICAgICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVz
Q29uZDoKKyAgICAgICAgY2FzZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuV2lk
dGg6CisgICAgICAgIGNhc2UgQXJnLkludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAg
ICBjYXNlIEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgY2Fz
ZSBBcmcuQmlnSW1tOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJn
LlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRlBUbXA7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBraW5kIik7CisgICAgICAgIH0KKyAg
ICB9CisgICAgCisgICAgZ2V0IGhhc1R5cGUoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlz
Ll9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1t
OgorICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAgY2FzZSBBcmcuVG1wOgorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0IHR5cGUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuaXNHUCA/IEdQIDogRlA7CisgICAgfQorICAgIAorICAgIGlz
VHlwZSh0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2Ug
QXJnLkdQOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNHUDsKKyAgICAgICAgY2FzZSBBcmcu
RlA6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5pc0ZQOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdHlwZSIpOworICAgICAgICB9CisgICAgfQor
ICAgIAorICAgIGlzQ29tcGF0aWJsZVR5cGUob3RoZXIpCisgICAgeworICAgICAgICBpZiAodGhp
cy5oYXNUeXBlKQorICAgICAgICAgICAgcmV0dXJuIG90aGVyLmlzVHlwZSh0aGlzLnR5cGUpOwor
ICAgICAgICBpZiAob3RoZXIuaGFzVHlwZSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmlzVHlw
ZShvdGhlci50eXBlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGdl
dCBpc0dQUigpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYgdGhpcy50bXAuaXNHUFI7IH0KKyAgICBn
ZXQgZ3ByKCkgeyByZXR1cm4gdGhpcy50bXAuZ3ByOyB9CisgICAgZ2V0IGlzRlBSKCkgeyByZXR1
cm4gdGhpcy5pc1RtcCAmJiB0aGlzLnRtcC5pc0ZQUjsgfQorICAgIGdldCBmcHIoKSB7IHJldHVy
biB0aGlzLnRtcC5mcHI7IH0KKyAgICBnZXQgaXNSZWcoKSB7IHJldHVybiB0aGlzLmlzVG1wICYm
IHRoaXMudG1wLmlzUmVnOyB9CisgICAgZ2V0IHJlZygpIHsgcmV0dXJuIHRoaXMudG1wLnJlZzsg
fQorICAgIAorICAgIHN0YXRpYyBpc1ZhbGlkSW1tRm9ybSh2YWx1ZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBpc1JlcHJlc2VudGFibGVBc0ludDMyKHZhbHVlKTsKKyAgICB9CisgICAgc3RhdGlj
IGlzVmFsaWRCaXRJbW1Gb3JtKHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzUmVwcmVz
ZW50YWJsZUFzSW50MzIodmFsdWUpOworICAgIH0KKyAgICBzdGF0aWMgaXNWYWxpZEJpdEltbTY0
Rm9ybSh2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBpc1JlcHJlc2VudGFibGVBc0ludDMy
KHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzVmFsaWRBZGRyRm9ybShvZmZzZXQs
IHdpZHRoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIHN0
YXRpYyBpc1ZhbGlkSW5kZXhGb3JtKHNjYWxlLCBvZmZzZXQsIHdpZHRoKQorICAgIHsKKyAgICAg
ICAgaWYgKCFpc1ZhbGlkU2NhbGUoc2NhbGUsIHdpZHRoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGlzVmFsaWRGb3Jt
KHdpZHRoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNh
c2UgQXJnLkludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2Ug
QXJnLlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5JbW06
CisgICAgICAgICAgICByZXR1cm4gQXJnLmlzVmFsaWRJbW1Gb3JtKHRoaXMudmFsdWUpOworICAg
ICAgICBjYXNlIEFyZy5CaWdJbW06CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
Y2FzZSBBcmcuQml0SW1tOgorICAgICAgICAgICAgcmV0dXJuIEFyZy5pc1ZhbGlkQml0SW1tRm9y
bSh0aGlzLnZhbHVlKTsKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tNjQ6CisgICAgICAgICAgICBy
ZXR1cm4gQXJnLmlzVmFsaWRCaXRJbW02NEZvcm0odGhpcy52YWx1ZSk7CisgICAgICAgIGNhc2Ug
QXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAgICAgICBjYXNlIEFyZy5DYWxs
QXJnOgorICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWRBZGRyRm9ybSh0aGlzLm9mZnNldCwgd2lk
dGgpOworICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiBpc1ZhbGlk
SW5kZXhGb3JtKHRoaXMuc2NhbGUsIHRoaXMub2Zmc2V0LCB3aWR0aCk7CisgICAgICAgIGNhc2Ug
QXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJn
LkRvdWJsZUNvbmQ6CisgICAgICAgIGNhc2UgQXJnLldpZHRoOgorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCBraW5kIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZm9yRWFjaFRtcEZhc3QoZnVu
YykKKyAgICB7CisgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgc3dpdGNoICh0aGlz
Ll9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmModGhpcy5fdG1wKSkKKyAgICAgICAgICAgICAgICB0aGlzLl90bXAgPSByZXBs
YWNlbWVudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAg
ICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9iYXNlKSkKKyAgICAgICAgICAg
ICAgICB0aGlzLl9iYXNlID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBcmcuSW5kZXg6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKHRo
aXMuX2Jhc2UpKQorICAgICAgICAgICAgICAgIHRoaXMuX2Jhc2UgPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmModGhpcy5faW5kZXgpKQorICAgICAgICAg
ICAgICAgIHRoaXMuX2luZGV4ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAg
IAorICAgIHVzZXNUbXAoZXhwZWN0ZWRUbXApCisgICAgeworICAgICAgICBsZXQgdXNlc1RtcCA9
IGZhbHNlOworICAgICAgICBmb3JFYWNoVG1wRmFzdCh0bXAgPT4geworICAgICAgICAgICAgdXNl
c1RtcCB8PSB0bXAgPT0gZXhwZWN0ZWRUbXA7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4g
dXNlc1RtcDsKKyAgICB9CisgICAgCisgICAgZm9yRWFjaFRtcChyb2xlLCB0eXBlLCB3aWR0aCwg
ZnVuYykKKyAgICB7CisgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgc3dpdGNoICh0
aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmModGhpcy5fdG1wLCByb2xlLCB0eXBlLCB3aWR0aCkpCisgICAgICAgICAg
ICAgICAgdGhpcy5fdG1wID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmModGhp
cy5fYmFzZSwgQXJnLlVzZSwgR1AsIHJvbGUgPT0gQXJnLlVzZUFkZHIgPyB3aWR0aCA6IFB0cikp
CisgICAgICAgICAgICAgICAgdGhpcy5fYmFzZSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyh0aGlzLl9iYXNlLCBBcmcuVXNlLCBHUCwgcm9sZSA9PSBBcmcuVXNlQWRkciA/
IHdpZHRoIDogUHRyKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9iYXNlID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2luZGV4LCBBcmcuVXNl
LCBHUCwgcm9sZSA9PSBBcmcuVXNlQWRkciA/IHdpZHRoIDogUHRyKSkKKyAgICAgICAgICAgICAg
ICB0aGlzLl9pbmRleCA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAg
ICBpcyh0aGluZykgeyByZXR1cm4gISF0aGluZy5leHRyYWN0KHRoaXMpOyB9CisgICAgYXModGhp
bmcpIHsgcmV0dXJuIHRoaW5nLmV4dHJhY3QodGhpcyk7IH0KKyAgICAKKyAgICBmb3JFYWNoRmFz
dCh0aGluZywgZnVuYykKKyAgICB7CisgICAgICAgIHRoaW5nLmZvckVhY2hGYXN0KHRoaXMsIGZ1
bmMpOworICAgIH0KKyAgICBmb3JFYWNoKHRoaW5nLCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYykK
KyAgICB7CisgICAgICAgIHRoaW5nLmZvckVhY2godGhpcywgcm9sZSwgdHlwZSwgd2lkdGgsIGZ1
bmMpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZXh0cmFjdChhcmcpIHsgcmV0dXJuIGFyZzsg
fQorICAgIHN0YXRpYyBmb3JFYWNoRmFzdChhcmcsIGZ1bmMpIHsgYXJnLmZvckVhY2hGYXN0KGZ1
bmMpOyB9CisgICAgc3RhdGljIGZvckVhY2goYXJnLCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYykg
eyBhcmcuZm9yRWFjaChyb2xlLCB0eXBlLCB3aWR0aCwgZnVuYyk7IH0KKworICAgIGdldCBjb25k
aXRpb24KKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNl
IEFyZy5SZWxDb25kOgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFy
Zy5Eb3VibGVDb25kOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmRpdGlvbjsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5jb25kaXRp
b24gZm9yIG5vbi1jb25kaXRpb24iKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQg
aXNJbnZlcnRpYmxlCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAg
ICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuRG91YmxlQ29sZDoKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICAg
ICAgc3dpdGNoICh0aGlzLl9jb25kaXRpb24pIHsKKyAgICAgICAgICAgIGNhc2UgWmVybzoKKyAg
ICAgICAgICAgIGNhc2UgTm9uWmVybzoKKyAgICAgICAgICAgIGNhc2UgU2lnbmVkOgorICAgICAg
ICAgICAgY2FzZSBQb3NpdGl2ZU9yWmVybzoKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbnZhbGlkOgorICAgICAgICAg
ICAgcmV0dXJuICI8aW52YWxpZD4iOworICAgICAgICBjYXNlIEFyZy5UbXA6CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fdG1wLnRvU3RyaW5nKCk7CisgICAgICAgIGNhc2UgQXJnLkltbToKKyAg
ICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICAgICAgcmV0dXJuICIkIiArIHRoaXMuX3Zh
bHVlOworICAgICAgICBjYXNlIEFyZy5CaWdJbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbTY0
OgorICAgICAgICAgICAgcmV0dXJuICIkMHgiICsgdGhpcy5fdmFsdWUudG9TdHJpbmcoMTYpOwor
ICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICAgICAgcmV0dXJuICIiICsgKHRoaXMuX29m
ZnNldCA/IHRoaXMuX29mZnNldCA6ICIiKSArICIoIiArIHRoaXMuX2Jhc2UgKyAiKSI7CisgICAg
ICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICAgICAgcmV0dXJuICIiICsgKHRoaXMuX29mZnNl
dCA/IHRoaXMuX29mZnNldCA6ICIiKSArICIoIiArIHRoaXMuX2Jhc2UgKworICAgICAgICAgICAg
ICAgICIsIiArIHRoaXMuX2luZGV4ICsgKHRoaXMuX3NjYWxlID09IDEgPyAiIiA6ICIsIiArIHRo
aXMuX3NjYWxlKSArICIpIjsKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6CisgICAgICAgICAgICBy
ZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhpcy5fb2Zmc2V0IDogIiIpICsgIigiICsgdGhp
cy5fc2xvdCArICIpIjsKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgICAgIHJl
dHVybiAiIiArICh0aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikgKyAiKGNhbGxBcmcp
IjsKKyAgICAgICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoK
KyAgICAgICAgY2FzZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuV2lkdGg6Cisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fY29uZGl0aW9uLnRvU3RyaW5nKCk7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBraW5kIik6CisgICAgICAg
IH0KKyAgICB9Cit9CisKKy8vIEFyZyBraW5kcworQXJnLkludmFsaWQgPSBTeW1ib2woIkludmFs
aWQiKTsKK0FyZy5UbXAgPSBTeW1ib2woIlRtcCIpOworQXJnLkltbSA9IFN5bWJvbCgiSW1tIik7
CitBcmcuQmlnSW1tID0gU3ltYm9sKCJCaWdJbW0iKTsKK0FyZy5CaXRJbW0gPSBTeW1ib2woIkJp
dEltbSIpOworQXJnLkJpdEltbTY0ID0gU3ltYm9sKCJCaXRJbW02NCIpOworQXJnLkFkZHIgPSBT
eW1ib2woIkFkZHIiKTsKK0FyZy5TdGFjayA9IFN5bWJvbCgiU3RhY2siKTsKK0FyZy5DYWxsQXJn
ID0gU3ltYm9sKCJDYWxsQXJnIik7CitBcmcuSW5kZXggPSBTeW1ib2woIkluZGV4Iik7CitBcmcu
UmVsQ29uZCA9IFN5bWJvbCgiUmVsQ29uZCIpOworQXJnLlJlc0NvbmQgPSBTeW1ib2woIlJlc0Nv
bmQiKTsKK0FyZy5Eb3VibGVDb25kID0gU3ltYm9sKCJEb3VibGVDb25kIik7CitBcmcuV2lkdGgg
PSBTeW1ib2woIldpZHRoIik7CisKKy8vIEFyZyByb2xlcworQXJnLlVzZSA9IFN5bWJvbCgiVXNl
Iik7CitBcmcuQ29sZFVzZSA9IFN5bWJvbCgiQ29sZFVzZSIpOworQXJnLkxhdGVVc2UgPSBTeW1i
b2woIkxhdGVVc2UiKTsKK0FyZy5MYXRlQ29sZFVzZSA9IFN5bWJvbCgiTGF0ZUNvbGRVc2UiKTsK
K0FyZy5EZWYgPSBTeW1ib2woIkRlZiIpOworQXJnLlpEZWYgPSBTeW1ib2woIlpEZWYiKTsKK0Fy
Zy5Vc2VEZWYgPSBTeW1ib2woIlVzZURlZiIpOworQXJnLlVzZVpEZWYgPSBTeW1ib2woIlVzZVpE
ZWYiKTsKK0FyZy5FYXJseURlZiA9IFN5bWJvbCgiRWFybHlEZWYiKTsKK0FyZy5TY3JhdGNoID0g
U3ltYm9sKCJTY3JhdGNoIik7CitBcmcuVXNlQWRkciA9IFN5bWJvbCgiVXNlQWRkciIpOworCklu
ZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL29wY29kZS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJm
b3JtYW5jZVRlc3RzL0pTQWlyL29wY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNl
VGVzdHMvSlNBaXIvb3Bjb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIwOCBAQAor
InVzZSBzdHJpY3QiOworLy8gR2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIgZnJvbSBK
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgLS0gZG8gbm90IGVkaXQhCitj
b25zdCBOb3AgPSBTeW1ib2woIk5vcCIpOworY29uc3QgQWRkMzIgPSBTeW1ib2woIkFkZDMyIik7
Citjb25zdCBBZGQ4ID0gU3ltYm9sKCJBZGQ4Iik7Citjb25zdCBBZGQxNiA9IFN5bWJvbCgiQWRk
MTYiKTsKK2NvbnN0IEFkZDY0ID0gU3ltYm9sKCJBZGQ2NCIpOworY29uc3QgQWRkRG91YmxlID0g
U3ltYm9sKCJBZGREb3VibGUiKTsKK2NvbnN0IEFkZEZsb2F0ID0gU3ltYm9sKCJBZGRGbG9hdCIp
OworY29uc3QgU3ViMzIgPSBTeW1ib2woIlN1YjMyIik7Citjb25zdCBTdWI2NCA9IFN5bWJvbCgi
U3ViNjQiKTsKK2NvbnN0IFN1YkRvdWJsZSA9IFN5bWJvbCgiU3ViRG91YmxlIik7Citjb25zdCBT
dWJGbG9hdCA9IFN5bWJvbCgiU3ViRmxvYXQiKTsKK2NvbnN0IE5lZzMyID0gU3ltYm9sKCJOZWcz
MiIpOworY29uc3QgTmVnNjQgPSBTeW1ib2woIk5lZzY0Iik7Citjb25zdCBOZWdhdGVEb3VibGUg
PSBTeW1ib2woIk5lZ2F0ZURvdWJsZSIpOworY29uc3QgTXVsMzIgPSBTeW1ib2woIk11bDMyIik7
Citjb25zdCBNdWw2NCA9IFN5bWJvbCgiTXVsNjQiKTsKK2NvbnN0IE11bHRpcGx5QWRkMzIgPSBT
eW1ib2woIk11bHRpcGx5QWRkMzIiKTsKK2NvbnN0IE11bHRpcGx5QWRkNjQgPSBTeW1ib2woIk11
bHRpcGx5QWRkNjQiKTsKK2NvbnN0IE11bHRpcGx5U3ViMzIgPSBTeW1ib2woIk11bHRpcGx5U3Vi
MzIiKTsKK2NvbnN0IE11bHRpcGx5U3ViNjQgPSBTeW1ib2woIk11bHRpcGx5U3ViNjQiKTsKK2Nv
bnN0IE11bHRpcGx5TmVnMzIgPSBTeW1ib2woIk11bHRpcGx5TmVnMzIiKTsKK2NvbnN0IE11bHRp
cGx5TmVnNjQgPSBTeW1ib2woIk11bHRpcGx5TmVnNjQiKTsKK2NvbnN0IERpdjMyID0gU3ltYm9s
KCJEaXYzMiIpOworY29uc3QgRGl2NjQgPSBTeW1ib2woIkRpdjY0Iik7Citjb25zdCBNdWxEb3Vi
bGUgPSBTeW1ib2woIk11bERvdWJsZSIpOworY29uc3QgTXVsRmxvYXQgPSBTeW1ib2woIk11bEZs
b2F0Iik7Citjb25zdCBEaXZEb3VibGUgPSBTeW1ib2woIkRpdkRvdWJsZSIpOworY29uc3QgRGl2
RmxvYXQgPSBTeW1ib2woIkRpdkZsb2F0Iik7Citjb25zdCBYODZDb252ZXJ0VG9Eb3VibGVXb3Jk
MzIgPSBTeW1ib2woIlg4NkNvbnZlcnRUb0RvdWJsZVdvcmQzMiIpOworY29uc3QgWDg2Q29udmVy
dFRvUXVhZFdvcmQ2NCA9IFN5bWJvbCgiWDg2Q29udmVydFRvUXVhZFdvcmQ2NCIpOworY29uc3Qg
WDg2RGl2MzIgPSBTeW1ib2woIlg4NkRpdjMyIik7Citjb25zdCBYODZEaXY2NCA9IFN5bWJvbCgi
WDg2RGl2NjQiKTsKK2NvbnN0IExlYSA9IFN5bWJvbCgiTGVhIik7Citjb25zdCBBbmQzMiA9IFN5
bWJvbCgiQW5kMzIiKTsKK2NvbnN0IEFuZDY0ID0gU3ltYm9sKCJBbmQ2NCIpOworY29uc3QgQW5k
RG91YmxlID0gU3ltYm9sKCJBbmREb3VibGUiKTsKK2NvbnN0IEFuZEZsb2F0ID0gU3ltYm9sKCJB
bmRGbG9hdCIpOworY29uc3QgWG9yRG91YmxlID0gU3ltYm9sKCJYb3JEb3VibGUiKTsKK2NvbnN0
IFhvckZsb2F0ID0gU3ltYm9sKCJYb3JGbG9hdCIpOworY29uc3QgTHNoaWZ0MzIgPSBTeW1ib2wo
IkxzaGlmdDMyIik7Citjb25zdCBMc2hpZnQ2NCA9IFN5bWJvbCgiTHNoaWZ0NjQiKTsKK2NvbnN0
IFJzaGlmdDMyID0gU3ltYm9sKCJSc2hpZnQzMiIpOworY29uc3QgUnNoaWZ0NjQgPSBTeW1ib2wo
IlJzaGlmdDY0Iik7Citjb25zdCBVcnNoaWZ0MzIgPSBTeW1ib2woIlVyc2hpZnQzMiIpOworY29u
c3QgVXJzaGlmdDY0ID0gU3ltYm9sKCJVcnNoaWZ0NjQiKTsKK2NvbnN0IE9yMzIgPSBTeW1ib2wo
Ik9yMzIiKTsKK2NvbnN0IE9yNjQgPSBTeW1ib2woIk9yNjQiKTsKK2NvbnN0IFhvcjMyID0gU3lt
Ym9sKCJYb3IzMiIpOworY29uc3QgWG9yNjQgPSBTeW1ib2woIlhvcjY0Iik7Citjb25zdCBOb3Qz
MiA9IFN5bWJvbCgiTm90MzIiKTsKK2NvbnN0IE5vdDY0ID0gU3ltYm9sKCJOb3Q2NCIpOworY29u
c3QgQWJzRG91YmxlID0gU3ltYm9sKCJBYnNEb3VibGUiKTsKK2NvbnN0IEFic0Zsb2F0ID0gU3lt
Ym9sKCJBYnNGbG9hdCIpOworY29uc3QgQ2VpbERvdWJsZSA9IFN5bWJvbCgiQ2VpbERvdWJsZSIp
OworY29uc3QgQ2VpbEZsb2F0ID0gU3ltYm9sKCJDZWlsRmxvYXQiKTsKK2NvbnN0IEZsb29yRG91
YmxlID0gU3ltYm9sKCJGbG9vckRvdWJsZSIpOworY29uc3QgRmxvb3JGbG9hdCA9IFN5bWJvbCgi
Rmxvb3JGbG9hdCIpOworY29uc3QgU3FydERvdWJsZSA9IFN5bWJvbCgiU3FydERvdWJsZSIpOwor
Y29uc3QgU3FydEZsb2F0ID0gU3ltYm9sKCJTcXJ0RmxvYXQiKTsKK2NvbnN0IENvbnZlcnRJbnQz
MlRvRG91YmxlID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0RvdWJsZSIpOworY29uc3QgQ29udmVy
dEludDY0VG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRJbnQ2NFRvRG91YmxlIik7Citjb25zdCBD
b252ZXJ0SW50MzJUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0Zsb2F0Iik7Citjb25z
dCBDb252ZXJ0SW50NjRUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50NjRUb0Zsb2F0Iik7Citj
b25zdCBDb3VudExlYWRpbmdaZXJvczMyID0gU3ltYm9sKCJDb3VudExlYWRpbmdaZXJvczMyIik7
Citjb25zdCBDb3VudExlYWRpbmdaZXJvczY0ID0gU3ltYm9sKCJDb3VudExlYWRpbmdaZXJvczY0
Iik7Citjb25zdCBDb252ZXJ0RG91YmxlVG9GbG9hdCA9IFN5bWJvbCgiQ29udmVydERvdWJsZVRv
RmxvYXQiKTsKK2NvbnN0IENvbnZlcnRGbG9hdFRvRG91YmxlID0gU3ltYm9sKCJDb252ZXJ0Rmxv
YXRUb0RvdWJsZSIpOworY29uc3QgTW92ZSA9IFN5bWJvbCgiTW92ZSIpOworY29uc3QgU3dhcDMy
ID0gU3ltYm9sKCJTd2FwMzIiKTsKK2NvbnN0IFN3YXA2NCA9IFN5bWJvbCgiU3dhcDY0Iik7Citj
b25zdCBNb3ZlMzIgPSBTeW1ib2woIk1vdmUzMiIpOworY29uc3QgU3RvcmVaZXJvMzIgPSBTeW1i
b2woIlN0b3JlWmVybzMyIik7Citjb25zdCBTaWduRXh0ZW5kMzJUb1B0ciA9IFN5bWJvbCgiU2ln
bkV4dGVuZDMyVG9QdHIiKTsKK2NvbnN0IFplcm9FeHRlbmQ4VG8zMiA9IFN5bWJvbCgiWmVyb0V4
dGVuZDhUbzMyIik7Citjb25zdCBTaWduRXh0ZW5kOFRvMzIgPSBTeW1ib2woIlNpZ25FeHRlbmQ4
VG8zMiIpOworY29uc3QgWmVyb0V4dGVuZDE2VG8zMiA9IFN5bWJvbCgiWmVyb0V4dGVuZDE2VG8z
MiIpOworY29uc3QgU2lnbkV4dGVuZDE2VG8zMiA9IFN5bWJvbCgiU2lnbkV4dGVuZDE2VG8zMiIp
OworY29uc3QgTW92ZUZsb2F0ID0gU3ltYm9sKCJNb3ZlRmxvYXQiKTsKK2NvbnN0IE1vdmVEb3Vi
bGUgPSBTeW1ib2woIk1vdmVEb3VibGUiKTsKK2NvbnN0IE1vdmVaZXJvVG9Eb3VibGUgPSBTeW1i
b2woIk1vdmVaZXJvVG9Eb3VibGUiKTsKK2NvbnN0IE1vdmU2NFRvRG91YmxlID0gU3ltYm9sKCJN
b3ZlNjRUb0RvdWJsZSIpOworY29uc3QgTW92ZTMyVG9GbG9hdCA9IFN5bWJvbCgiTW92ZTMyVG9G
bG9hdCIpOworY29uc3QgTW92ZURvdWJsZVRvNjQgPSBTeW1ib2woIk1vdmVEb3VibGVUbzY0Iik7
Citjb25zdCBNb3ZlRmxvYXRUbzMyID0gU3ltYm9sKCJNb3ZlRmxvYXRUbzMyIik7Citjb25zdCBM
b2FkOCA9IFN5bWJvbCgiTG9hZDgiKTsKK2NvbnN0IFN0b3JlOCA9IFN5bWJvbCgiU3RvcmU4Iik7
Citjb25zdCBMb2FkOFNpZ25lZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQ4U2lnbmVkRXh0ZW5k
VG8zMiIpOworY29uc3QgTG9hZDE2ID0gU3ltYm9sKCJMb2FkMTYiKTsKK2NvbnN0IExvYWQxNlNp
Z25lZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQxNlNpZ25lZEV4dGVuZFRvMzIiKTsKK2NvbnN0
IFN0b3JlMTYgPSBTeW1ib2woIlN0b3JlMTYiKTsKK2NvbnN0IENvbXBhcmUzMiA9IFN5bWJvbCgi
Q29tcGFyZTMyIik7Citjb25zdCBDb21wYXJlNjQgPSBTeW1ib2woIkNvbXBhcmU2NCIpOworY29u
c3QgVGVzdDMyID0gU3ltYm9sKCJUZXN0MzIiKTsKK2NvbnN0IFRlc3Q2NCA9IFN5bWJvbCgiVGVz
dDY0Iik7Citjb25zdCBDb21wYXJlRG91YmxlID0gU3ltYm9sKCJDb21wYXJlRG91YmxlIik7Citj
b25zdCBDb21wYXJlRmxvYXQgPSBTeW1ib2woIkNvbXBhcmVGbG9hdCIpOworY29uc3QgQnJhbmNo
OCA9IFN5bWJvbCgiQnJhbmNoOCIpOworY29uc3QgQnJhbmNoMzIgPSBTeW1ib2woIkJyYW5jaDMy
Iik7Citjb25zdCBCcmFuY2g2NCA9IFN5bWJvbCgiQnJhbmNoNjQiKTsKK2NvbnN0IEJyYW5jaFRl
c3Q4ID0gU3ltYm9sKCJCcmFuY2hUZXN0OCIpOworY29uc3QgQnJhbmNoVGVzdDMyID0gU3ltYm9s
KCJCcmFuY2hUZXN0MzIiKTsKK2NvbnN0IEJyYW5jaFRlc3Q2NCA9IFN5bWJvbCgiQnJhbmNoVGVz
dDY0Iik7Citjb25zdCBCcmFuY2hEb3VibGUgPSBTeW1ib2woIkJyYW5jaERvdWJsZSIpOworY29u
c3QgQnJhbmNoRmxvYXQgPSBTeW1ib2woIkJyYW5jaEZsb2F0Iik7Citjb25zdCBCcmFuY2hBZGQz
MiA9IFN5bWJvbCgiQnJhbmNoQWRkMzIiKTsKK2NvbnN0IEJyYW5jaEFkZDY0ID0gU3ltYm9sKCJC
cmFuY2hBZGQ2NCIpOworY29uc3QgQnJhbmNoTXVsMzIgPSBTeW1ib2woIkJyYW5jaE11bDMyIik7
Citjb25zdCBCcmFuY2hNdWw2NCA9IFN5bWJvbCgiQnJhbmNoTXVsNjQiKTsKK2NvbnN0IEJyYW5j
aFN1YjMyID0gU3ltYm9sKCJCcmFuY2hTdWIzMiIpOworY29uc3QgQnJhbmNoU3ViNjQgPSBTeW1i
b2woIkJyYW5jaFN1YjY0Iik7Citjb25zdCBCcmFuY2hOZWczMiA9IFN5bWJvbCgiQnJhbmNoTmVn
MzIiKTsKK2NvbnN0IEJyYW5jaE5lZzY0ID0gU3ltYm9sKCJCcmFuY2hOZWc2NCIpOworY29uc3Qg
TW92ZUNvbmRpdGlvbmFsbHkzMiA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHkzMiIpOworY29u
c3QgTW92ZUNvbmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHk2NCIpOwor
Y29uc3QgTW92ZUNvbmRpdGlvbmFsbHlUZXN0MzIgPSBTeW1ib2woIk1vdmVDb25kaXRpb25hbGx5
VGVzdDMyIik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2NCA9IFN5bWJvbCgiTW92ZUNv
bmRpdGlvbmFsbHlUZXN0NjQiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5RG91YmxlID0gU3lt
Ym9sKCJNb3ZlQ29uZGl0aW9uYWxseURvdWJsZSIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlG
bG9hdCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlGbG9hdCIpOworY29uc3QgTW92ZURvdWJs
ZUNvbmRpdGlvbmFsbHkzMiA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkzMiIpOwor
Y29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRp
dGlvbmFsbHk2NCIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0MzIgPSBTeW1i
b2woIk1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBNb3ZlRG91YmxlQ29u
ZGl0aW9uYWxseVRlc3Q2NCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0NjQi
KTsKK2NvbnN0IE1vdmVEb3VibGVDb25kaXRpb25hbGx5RG91YmxlID0gU3ltYm9sKCJNb3ZlRG91
YmxlQ29uZGl0aW9uYWxseURvdWJsZSIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlG
bG9hdCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCIpOworY29uc3QgSnVt
cCA9IFN5bWJvbCgiSnVtcCIpOworY29uc3QgUmV0MzIgPSBTeW1ib2woIlJldDMyIik7Citjb25z
dCBSZXQ2NCA9IFN5bWJvbCgiUmV0NjQiKTsKK2NvbnN0IFJldEZsb2F0ID0gU3ltYm9sKCJSZXRG
bG9hdCIpOworY29uc3QgUmV0RG91YmxlID0gU3ltYm9sKCJSZXREb3VibGUiKTsKK2NvbnN0IE9v
cHMgPSBTeW1ib2woIk9vcHMiKTsKK2NvbnN0IFNodWZmbGUgPSBTeW1ib2woIlNodWZmbGUiKTsK
K2NvbnN0IFBhdGNoID0gU3ltYm9sKCJQYXRjaCIpOworY29uc3QgQ0NhbGwgPSBTeW1ib2woIkND
YWxsIik7Citjb25zdCBDb2xkQ0NhbGwgPSBTeW1ib2woIkNvbGRDQ2FsbCIpOworZnVuY3Rpb24g
SW5zdF9mb3JFYWNoQXJnKGluc3QsIGZ1bmMpCit7CisgICAgc3dpdGNoIChpbnN0Lm9wY29kZSkg
eworICAgIGNhc2UgTm9wOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZDMyOgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkODoKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2VEZWYsIEdQLCA4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBZGQxNjoKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgMTYpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFk
ZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAy
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAg
Y2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZERvdWJsZToKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBZGRGbG9hdDoKKyAgICAgICAgc3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LkRlZiwgRlAsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTdWIzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdWI2NDoKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1YkRvdWJsZToK
KyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdWJGbG9hdDoKKyAgICAgICAgc3dp
dGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sy
XSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOZWczMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5lZzY0Ogor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBOZWdhdGVEb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwg
RlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWwzMjoKKyAgICAgICAgc3dpdGNo
IChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE11bDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZURlZiwgR1AsIDY0KTsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVm
LCBHUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVy
bG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE11bHRpcGx5QWRkMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBNdWx0aXBseUFkZDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1szXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBNdWx0aXBseVN1YjMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TXVsdGlwbHlTdWI2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbM10sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVs
dGlwbHlOZWczMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTXVsdGlwbHlOZWc2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRGl2MzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERpdjY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE11bERvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0
KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwg
RlAsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3Zlcmxv
YWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBNdWxGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAg
Y2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXZEb3Vi
bGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGl2RmxvYXQ6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWDg2Q29udmVydFRvRG91YmxlV29yZDMyOgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFg4NkNvbnZlcnRUb1F1YWRXb3JkNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIDY0
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYODZEaXYzMjoKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFg4NkRpdjY0OgorICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGVhOgor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZUFkZHIsIEdQLCBQdHIpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIFB0cik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQW5kMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmQ2
NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmREb3VibGU6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQW5kRmxvYXQ6CisgICAgICAgIHN3aXRjaCAoaW5z
dC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5E
ZWYsIEZQLCAzMik7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2VEZWYsIEZQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgWG9yRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5n
dGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
RlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQp
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBG
UCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9h
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIFhvckZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAg
ICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAz
Mik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgMzIpOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIExzaGlmdDMy
OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTHNoaWZ0NjQ6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5aRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFJzaGlmdDMyOgorICAgICAgICBzd2l0Y2ggKGlu
c3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
WkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwg
QXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUnNoaWZ0NjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxl
bmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwg
NjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVm
LCBHUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVy
bG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFVyc2hpZnQzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAg
ICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIp
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFVy
c2hpZnQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgIGNhc2Ug
MjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3IzMjoKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE9yNjQ6CisgICAgICAgIHN3aXRjaCAoaW5z
dC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5E
ZWYsIEdQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgWG9yMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkg
eworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOwor
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQi
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBYb3I2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAgICAgY2FzZSAy
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOb3QzMjoKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDE6CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTm90NjQ6CisgICAg
ICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDE6CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBYnNEb3VibGU6Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBYnNGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENlaWxEb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAs
IDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDZWlsRmxvYXQ6CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGbG9vckRvdWJs
ZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEZsb29yRmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBG
UCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTcXJ0RG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5E
ZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3FydEZsb2F0OgorICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29u
dmVydEludDMyVG9Eb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0SW50NjRUb0RvdWJsZToKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRJ
bnQzMlRvRmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIp
OworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb252ZXJ0SW50NjRUb0Zsb2F0OgorICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ291bnRMZWFkaW5nWmVy
b3MzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDb3VudExlYWRpbmdaZXJvczY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYs
IEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udmVydERvdWJsZVRvRmxvYXQ6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDb252ZXJ0RmxvYXRUb0RvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwg
NjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmU6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5EZWYsIEdQLCBQdHIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN3YXAzMjoKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2VEZWYsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFN3YXA2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2VEZWYsIEdQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE1vdmUzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwg
R1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdG9yZVplcm8zMjoKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU2lnbkV4dGVuZDMyVG9QdHI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIFB0
cik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWmVyb0V4dGVuZDhUbzMyOgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2lnbkV4
dGVuZDhUbzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgWmVyb0V4dGVuZDE2VG8zMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRl
ZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTaWduRXh0ZW5kMTZUbzMyOgor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIE1vdmVGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAz
Mik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwg
RlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlWmVyb1RvRG91YmxlOgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNb3ZlNjRUb0RvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwg
NjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmUzMlRvRmxvYXQ6CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91
YmxlVG82NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE1vdmVGbG9hdFRvMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1As
IDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkODoKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JlODoKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCA4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2Fk
OFNpZ25lZEV4dGVuZFRvMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgOCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkMTY6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgMTYpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYs
IEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZDE2U2lnbmVkRXh0ZW5kVG8z
MjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBTdG9yZTE2OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDE2KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCAxNik7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ29tcGFyZTMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29tcGFyZTY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVGVzdDMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VGVzdDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sz
XSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcGFyZURv
dWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10s
IEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBhcmVGbG9h
dDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFy
Zy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaDg6CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZSwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaDMyOgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJd
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaDY0Ogor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaFRl
c3Q4OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFu
Y2hUZXN0MzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQnJhbmNoVGVzdDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEJyYW5jaERvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQp
OworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCcmFuY2hGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBG
UCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hBZGQzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0
LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQi
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBCcmFuY2hBZGQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAg
ICAgIGNhc2UgNDoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaE11bDMyOgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10s
IEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlNjcmF0
Y2gsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlNjcmF0Y2gs
IEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLlpEZWYsIEdQLCAz
Mik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QnJhbmNoTXVsNjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAg
ICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VaRGVmLCBHUCwgNjQpOworICAgICAg
ICBjYXNlIDY6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlNjcmF0Y2gsIEdQLCA2NCk7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1s0XSwgQXJnLlNjcmF0Y2gsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1s1XSwgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoU3ViMzI6CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2Va
RGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaFN1YjY0OgorICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJd
LCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaE5l
ZzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJyYW5jaE5lZzY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBH
UCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRpb25hbGx5MzI6Cisg
ICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDU6CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwg
QXJnLlVzZURlZiwgR1AsIFB0cik7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNl
LCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBHUCwg
UHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRyKTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3Zl
Q29uZGl0aW9uYWxseTY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAg
ICAgICAgY2FzZSA1OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworICAgICAgICBjYXNlIDY6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1s0XSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwg
QXJnLkRlZiwgR1AsIFB0cik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlUZXN0MzI6CisgICAgICAgIHN3aXRjaCAo
aW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwg
R1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZURlZiwgR1As
IFB0cik7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseVRl
c3Q2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
NToKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzRdLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10s
IEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5V
c2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQ
LCBQdHIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9h
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIE1vdmVDb25kaXRpb25hbGx5RG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwg
NjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBjYXNl
IDU6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1s0XSwgQXJnLlVzZURlZiwgR1AsIFB0cik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlGbG9hdDoKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNd
LCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcu
VXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBH
UCwgUHRyKTsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3Vi
bGVDb25kaXRpb25hbGx5MzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1s0
XSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYs
IEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFs
bHk2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10s
IEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBG
UCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3QzMjoKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sy
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2Us
IEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2NDoKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVz
ZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseURvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDY0
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3Qu
YXJnc1s1XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3Zl
RG91YmxlQ29uZGl0aW9uYWxseUZsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAz
Mik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBB
cmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEp1bXA6CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUmV0MzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJldDY0OgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBSZXRGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAz
Mik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0RG91YmxlOgorICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBP
b3BzOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNodWZmbGU6CisgICAgICAgIFNodWZmbGVD
dXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQ
YXRjaDoKKyAgICAgICAgUGF0Y2hDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDQ2FsbDoKKyAgICAgICAgQ0NhbGxDdXN0b20uZm9yRWFjaEFy
ZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xkQ0NhbGw6CisgICAg
ICAgIENvbGRDQ2FsbEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworICAgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgorICAgICAgICB0aHJvdyAiQmFkIG9wY29kZSI7CisgICAgfQorfQor
ZnVuY3Rpb24gSW5zdF9oYXNOb25BcmdFZmZlY3RzKGluc3QpCit7CisgICAgc3dpdGNoIChpbnN0
Lm9wY29kZSkgeworICAgIGNhc2UgQnJhbmNoODoKKyAgICBjYXNlIEJyYW5jaDMyOgorICAgIGNh
c2UgQnJhbmNoNjQ6CisgICAgY2FzZSBCcmFuY2hUZXN0ODoKKyAgICBjYXNlIEJyYW5jaFRlc3Qz
MjoKKyAgICBjYXNlIEJyYW5jaFRlc3Q2NDoKKyAgICBjYXNlIEJyYW5jaERvdWJsZToKKyAgICBj
YXNlIEJyYW5jaEZsb2F0OgorICAgIGNhc2UgQnJhbmNoQWRkMzI6CisgICAgY2FzZSBCcmFuY2hB
ZGQ2NDoKKyAgICBjYXNlIEJyYW5jaE11bDMyOgorICAgIGNhc2UgQnJhbmNoTXVsNjQ6CisgICAg
Y2FzZSBCcmFuY2hTdWIzMjoKKyAgICBjYXNlIEJyYW5jaFN1YjY0OgorICAgIGNhc2UgQnJhbmNo
TmVnMzI6CisgICAgY2FzZSBCcmFuY2hOZWc2NDoKKyAgICBjYXNlIEp1bXA6CisgICAgY2FzZSBS
ZXQzMjoKKyAgICBjYXNlIFJldDY0OgorICAgIGNhc2UgUmV0RmxvYXQ6CisgICAgY2FzZSBSZXRE
b3VibGU6CisgICAgY2FzZSBPb3BzOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFNo
dWZmbGU6CisgICAgICAgIHJldHVybiBTaHVmZmxlQ3VzdG9tLmhhc05vbkFyZ05vbkNvbnRyb2xF
ZmZlY3RzKGluc3QpOworICAgIGNhc2UgUGF0Y2g6CisgICAgICAgIHJldHVybiBQYXRjaEN1c3Rv
bS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKKyAgICBjYXNlIENDYWxsOgorICAg
ICAgICByZXR1cm4gQ0NhbGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7
CisgICAgY2FzZSBDb2xkQ0NhbGw6CisgICAgICAgIHJldHVybiBDb2xkQ0NhbGxDdXN0b20uaGFz
Tm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcmVnLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcmVnLmpzCShyZXZpc2lvbiAw
KQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMjcgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworY2xhc3MgUmVnIGV4dGVuZHMgVG1wQmFzZSB7CisgICAgY29uc3Ry
dWN0b3IoaW5kZXgsIHR5cGUsIG5hbWUsIGlzQ2FsbGVlU2F2ZSkKKyAgICB7CisgICAgICAgIHRo
aXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOworICAgICAgICB0
aGlzLl9uYW1lID0gbmFtZTsKKyAgICAgICAgdGhpcy5faXNDYWxsZWVTYXZlID0gISFpc0NhbGxl
ZVNhdmU7CisgICAgfQorICAgIAorICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4
OyB9CisgICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90eXBlOyB9CisgICAgZ2V0IG5hbWUo
KSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CisgICAgZ2V0IGlzQ2FsbGVlU2F2ZSgpIHsgcmV0dXJu
IHRoaXMuX2lzQ2FsbGVlU2F2ZTsgfQorICAgIAorICAgIGdldCBpc1JlZygpIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gIiUiICsg
dGhpcy5fbmFtZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGV4dHJhY3QoYXJnKQorICAgIHsK
KyAgICAgICAgaWYgKGFyZy5pc1JlZykKKyAgICAgICAgICAgIHJldHVybiBhcmcucmVnOworICAg
ICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZvckVhY2hGYXN0KGFy
ZywgZnVuYykKKyAgICB7CisgICAgICAgIGFyZy5mb3JFYWNoVG1wRmFzdCh0bXAgPT4geworICAg
ICAgICAgICAgaWYgKCF0bXAuaXNSZWcpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgcmV0dXJuIGZ1bmModG1wKTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIHN0
YXRpYyBmb3JFYWNoKGFyZywgYXJnUm9sZSwgYXJnVHlwZSwgYXJnV2lkdGgsIGZ1bmMpCisgICAg
eworICAgICAgICBhcmcuZm9yRWFjaFRtcCgKKyAgICAgICAgICAgIGFyZ1JvbGUsIGFyZ1R5cGUs
IGFyZ1dpZHRoLAorICAgICAgICAgICAgKHRtcCwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAg
ICAgICAgICAgICAgICBpZiAoIXRtcC5pc1JlZykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jKHRtcCwgcm9sZSwgdHlwZSwgd2lkdGgpOwor
ICAgICAgICAgICAgfSk7CisgICAgfQorfQorCit7CisgICAgUmVnLnJlZ3MgPSBbXTsKKyAgICBm
dW5jdGlvbiBuZXdSZWcoLi4uYXJncykKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcg
UmVnKC4uLmFyZ3MpOworICAgICAgICBSZWcucmVncy5wdXNoKHJlc3VsdCk7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gRGVmaW5lIFg4Nl82NCBHUFJzCisgICAgewor
ICAgICAgICBsZXQgaW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBuZXdHUFIobmFtZSwgaXND
YWxsZWVTYXZlKSB7IHJldHVybiBuZXdSZWcoaW5kZXgrKywgR1AsIG5hbWUsIGlzQ2FsbGVlU2F2
ZSk7IH0KKyAgICAgICAgCisgICAgICAgIFJlZy5yYXggPSBuZXdHUFIoInJheCIpOworICAgICAg
ICBSZWcucmN4ID0gbmV3R1BSKCJyY3giKTsKKyAgICAgICAgUmVnLnJkeCA9IG5ld0dQUigicmR4
Iik7CisgICAgICAgIFJlZy5yYnggPSBuZXdHUFIoInJieCIsIHRydWUpOworICAgICAgICBSZWcu
cnNwID0gbmV3R1BSKCJyc3AiKTsKKyAgICAgICAgUmVnLnJicCA9IG5ld0dQUigicmJwIiwgdHJ1
ZSk7CisgICAgICAgIFJlZy5yc2kgPSBuZXdHUFIoInJzaSIpOworICAgICAgICBSZWcucmRpID0g
bmV3R1BSKCJyZGkiKTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDg7IGkgPD0gMTU7ICsraSkKKyAg
ICAgICAgICAgIFJlZ1siciIgKyBpXSA9IG5ld0dQUigiciIgKyBpLCBpID49IDEyKTsKKyAgICB9
CisKKyAgICAvLyBEZWZpbmUgWDg2XzY0IEZQUnMuCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0g
MTU7ICsraSkKKyAgICAgICAgUmVnWyJ4bW0iICsgaV0gPSBuZXdSZWcoaSwgRlAsICJ4bW0iICsg
aSk7CisKKyAgICBSZWcuZ3BycyA9IFtdCisgICAgUmVnLmZwcnMgPSBbXQorICAgIFJlZy5jYWxs
ZWVTYXZlR1BScyA9IFtdCisgICAgUmVnLmNhbGxlZVNhdmVGUFJzID0gW10KKyAgICBSZWcuY2Fs
bGVlU2F2ZXMgPSBbXQorICAgIGZvciAobGV0IHJlZyBvZiBSZWcucmVncykgeworICAgICAgICBp
ZiAocmVnLmlzR1ApIHsKKyAgICAgICAgICAgIFJlZy5ncHJzLnB1c2gocmVnKTsKKyAgICAgICAg
ICAgIGlmIChyZWcuaXNDYWxsZWVTYXZlKQorICAgICAgICAgICAgICAgIFJlZy5jYWxsZWVTYXZl
R1BScy5wdXNoKHJlZyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBSZWcuZnBycy5w
dXNoKHJlZyk7CisgICAgICAgICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2ZSkKKyAgICAgICAgICAg
ICAgICBSZWcuY2FsbGVlU2F2ZUZQUlMucHVzaChyZWcpOworICAgICAgICB9CisgICAgICAgIGlm
IChyZWcuaXNDYWxsZWVTYXZlKQorICAgICAgICAgICAgUmVnLmNhbGxlZVNhdmVzLnB1c2gocmVn
KTsKKyAgICB9CisgICAgCisgICAgUmVnLmNhbGxGcmFtZVJlZ2lzdGVyID0gUmVnLnJicDsKKyAg
ICBSZWcuc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBSZWcucnNwOworfQpJbmRleDogUGVyZm9ybWFu
Y2VUZXN0cy9KU0Fpci9zeW1ib2xzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvc3ltYm9scy5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIv
c3ltYm9scy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc1IEBACisidXNlIHN0cmljdCI7
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIFRoaXMg
ZmlsZSBpcyBmb3IgbWlzYyBzeW1ib2xzLgorCisvLyBBcmcgdHlwZQorY29uc3QgR1AgPSBTeW1i
b2woIkdQIik7Citjb25zdCBGUCA9IFN5bWJvbCgiRlAiKTsKKworLy8gU3RhY2sgc2xvdCBraW5k
Citjb25zdCBMb2NrZWQgPSBTeW1ib2woIkxvY2tlZCIpOworY29uc3QgU3BpbGwgPSBTeW1ib2wo
IlNwaWxsIik7CisKKy8vIEZyZXF1ZW5jeSBjbGFzcworY29uc3QgTm9ybWFsID0gU3ltYm9sKCJO
b3JtYWwiKTsKK2NvbnN0IFJhcmUgPSBTeW1ib2woIlJhcmUiKTsKKworLy8gUmVsYXRpb25hbCBj
b25kaXRpb25zCitjb25zdCBFcXVhbCA9IFN5bWJvbCgiRXF1YWwiKTsKK2NvbnN0IE5vdEVxdWFs
ID0gU3ltYm9sKCJOb3RFcXVhbCIpOworY29uc3QgQWJvdmUgPSBTeW1ib2woIkFib3ZlIik7Citj
b25zdCBBYm92ZU9yRXF1YWwgPSBTeW1ib2woIkFib3ZlT3JFcXVhbCIpOworY29uc3QgQmVsb3cg
PSBTeW1ib2woIkJlbG93Iik7Citjb25zdCBCZWxvd09yRXF1YWwgPSBTeW1ib2woIkJlbG93T3JF
cXVhbCIpOworY29uc3QgR3JlYXRlclRoYW4gPSBTeW1ib2woIkdyZWF0ZXJUaGFuIik7Citjb25z
dCBHcmVhdGVyVGhhbk9yRXF1YWwgPSBTeW1ib2woIkdyZWF0ZXJUaGFuT3JFcXVhbCIpOworY29u
c3QgTGVzc1RoYW4gPSBTeW1ib2woIkxlc3NUaGFuIik7Citjb25zdCBMZXNzVGhhbk9yRXF1YWwg
PSBTeW1ib2woIkxlc3NUaGFuT3JFcXVhbCIpOworCisvLyBSZXN1bHQgY29uZGl0aW9ucworY29u
c3QgT3ZlcmZsb3cgPSBTeW1ib2woIk92ZXJmbG93Iik7Citjb25zdCBTaWduZWQgPSBTeW1ib2wo
IlNpZ25lZCIpOworY29uc3QgUG9zaXRpdmVPclplcm8gPSBTeW1ib2woIlBvc2l0aXZlT3JaZXJv
Iik7Citjb25zdCBaZXJvID0gU3ltYm9sKCJaZXJvIik7Citjb25zdCBOb25aZXJvID0gU3ltYm9s
KCJOb25aZXJvIik7CisKKy8vIERvdWJsZSBjb25kaXRpb25zCitjb25zdCBEb3VibGVFcXVhbCA9
IFN5bWJvbCgiRG91YmxlRXF1YWwiKTsKK2NvbnN0IERvdWJsZU5vdEVxdWFsID0gU3ltYm9sKCJE
b3VibGVOb3RFcXVhbCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW4gPSBTeW1ib2woIkRvdWJs
ZUdyZWF0ZXJUaGFuIik7Citjb25zdCBEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwgPSBTeW1ib2wo
IkRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbCIpOworY29uc3QgRG91YmxlTGVzc1RoYW4gPSBTeW1i
b2woIkRvdWJsZUxlc3NUaGFuIik7Citjb25zdCBEb3VibGVMZXNzVGhhbk9yRXF1YWwgPSBTeW1i
b2woIkRvdWJsZUxlc3NUaGFuT3JFcXVhbCIpOworY29uc3QgRG91YmxlRXF1YWxPclVub3JkZXJl
ZCA9IFN5bWJvbCgiRG91YmxlRXF1YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlTm90RXF1
YWxPclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlTm90RXF1YWxPclVub3JkZXJlZCIpOworY29u
c3QgRG91YmxlR3JlYXRlclRoYW5PclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRo
YW5PclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW5PckVxdWFsT3JVbm9yZGVy
ZWQgPSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbE9yVW5vcmRlcmVkIik7Citjb25z
dCBEb3VibGVMZXNzVGhhbk9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9yVW5v
cmRlcmVkIik7Citjb25zdCBEb3VibGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IFN5bWJv
bCgiRG91YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQiKTsKKworLy8gRGVmaW5lIHBvaW50
ZXJUeXBlKCkKK2NvbnN0IFB0ciA9IDY0OwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90
bXAuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXAuanMJKHJldmlz
aW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3RtcC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDUzIEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIFRtcCBleHRlbmRzIFRtcEJhc2UgeworICAgIGNv
bnN0cnVjdG9yKGluZGV4LCB0eXBlKQorICAgIHsKKyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRl
eDsKKyAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7CisgICAgfQorICAgIAorICAgIGdldCBpbmRl
eCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9CisgICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlz
Ll90eXBlOyB9CisgICAgCisgICAgZ2V0IGlzUmVnKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAK
KyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gIiUiICsgKHRoaXMuaXNHUCA/
ICIiIDogImYiKSArICJ0bXAiICsgdGhpcy5faW5kZXg7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBleHRyYWN0KGFyZykKKyAgICB7CisgICAgICAgIGlmIChhcmcuaXNUbXApCisgICAgICAgICAg
ICByZXR1cm4gYXJnLnRtcDsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3Rh
dGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykgeyBhcmcuZm9yRWFjaFRtcEZhc3QoZnVuYyk7IH0K
KyAgICBzdGF0aWMgZm9yRWFjaChhcmcsIHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKSB7IGFyZy5m
b3JFYWNoVG1wKHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKTsgfQorfQpJbmRleDogUGVyZm9ybWFu
Y2VUZXN0cy9KU0Fpci90bXBfYmFzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3Rz
L0pTQWlyL3RtcF9iYXNlLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fp
ci90bXBfYmFzZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU1IEBACisidXNlIHN0cmlj
dCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNz
IFRtcEJhc2UgeworICAgIGdldCBpc0dQKCkgeyByZXR1cm4gdGhpcy50eXBlID09IEdQOyB9Cisg
ICAgZ2V0IGlzRlAoKSB7IHJldHVybiB0aGlzLnR5cGUgPT0gRlA7IH0KKyAgICAKKyAgICBnZXQg
aXNHUFIoKSB7IHJldHVybiB0aGlzLmlzUmVnICYmIHRoaXMuaXNHUDsgfQorICAgIGdldCBpc0ZQ
UigpIHsgcmV0dXJuIHRoaXMuaXNSZWcgJiYgdGhpcy5pc0ZQOyB9CisgICAgCisgICAgZ2V0IHJl
ZygpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNSZWcpCisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkNhbGxlZCAucmVnIG9uIG5vbi1SZWciKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7
CisgICAgfQorCisgICAgZ2V0IGdwcigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNHUFIp
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuZ3ByIG9uIG5vbi1HUFIiKTsK
KyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIGdldCBmcHIoKQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLmlzRlBSKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJD
YWxsZWQgLmZwciBvbiBub24tRlBSIik7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30K
KwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci91dGlsLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBl
cmZvcm1hbmNlVGVzdHMvSlNBaXIvdXRpbC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNl
VGVzdHMvSlNBaXIvdXRpbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMwIEBACisidXNl
IHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K2Z1bmN0aW9uIGlzUmVwcmVzZW50YWJsZUFzSW50MzIodmFsdWUpCit7CisgICAgcmV0dXJuICh2
YWx1ZSB8IDApID09PSB2YWx1ZTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4Myw2ICsx
OTgzLDggQEAKIAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFD
OUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0Ez
MkU1NTAwMEE4ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87
IH07CiAJCURDMjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBB
ODg2OSAvKiBJQ1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCOEMxRDAwRTgyMjAwNEMxOEFGIC8q
IEFpckR1bXBBc0pTLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDNDU0QjhBMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi87IH07
CisJCURDNDU0QjhEMUQwMEU4MjQwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCOEIxRDAwRTgxRjAwNEMx
OEFGIC8qIEFpckR1bXBBc0pTLmggKi87IH07CiAJCURDNjA1QjVEMUNFMjZFQTAwMDU5MzcxOCAv
KiBQcm9maWxlckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IERDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCAq
LzsgfTsKIAkJREM2MDVCNUUxQ0UyNkVBMjAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVBMUNFMjZF
OTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM2MDVCNUYxQ0UyNkVBNTAwNTkzNzE4IC8qIFByb2Zp
bGVyVUlELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi87IH07CkBAIC00
MTk3LDYgKzQxOTksOCBAQAogCQlEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxw
ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENDYWxsSGVscGVy
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA1MUNBMzJFNTIwMDBB
ODg2OSAvKiBJQ1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IElDU3RhdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNjFDQTMy
RTUyMDAwQTg4NjkgLyogSUNTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJQ1N0YXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNDU0QjhBMUQwMEU4
MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4QUYg
LyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWlyRHVt
cEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNwcDsg
cGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlckV2ZW50Lmg7IHBhdGggPSBwcm9m
aWxlci9Qcm9maWxlckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1
QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9m
aWxlclVJRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODIxLDYgKzQ4MjUs
OCBAQAogCQkJCTBGRUM4NTUxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDb2RlLmggKi8sCiAJCQkJ
MEY2MTgzMjIxQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckN1c3RvbS5jcHAgKi8sCiAJCQkJMEYxMEYx
QTIxQzQyMEJGMDAwMUMwN0QyIC8qIEFpckN1c3RvbS5oICovLAorCQkJCURDNDU0QjhBMUQwMEU4
MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8sCisJCQkJREM0NTRCOEIxRDAwRTgxRjAw
NEMxOEFGIC8qIEFpckR1bXBBc0pTLmggKi8sCiAJCQkJMEY0NTcwMzYxQkU0NEM5MTAwNjJBNjI5
IC8qIEFpckVsaW1pbmF0ZURlYWRDb2RlLmNwcCAqLywKIAkJCQkwRjQ1NzAzNzFCRTQ0QzkxMDA2
MkE2MjkgLyogQWlyRWxpbWluYXRlRGVhZENvZGUuaCAqLywKIAkJCQkwRjYxODMyMzFDNDVCRjA3
MDA3MjQ1MEIgLyogQWlyRW1pdFNodWZmbGUuY3BwICovLApAQCAtNzAyMiw2ICs3MDI4LDcgQEAK
IAkJCQkwRkVDODUwNjFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRUM4NTA4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrVmFsdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbW1vbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBB
c0pTLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwQzFCREFDREFDMDA4MEZGNzQgLyogQjND
b21tdXRhdGl2aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwRTFCREFDREFDMDA4MEZG
NzQgLyogQjNDb25zdDMyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTEwMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MTA2LDYg
KzkxMTMsNyBAQAogCQkJCTE0MDU2NkQ2MTA3RUMyNzEwMDVEQkM4RCAvKiBKU0Z1bmN0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGNEEzOEY5MUM4RTEzREYwMDE5MDMxOCAvKiBTdXBlclNh
bXBsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQwMEJBIC8q
IEpTR2xvYmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNDU0
QjhDMUQwMEU4MjIwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNDdGMzlEMjEwN0VDMzc2MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTVGRDAwODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29u
c29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkz
QSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVTdGFjay5j
cHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
QWxsb2NhdGVTdGFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lm
IEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
QWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckluc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkFpcklu
c3RJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgJKHJl
dmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY4OCw3ICs2ODgsMTUgQEAgcHVibGljOgogCiAgICAgYm9vbCBp
c1NvbWVJbW0oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGlzSW1tKCkgfHwgaXNCaWdJ
bW0oKSB8fCBpc0JpdEltbSgpIHx8IGlzQml0SW1tNjQoKTsKKyAgICAgICAgc3dpdGNoIChraW5k
KCkpIHsKKyAgICAgICAgY2FzZSBJbW06CisgICAgICAgIGNhc2UgQmlnSW1tOgorICAgICAgICBj
YXNlIEJpdEltbToKKyAgICAgICAgY2FzZSBCaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgYm9vbCBpc0FkZHIoKSBjb25zdApAQCAtOTkzLDMzICsxMDAxLDYg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gdG1wKCkudG1wSW5kZXgoKTsKICAgICB9CiAKLSAg
ICAvLyBJZiAndGhpcycgaXMgYW4gYWRkcmVzcyBBcmcsIHRoZW4gaXQgcmV0dXJucyBhIG5ldyBh
ZGRyZXNzIEFyZyB3aXRoIHRoZSBhZGRpdGlvbmFsIG9mZnNldCBhcHBsaWVkLgotICAgIC8vIE5v
dGUgdGhhdCB0aGlzIGRvZXMgbm90IGNvbnNpZGVyIHdoZXRoZXIgZG9pbmcgc28gcHJvZHVjZXMg
YSB2YWxpZCBBcmcgb3Igbm90LiBVbmxlc3MgeW91IHJlYWxseQotICAgIC8vIGtub3cgd2hhdCB5
b3UncmUgZG9pbmcsIHlvdSBzaG91bGQgY2FsbCBBcmc6OmlzVmFsaWRGb3JtKCkgb24gdGhlIHJl
c3VsdC4gU29tZSBjb2RlIHdvbid0IGRvIHRoYXQsCi0gICAgLy8gbGlrZSBpZiB5b3UncmUgYXBw
bHlpbmcgYSB2ZXJ5IHNtYWxsIG9mZnNldCB0byBhIEFyZzo6c3RhY2soKSB0aGF0IHlvdSBrbm93
IGhhcyBubyBvZmZzZXQgdG8gYmVnaW4KLSAgICAvLyB3aXRoLiBJdCdzIHNhZmUgdG8gYXNzdW1l
IHRoYXQgYWxsIHRhcmdldHMgYWxsb3cgc21hbGwgb2Zmc2V0cyAobGlrZSwgMC4uNykgZm9yIEFk
ZHIsIFN0YWNrLCBhbmQKLSAgICAvLyBDYWxsQXJnLgotICAgIEFyZyB3aXRoT2Zmc2V0KGludDY0
X3QgYWRkaXRpb25hbE9mZnNldCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghaGFzT2Zmc2V0
KCkpCi0gICAgICAgICAgICByZXR1cm4gQXJnKCk7Ci0gICAgICAgIGlmIChzdW1PdmVyZmxvd3M8
aW50NjRfdD4ob2Zmc2V0KCksIGFkZGl0aW9uYWxPZmZzZXQpKQotICAgICAgICAgICAgcmV0dXJu
IEFyZygpOwotICAgICAgICBzd2l0Y2ggKGtpbmQoKSkgewotICAgICAgICBjYXNlIEFkZHI6Ci0g
ICAgICAgICAgICByZXR1cm4gYWRkcihiYXNlKCksIG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNl
dCk7Ci0gICAgICAgIGNhc2UgU3RhY2s6Ci0gICAgICAgICAgICByZXR1cm4gc3RhY2soc3RhY2tT
bG90KCksIG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNldCk7Ci0gICAgICAgIGNhc2UgQ2FsbEFy
ZzoKLSAgICAgICAgICAgIHJldHVybiBjYWxsQXJnKG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNl
dCk7Ci0gICAgICAgIGNhc2UgSW5kZXg6Ci0gICAgICAgICAgICByZXR1cm4gaW5kZXgoYmFzZSgp
LCBpbmRleCgpLCBzY2FsZSgpLCBvZmZzZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgICAgIHJldHVybiBBcmcoKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHN0YXRpYyBi
b29sIGlzVmFsaWRJbW1Gb3JtKGludDY0X3QgdmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaXNY
ODYoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnSW5saW5l
cy5oCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckFyZ0lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsODggQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJnVGhpbmdIZWxwZXI8QXJnPiB7CiAgICAgfQogfTsKIAordGVtcGxhdGU8PiBz
dHJ1Y3QgQXJnVGhpbmdIZWxwZXI8U3RhY2tTbG90Kj4geworICAgIHN0YXRpYyBib29sIGlzKGNv
bnN0IEFyZyYgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFyZy5pc1N0YWNrKCk7CisgICAg
fQorICAgIAorICAgIHN0YXRpYyBTdGFja1Nsb3QqIGFzKGNvbnN0IEFyZyYgYXJnKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFyZy5zdGFja1Nsb3QoKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoRmFzdChBcmcmIGFy
ZywgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlzU3Rh
Y2soKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIFN0YWNrU2xvdCog
c3RhY2tTbG90ID0gYXJnLnN0YWNrU2xvdCgpOworICAgICAgICBmdW5jdG9yKHN0YWNrU2xvdCk7
CisgICAgICAgIGFyZyA9IEFyZzo6c3RhY2soc3RhY2tTbG90LCBhcmcub2Zmc2V0KCkpOworICAg
IH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHN0YXRpYyB2b2lk
IGZvckVhY2goQXJnJiBhcmcsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpX
aWR0aCB3aWR0aCwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGlmICgh
YXJnLmlzU3RhY2soKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIFN0
YWNrU2xvdCogc3RhY2tTbG90ID0gYXJnLnN0YWNrU2xvdCgpOworICAgICAgICAKKyAgICAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgd2F5IHRvbyBvcHRpbWlzdGljIGFib3V0IHRoZSBtZWFuaW5nIG9m
ICJEZWYiLiBJdCBnZXRzIGx1Y2t5IGZvcgorICAgICAgICAvLyBub3cgYmVjYXVzZSBvdXIgb25s
eSB1c2Ugb2YgIkFub255bW91cyIgc3RhY2sgc2xvdHMgaGFwcGVucyB0byB3YW50IHRoZSBvcHRp
bWlzdGljCisgICAgICAgIC8vIHNlbWFudGljcy4gV2UgY291bGQgZml4IHRoaXMgYnkganVzdCBj
aGFuZ2luZyB0aGUgY29tbWVudHMgdGhhdCBkZXNjcmliZSB0aGUKKyAgICAgICAgLy8gc2VtYW50
aWNzIG9mICJBbm9ueW1vdXMiLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxMTI4CisgICAgICAgIAorICAgICAgICBmdW5jdG9yKHN0YWNrU2xv
dCwgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAgICBhcmcgPSBBcmc6OnN0YWNrKHN0YWNrU2xv
dCwgYXJnLm9mZnNldCgpKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmdUaGlu
Z0hlbHBlcjxSZWc+IHsKKyAgICBzdGF0aWMgYm9vbCBpcyhjb25zdCBBcmcmIGFyZykKKyAgICB7
CisgICAgICAgIHJldHVybiBhcmcuaXNSZWcoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFJl
ZyBhcyhjb25zdCBBcmcmIGFyZykKKyAgICB7CisgICAgICAgIHJldHVybiBhcmcucmVnKCk7Cisg
ICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgc3RhdGljIHZv
aWQgZm9yRWFjaEZhc3QoQXJnJiBhcmcsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgewor
ICAgICAgICBhcmcuZm9yRWFjaFRtcEZhc3QoCisgICAgICAgICAgICBbJl0gKFRtcCYgdG1wKSB7
CisgICAgICAgICAgICAgICAgaWYgKCF0bXAuaXNSZWcoKSkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJlZyByZWcgPSB0bXAu
cmVnKCk7CisgICAgICAgICAgICAgICAgZnVuY3RvcihyZWcpOworICAgICAgICAgICAgICAgIHRt
cCA9IFRtcChyZWcpOworICAgICAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgc3RhdGljIHZvaWQgZm9yRWFjaChBcmcmIGFyZywgQXJn
OjpSb2xlIGFyZ1JvbGUsIEFyZzo6VHlwZSBhcmdUeXBlLCBBcmc6OldpZHRoIGFyZ1dpZHRoLCBj
b25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgYXJnLmZvckVhY2hUbXAoCisg
ICAgICAgICAgICBhcmdSb2xlLCBhcmdUeXBlLCBhcmdXaWR0aCwKKyAgICAgICAgICAgIFsmXSAo
VG1wJiB0bXAsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0
aCkgeworICAgICAgICAgICAgICAgIGlmICghdG1wLmlzUmVnKCkpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSZWcgcmVnID0g
dG1wLnJlZygpOworICAgICAgICAgICAgICAgIGZ1bmN0b3IocmVnLCByb2xlLCB0eXBlLCB3aWR0
aCk7CisgICAgICAgICAgICAgICAgdG1wID0gVG1wKHJlZyk7CisgICAgICAgICAgICB9KTsKKyAg
ICB9Cit9OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUaGluZz4KIGJvb2wgQXJnOjppcygpIGNvbnN0
CiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFz
SlMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJBaXJEdW1wQXNKUy5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkFp
ckNvZGUuaCIKKyNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisKK25hbWVzcGFjZSB7CisKK0NTdHJpbmcg
dmFyTmFtZUZvckJsb2NrQXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gdG9D
U3RyaW5nKCJiYiIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKEJhc2ljQmxvY2sqIGJs
b2NrKQoreworICAgIHJldHVybiB2YXJOYW1lRm9yQmxvY2tBdEluZGV4KGJsb2NrLT5pbmRleCgp
KTsKK30KKworQ1N0cmluZyB2YXJOYW1lRm9yU3RhY2tTbG90QXRJbmRleCh1bnNpZ25lZCBpbmRl
eCkKK3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKCJzbG90IiwgaW5kZXgpOworfQorCitDU3RyaW5n
IHZhck5hbWUoU3RhY2tTbG90KiBzbG90KQoreworICAgIHJldHVybiB2YXJOYW1lRm9yU3RhY2tT
bG90QXRJbmRleChzbG90LT5pbmRleCgpKTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFJlZyByZWcp
Cit7CisgICAgcmV0dXJuIHRvQ1N0cmluZygiUmVnLiIsIHJlZy5kZWJ1Z05hbWUoKSk7Cit9CisK
K0NTdHJpbmcgdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5kSW5kZXgoQXJnOjpUeXBlIHR5cGUsIHVu
c2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiB0b0NTdHJpbmcodHlwZSA9PSBBcmc6OkZQID8g
ImYiIDogIiIsICJ0bXAiLCBpbmRleCk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShUbXAgdG1wKQor
eworICAgIGlmICh0bXAuaXNSZWcoKSkKKyAgICAgICAgcmV0dXJuIHZhck5hbWUodG1wLnJlZygp
KTsKKyAgICByZXR1cm4gdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5kSW5kZXgoQXJnKHRtcCkudHlw
ZSgpLCB0bXAudG1wSW5kZXgoKSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCit2
b2lkIGR1bXBBc0pTKENvZGUmIGNvZGUsIFByaW50U3RyZWFtJiBvdXQpCit7CisgICAgb3V0LnBy
aW50bG4oImxldCBjb2RlID0gbmV3IENvZGUoKTsiKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgY29kZS5zaXplKCk7ICsraSkKKyAgICAgICAgb3V0LnByaW50bG4oImxldCAi
LCB2YXJOYW1lRm9yQmxvY2tBdEluZGV4KGkpLCAiID0gY29kZS5hZGRCbG9jaygpOyIpOworICAg
IAorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2RlLnN0YWNrU2xvdHMoKS5zaXplKCk7
ICsraSkgeworICAgICAgICBTdGFja1Nsb3QqIHNsb3QgPSBjb2RlLnN0YWNrU2xvdHMoKVtpXTsK
KyAgICAgICAgaWYgKHNsb3QpCisgICAgICAgICAgICBvdXQucHJpbnRsbigibGV0ICIsIHZhck5h
bWUoc2xvdCksICIgPSBjb2RlLmFkZFN0YWNrU2xvdCgiLCBzbG90LT5ieXRlU2l6ZSgpLCAiLCAi
LCBzbG90LT5raW5kKCksICIpOyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJp
bnRsbigiY29kZS5hZGRTdGFja1Nsb3QoMSwgU3BpbGwpOyIpOworICAgIH0KKyAgICAKKyAgICBB
cmc6OmZvckVhY2hUeXBlKAorICAgICAgICBbJl0gKEFyZzo6VHlwZSB0eXBlKSB7CisgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBjb2RlLm51bVRtcHModHlwZSk7IGktLTspIHsKKyAgICAg
ICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgImxldCAiLCB2YXJO
YW1lRm9yVG1wV2l0aFR5cGVBbmRJbmRleCh0eXBlLCBpKSwgIiA9IGNvZGUubmV3VG1wKCIsIHR5
cGUsICIpOyIpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAKKyAgICBvdXQucHJp
bnRsbigibGV0IGluc3Q7Iik7CisgICAgb3V0LnByaW50bG4oImxldCBhcmc7Iik7CisgICAgCisg
ICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgZm9yIChGcmVxdWVu
dGVkQmxvY2sgc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAg
b3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgdmFyTmFtZShibG9jayksICIuc3VjY2Vzc29y
cy5hcHBlbmQobmV3IEZyZXF1ZW50ZWRCbG9jaygiLAorICAgICAgICAgICAgICAgIHZhck5hbWUo
c3VjY2Vzc29yLmJsb2NrKCkpLCAiLCAiLCBzdWNjZXNzb3IuZnJlcXVlbmN5KCksICIpKTsiKTsK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBwcmVkZWNlc3Nv
ciA6IGJsb2NrLT5wcmVkZWNlc3NvcnMoKSkKKyAgICAgICAgICAgIG91dC5wcmludGxuKHZhck5h
bWUoYmxvY2spLCAiLmFkZFByZWRlY2Vzc29yKCIsIHZhck5hbWUocHJlZGVjZXNzb3IpLCAiKTsi
KTsKKyAgICAgICAgCisgICAgICAgIGZvciAoSW5zdCYgaW5zdCA6ICpibG9jaykgeworICAgICAg
ICAgICAgb3V0LnByaW50bG4oImluc3QgPSBuZXcgSW5zdCgiLCBpbnN0Lm9wY29kZSwgIik7Iik7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGluc3QuZm9yRWFjaEFyZygKKyAgICAgICAgICAg
ICAgICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUsIEFyZzo6VHlwZSwgQXJnOjpXaWR0aCkgewor
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFyZy5raW5kKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBBcmc6OkludmFsaWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlRt
cDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRl
VG1wKCIsIHZhck5hbWUoYXJnLnRtcCgpKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBj
YXNlIEFyZzo6SW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9
IEFyZy5jcmVhdGVJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBBcmc6OkJpZ0ltbToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxu
KCJhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgQXJnOjpCaXRJbW06CisgICAgICAgICAgICAgICAgICAgICAgICBv
dXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpdEltbSgiLCBhcmcudmFsdWUoKSwgIik7Iik7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CisgICAgICAgICAgICAg
ICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpdEltbTY0KCIsIGFyZy52
YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpBZGRyOgorICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImFyZyA9IEFyZy5jcmVhdGVBZGRyKCIsIHZhck5hbWUoYXJnLmJhc2UoKSksICIsICIs
IGFyZy5vZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6U3Rh
Y2s6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZVN0YWNrKCIsIGFyZy5zdGFja1Nsb3QoKSwg
IiwgIiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJn
OjpDYWxsQXJnOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFy
Zy5jcmVhdGVDYWxsQXJnKCIsIGFyZy5vZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
ICAgICBjYXNlIEFyZzo6SW5kZXg6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRs
bigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZUluZGV4KCIs
IHZhck5hbWUoYXJnLmJhc2UoKSksICIsICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmFyTmFtZShhcmcuaW5kZXgoKSksICIsICIsIGFyZy5zY2FsZSgpLCAiLCAiLCBhcmcub2Zmc2V0
KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlJlbENvbmQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZVJlZ0NvbmQo
IiwgYXJnLmFzUmVsYXRpb25hbENvbmRpdGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQXJnOjpSZXNDb25kOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50
bG4oImFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKCIsIGFyZy5hc1Jlc3VsdENvbmRpdGlvbigpLCAi
KTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpEb3VibGVDb25kOgorICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVEb3VibGVDb25k
KCIsIGFyZy5hc0RvdWJsZUNvbmRpdGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
IGNhc2UgQXJnOjpTcGVjaWFsOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gSlMtQWlyIGRv
ZXNuJ3QgaGF2ZSBTcGVjaWFscy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpXaWR0
aEFyZzoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3Jl
YXRlV2lkdGhBcmcoIiwgYXJnLndpZHRoKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmFyZ3MucHVzaChhcmcpOyIpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5zdC5v
cGNvZGUgPT0gUGF0Y2gpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5zdC5oYXNOb25BcmdFZmZl
Y3RzKCkpCisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7Iik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
b3V0LnByaW50bG4oImluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBbXTsiKTsKKyAgICAg
ICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBbXTsiKTsK
KyAgICAgICAgICAgICAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKCkuZm9yRWFjaCgK
KyAgICAgICAgICAgICAgICAgICAgWyZdIChSZWcgcmVnKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBvdXQucHJpbnRsbigiaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncy5wdXNoKCIsIHZh
ck5hbWUocmVnKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzKCkuZm9yRWFjaCgKKyAgICAgICAgICAgICAgICAg
ICAgWyZdIChSZWcgcmVnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigi
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MucHVzaCgiLCB2YXJOYW1lKHJlZyksICIpOyIpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgb3V0LnByaW50bG4odmFyTmFtZShibG9jayksICIuYXBwZW5kKGluc3QpOyIpOworICAg
ICAgICB9CisgICAgfQorfQorCit9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCisKKyNl
bmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckR1bXBBc0pTLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJEdW1wQXNKUy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJEdW1wQXNKUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBBaXJE
dW1wQXNKU19oCisjZGVmaW5lIEFpckR1bXBBc0pTX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisK
KyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBCMyB7IG5hbWVzcGFjZSBBaXIgeworCitjbGFzcyBDb2RlOworCisvLyBUaGlzIGlzIGEgam9r
ZS4gVmFyaW91cyBvcGVyYXRpb25zIG9uIEFpciBhcmUgaW50ZXJlc3RpbmcgZnJvbSBhIGJlbmNo
bWFya2luZyBzdGFuZHBvaW50LiBXZSBjYW4KKy8vIHdyaXRlIHNvbWUgQWlyIHBoYXNlcyBpbiBK
UyBhbmQgdGhlbiB1c2UgdGhhdCB0byBiZW5jaG1hcmsgSlMuCit2b2lkIGR1bXBBc0pTKENvZGUm
LCBQcmludFN0cmVhbSYpOworCit9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCisKKyNl
bmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQWlyRHVtcEFzSlNfaAorCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4T2J2aW91c1Nw
aWxscy5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJBcmdJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQWlyUGhhc2VTY29wZS5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3
IEBACiAKICNpbmNsdWRlICJBaXJBbGxvY2F0ZVN0YWNrLmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5o
IgorI2luY2x1ZGUgIkFpckR1bXBBc0pTLmgiCiAjaW5jbHVkZSAiQWlyRWxpbWluYXRlRGVhZENv
ZGUuaCIKICNpbmNsdWRlICJBaXJGaXhPYnZpb3VzU3BpbGxzLmgiCiAjaW5jbHVkZSAiQWlyRml4
UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmgiCkBAIC0xMDIsNiArMTAzLDExIEBAIHZvaWQgcHJlcGFy
ZUZvckdlbmVyYXRpb24oQ29kZSYgY29kZSkKICAgICAvLyBQcmlvciB0byB0aGlzIHBvaW50IHRo
ZSBwcm9sb2d1ZSBhbmQgZXBpbG9ndWUgaXMgaW1wbGljaXQuIFRoaXMgbWFrZXMgaXQgZXhwbGlj
aXQuIEl0IGFsc28KICAgICAvLyBkb2VzIHRoaW5ncyBsaWtlIGlkZW50aWZ5IHdoaWNoIGNhbGxl
ZS1zYXZlcyB3ZSdyZSB1c2luZyBhbmQgc2F2ZXMgdGhlbS4KICAgICBoYW5kbGVDYWxsZWVTYXZl
cyhjb2RlKTsKKyAgICAKKyAgICBpZiAoT3B0aW9uczo6ZHVtcEFpckFzSlNCZWZvcmVBbGxvY2F0
ZVN0YWNrKCkpIHsKKyAgICAgICAgZGF0YUxvZygiRHVtcGluZyBBaXIgYXMgSlMgYmVmb3JlIGFs
bG9jYXRlU3RhY2s6XG4iKTsKKyAgICAgICAgZHVtcEFzSlMoY29kZSwgV1RGOjpkYXRhRmlsZSgp
KTsKKyAgICB9CiAKICAgICAvLyBUaGlzIHR1cm5zIGFsbCBTdGFjayBhbmQgQ2FsbEFyZyBBcmdz
IGludG8gQWRkciBhcmdzIHRoYXQgdXNlIHRoZSBmcmFtZSBwb2ludGVyLiBJdCBkb2VzCiAgICAg
Ly8gdGhpcyBieSBmaXJzdC1maXQgYWxsb2NhdGluZyBzdGFjayBzbG90cy4gSXQgc2hvdWxkIGJl
IHByZXR0eSBkYXJuIGNsb3NlIHRvIG9wdGltYWwsIHNvIHdlCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5saW5lcy5oCShyZXZpc2lvbiAyMDE3MTYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDY1ICszNiwxMyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsgbmFtZXNwYWNlIEFpciB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBGb3JFYWNo
OwotdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxUbXA+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBGdW5jdG9yPgotICAgIHN0YXRpYyB2b2lkIGZvckVhY2goSW5zdCYgaW5zdCwgY29uc3QgRnVu
Y3RvciYgZnVuY3RvcikKLSAgICB7Ci0gICAgICAgIGluc3QuZm9yRWFjaFRtcChmdW5jdG9yKTsK
LSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNoPEFyZz4gewotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQgZm9yRWFjaChJbnN0JiBpbnN0
LCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAgICAgaW5zdC5mb3JFYWNoQXJn
KGZ1bmN0b3IpOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8U3RhY2tT
bG90Kj4gewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQg
Zm9yRWFjaChJbnN0JiBpbnN0LCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAg
ICAgaW5zdC5mb3JFYWNoQXJnKAotICAgICAgICAgICAgWyZdIChBcmcmIGFyZywgQXJnOjpSb2xl
IHJvbGUsIEFyZzo6VHlwZSB0eXBlLCBBcmc6OldpZHRoIHdpZHRoKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKCFhcmcuaXNTdGFjaygpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICAgICAgU3RhY2tTbG90KiBzdGFja1Nsb3QgPSBhcmcuc3RhY2tTbG90KCk7Ci0KLSAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3YXkgdG9vIG9wdGltaXN0aWMgYWJvdXQg
dGhlIG1lYW5pbmcgb2YgIkRlZiIuIEl0IGdldHMgbHVja3kgZm9yCi0gICAgICAgICAgICAgICAg
Ly8gbm93IGJlY2F1c2Ugb3VyIG9ubHkgdXNlIG9mICJBbm9ueW1vdXMiIHN0YWNrIHNsb3RzIGhh
cHBlbnMgdG8gd2FudCB0aGUgb3B0aW1pc3RpYwotICAgICAgICAgICAgICAgIC8vIHNlbWFudGlj
cy4gV2UgY291bGQgZml4IHRoaXMgYnkganVzdCBjaGFuZ2luZyB0aGUgY29tbWVudHMgdGhhdCBk
ZXNjcmliZSB0aGUKLSAgICAgICAgICAgICAgICAvLyBzZW1hbnRpY3Mgb2YgIkFub255bW91cyIu
Ci0gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MTEyOAotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGZ1bmN0b3Ioc3Rh
Y2tTbG90LCByb2xlLCB0eXBlLCB3aWR0aCk7Ci0gICAgICAgICAgICAgICAgYXJnID0gQXJnOjpz
dGFjayhzdGFja1Nsb3QsIGFyZy5vZmZzZXQoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICB9Ci19
OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNoPFJlZz4gewotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQgZm9yRWFjaChJbnN0JiBpbnN0LCBjb25zdCBG
dW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAgICAgaW5zdC5mb3JFYWNoVG1wKAotICAgICAg
ICAgICAgWyZdIChUbXAmIHRtcCwgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0eXBlLCBBcmc6
OldpZHRoIHdpZHRoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0bXAuaXNSZWcoKSkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICAgICAgUmVnIHJlZyA9IHRtcC5y
ZWcoKTsKLSAgICAgICAgICAgICAgICBmdW5jdG9yKHJlZywgcm9sZSwgdHlwZSwgd2lkdGgpOwot
ICAgICAgICAgICAgICAgIHRtcCA9IFRtcChyZWcpOwotICAgICAgICAgICAgfSk7Ci0gICAgfQot
fTsKLQogdGVtcGxhdGU8dHlwZW5hbWUgVGhpbmcsIHR5cGVuYW1lIEZ1bmN0b3I+CiB2b2lkIElu
c3Q6OmZvckVhY2goY29uc3QgRnVuY3RvciYgZnVuY3RvcikKIHsKLSAgICBGb3JFYWNoPFRoaW5n
Pjo6Zm9yRWFjaCgqdGhpcywgZnVuY3Rvcik7CisgICAgZm9yRWFjaEFyZygKKyAgICAgICAgWyZd
IChBcmcmIGFyZywgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0eXBlLCBBcmc6OldpZHRoIHdp
ZHRoKSB7CisgICAgICAgICAgICBhcmcuZm9yRWFjaDxUaGluZz4ocm9sZSwgdHlwZSwgd2lkdGgs
IGZ1bmN0b3IpOworICAgICAgICB9KTsKIH0KIAogaW5saW5lIGNvbnN0IFJlZ2lzdGVyU2V0JiBJ
bnN0OjpleHRyYUNsb2JiZXJlZFJlZ3MoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJMb2dSZWdpc3RlclByZXNzdXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckxvZ1JlZ2lzdGVyUHJlc3N1cmUuY3BwCShyZXZpc2lvbiAy
MDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckxvZ1JlZ2lzdGVyUHJl
c3N1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUo
QjNfSklUKQogCisjaW5jbHVkZSAiQWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNvZGUu
aCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckxpdmVuZXNzLmgi
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclJlcG9ydFVzZWRSZWdpc3Rl
cnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUmVw
b3J0VXNlZFJlZ2lzdGVycy5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJB
cmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiQWlyTGl2ZW5lc3MuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyU3BpbGxFdmVyeXRoaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwaWxsRXZlcnl0aGluZy5jcHAJKHJldmlzaW9uIDIw
MTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BpbGxFdmVyeXRoaW5n
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJ
VCkKIAorI2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAj
aW5jbHVkZSAiQWlySW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0
b3IucmIJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
b3Bjb2RlX2dlbmVyYXRvci5yYgkod29ya2luZyBjb3B5KQpAQCAtMTA5MCwzICsxMDkwLDk2IEBA
IHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgIG91dHAucHV0cyAifSB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6QjM6OkFpciIKIH0KIAorIyBUaGlzIGlzIGEgaGFjayBmb3IgSlNBaXIuIEl0
J3MgYSBqb2tlLgorRmlsZS5vcGVuKCJKU0Fpcl9vcGNvZGUuanMiLCAidyIpIHsKKyAgICB8IG91
dHAgfAorICAgIG91dHAucHV0cyAiXCJ1c2Ugc3RyaWN0XCI7IgorICAgIG91dHAucHV0cyAiLy8g
R2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIgZnJvbSAjeyRmaWxlTmFtZX0gLS0gZG8g
bm90IGVkaXQhIgorICAgIAorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBv
cGNvZGUgfAorICAgICAgICBvdXRwLnB1dHMgImNvbnN0ICN7b3Bjb2RlLm5hbWV9ID0gU3ltYm9s
KCN7b3Bjb2RlLm5hbWUuaW5zcGVjdH0pOyIKKyAgICB9CisgICAgCisgICAgb3V0cC5wdXRzICJm
dW5jdGlvbiBJbnN0X2ZvckVhY2hBcmcoaW5zdCwgZnVuYykiCisgICAgb3V0cC5wdXRzICJ7Igor
ICAgIG91dHAucHV0cyAibGV0IHJlcGxhY2VtZW50OyIKKyAgICBvdXRwLnB1dHMgInN3aXRjaCAo
aW5zdC5vcGNvZGUpIHsiCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9w
Y29kZSB8CisgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAg
IGlmIG9wY29kZS5jdXN0b20KKyAgICAgICAgICAgIG91dHAucHV0cyAiI3tvcGNvZGUubmFtZX1D
dXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsiCisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG5lZWRPdmVybG9hZFN3aXRjaCA9IG9wY29kZS5vdmVybG9hZHMuc2l6ZSAhPSAxCisgICAgICAg
ICAgICBvdXRwLnB1dHMgInN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeyIgaWYgbmVlZE92ZXJs
b2FkU3dpdGNoCisgICAgICAgICAgICBvcGNvZGUub3ZlcmxvYWRzLmVhY2ggeworICAgICAgICAg
ICAgICAgIHwgb3ZlcmxvYWQgfAorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje292
ZXJsb2FkLnNpZ25hdHVyZS5sZW5ndGh9OiIgaWYgbmVlZE92ZXJsb2FkU3dpdGNoCisgICAgICAg
ICAgICAgICAgb3ZlcmxvYWQuc2lnbmF0dXJlLmVhY2hfd2l0aF9pbmRleCB7CisgICAgICAgICAg
ICAgICAgICAgIHwgYXJnLCBpbmRleCB8CisgICAgICAgICAgICAgICAgICAgIHJvbGUgPSBuaWwK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBhcmcucm9sZQorICAgICAgICAgICAgICAgICAgICB3
aGVuICJVIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJVc2UiCisgICAgICAgICAg
ICAgICAgICAgIHdoZW4gIkQiCisgICAgICAgICAgICAgICAgICAgICAgICByb2xlID0gIkRlZiIK
KyAgICAgICAgICAgICAgICAgICAgd2hlbiAiWkQiCisgICAgICAgICAgICAgICAgICAgICAgICBy
b2xlID0gIlpEZWYiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlVEIgorICAgICAgICAgICAg
ICAgICAgICAgICAgcm9sZSA9ICJVc2VEZWYiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlVa
RCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNlWkRlZiIKKyAgICAgICAgICAg
ICAgICAgICAgd2hlbiAiVUEiCisgICAgICAgICAgICAgICAgICAgICAgICByb2xlID0gIlVzZUFk
ZHIiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlMiCisgICAgICAgICAgICAgICAgICAgICAg
ICByb2xlID0gIlNjcmF0Y2giCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1sje2luZGV4fV0sIEFyZy4je3JvbGV9LCAje2FyZy50eXBlfVAsICN7
YXJnLndpZHRofSkpIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnB1dHMgImluc3QuYXJnc1sj
e2luZGV4fV0gPSByZXBsYWNlbWVudDsiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fQorICAgICAgICAgICAgaWYgbmVlZE92ZXJsb2FkU3dpdGNoCisgICAgICAgICAgICAgICAgb3V0
cC5wdXRzICJkZWZhdWx0OiIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgInRocm93IFwiQmFk
IG92ZXJsb2FkXCI7IgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiYnJlYWs7IgorICAgICAg
ICAgICAgICAgIG91dHAucHV0cyAifSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQKKyAg
ICAgICAgb3V0cC5wdXRzICJicmVhazsiCisgICAgfQorICAgIG91dHAucHV0cyAiZGVmYXVsdDoi
CisgICAgb3V0cC5wdXRzICJ0aHJvdyBcIkJhZCBvcGNvZGVcIjsiCisgICAgb3V0cC5wdXRzICJ9
IgorICAgIG91dHAucHV0cyAifSIKKyAgICAKKyAgICBvdXRwLnB1dHMgImZ1bmN0aW9uIEluc3Rf
aGFzTm9uQXJnRWZmZWN0cyhpbnN0KSIKKyAgICBvdXRwLnB1dHMgInsiCisgICAgb3V0cC5wdXRz
ICJzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7IgorICAgIGZvdW5kVHJ1ZSA9IGZhbHNlCisgICAgJG9w
Y29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29k
ZS5hdHRyaWJ1dGVzWzp0ZXJtaW5hbF0gb3Igb3Bjb2RlLmF0dHJpYnV0ZXNbOmVmZmVjdHNdCisg
ICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICAgICAg
Zm91bmRUcnVlID0gdHJ1ZQorICAgICAgICBlbmQKKyAgICB9CisgICAgaWYgZm91bmRUcnVlCisg
ICAgICAgIG91dHAucHV0cyAicmV0dXJuIHRydWU7IgorICAgIGVuZAorICAgICRvcGNvZGVzLnZh
bHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuY3VzdG9t
CisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICAg
ICAgb3V0cC5wdXRzICJyZXR1cm4gI3tvcGNvZGUubmFtZX1DdXN0b20uaGFzTm9uQXJnTm9uQ29u
dHJvbEVmZmVjdHMoaW5zdCk7IgorICAgICAgICBlbmQKKyAgICB9CisgICAgb3V0cC5wdXRzICJk
ZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInJldHVybiBmYWxzZTsiCisgICAgb3V0cC5wdXRzICJ9
IgorICAgIG91dHAucHV0cyAifSIKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZWcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmNw
cAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMywxNSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY29u
c3QgY2hhciogUmVnOjpkZWJ1Z05hbWUoKSBjb25zdAoreworICAgIGlmICghKnRoaXMpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChpc0dQUigpKQorICAgICAgICByZXR1cm4gR1BS
SW5mbzo6ZGVidWdOYW1lKGdwcigpKTsKKyAgICByZXR1cm4gRlBSSW5mbzo6ZGVidWdOYW1lKGZw
cigpKTsKK30KKwogdm9pZCBSZWc6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAg
ICBpZiAoISp0aGlzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCShyZXZpc2lvbiAyMDE3
MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzIsNiArMTcyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9pbmRleDsKICAgICB9
CiAgICAgCisgICAgY29uc3QgY2hhciogZGVidWdOYW1lKCkgY29uc3Q7CisgICAgCiAgICAgdm9p
ZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKICAgICBjbGFzcyBBbGxSZWdzSXRlcmFibGUg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24g
MjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNjgsNiArMzY4LDggQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25T
dHJpbmc7CiAgICAgdihib29sLCBkdW1wTW9kdWxlTG9hZGluZ1N0YXRlLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgdihib29sLCBleHBvc2VJbnRlcm5hbE1vZHVsZUxvYWRlciwgZmFs
c2UsIE5vcm1hbCwgImV4cG9zZSB0aGUgaW50ZXJuYWwgbW9kdWxlIGxvYWRlciBvYmplY3QgdG8g
dGhlIGdsb2JhbCBzcGFjZSBmb3IgZGVidWdnaW5nIikgXAogICAgIFwKKyAgICB2KGJvb2wsIGR1
bXBBaXJBc0pTQmVmb3JlQWxsb2NhdGVTdGFjaywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAor
ICAgIFwKICAgICB2KGJvb2wsIHVzZVN1cGVyU2FtcGxlciwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikKIAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9Qcmlu
dFN0cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgJKHJl
dmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTcwLDYgKzcwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcHJpbnRJbnRlcm5hbCgq
dGhpcywgdmFsdWUpOwogICAgICAgICBwcmludChyZW1haW5pbmdWYWx1ZXMuLi4pOwogICAgIH0K
KyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KKyAgICB2b2lkIHByaW50bG4o
Y29uc3QgVHlwZXMmLi4uIHZhbHVlcykKKyAgICB7CisgICAgICAgIHByaW50KHZhbHVlcy4uLik7
CisgICAgICAgIHByaW50KCJcbiIpOworICAgIH0KIH07CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBjaGFyKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280642</attachid>
            <date>2016-06-06 16:04:42 -0700</date>
            <delta_ts>2016-06-06 20:00:28 -0700</delta_ts>
            <desc>a bit more</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>121576</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9hcmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NzQgQEAKKyJ1c2Ugc3Ry
aWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xh
c3MgQXJnIHsKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICB0aGlzLl9raW5kID0g
SW52YWxpZDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzQW55VXNlKHJvbGUpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBj
YXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2Ug
QXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJn
LkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoK
KyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAg
c3RhdGljIGlzQ29sZFVzZShyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7Cisg
ICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAg
Y2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNl
IEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlpE
ZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6
CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIp
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc1dhcm1Vc2Uocm9sZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBBcmcuaXNBbnlVc2Uocm9sZSkgJiYgIUFyZy5pc0NvbGRVc2Uo
cm9sZSk7CisgICAgfQorCisgICAgc3RhdGljIGlzRWFybHlVc2Uocm9sZSkKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2Ug
QXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcu
VXNlWkRlZjoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5EZWY6
CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAg
ICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAg
ICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0
aWMgaXNMYXRlVXNlKHJvbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAg
ICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAg
ICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
Y2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFy
Zy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkRl
ZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAg
ICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzQW55RGVmKHJvbGUpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBj
YXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNl
IEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5V
c2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6
CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAg
c3RhdGljIGlzRWFybHlEZWYocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgewor
ICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAg
IGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNh
c2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5a
RGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29s
ZFVzZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcuRWFybHlE
ZWY6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNMYXRlRGVmKHJvbGUpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAg
ICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAg
ICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAg
Y2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBB
cmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2Va
RGVmOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgc3RhdGljIGlzWkRlZihyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7
CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAg
ICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAg
Y2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJn
LkVhcmx5RGVmOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICBjYXNlIEFyZy5M
YXRlQ29sZFVzZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcu
WkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9s
ZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjb25zZXJ2YXRpdmVXaWR0
aCh0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gR1AgPyBQdHIgOiA2NDsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIG1pbmltdW1XaWR0aCh0eXBlKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHR5cGUgPT0gR1AgPyA4IDogMzI7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBieXRl
cyh3aWR0aCkKKyAgICB7CisgICAgICAgIHJldHVybiB3aWR0aCAvIDg7CisgICAgfQorICAgIAor
ICAgIHN0YXRpYyB3aWR0aEZvckJ5dGVzKGJ5dGVzKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChi
eXRlcykgeworICAgICAgICBjYXNlIDA6CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJl
dHVybiA4OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gMTY7CisgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmV0dXJuIDMyOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKGJ5dGVzID4gOCkKKyAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCBudW1iZXIgb2YgYnl0ZXMiKTsKKyAgICAgICAgICAgIHJldHVy
biA2NDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlVG1wKHRtcCkK
KyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5f
dG1wID0gdG1wOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0
aWMgZnJvbVJlZyhyZWcpCisgICAgeworICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVRtcChyZWcp
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlSW1tKHZhbHVlKQorICAgIHsKKyAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLklt
bTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQmlnSW1tKHZhbHVlKQorICAgIHsKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJn
LkJpZ0ltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQml0SW1tKHZhbHVlKQorICAg
IHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5k
ID0gQXJnLkJpdEltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQml0SW1tNjQodmFs
dWUpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1
bHQuX2tpbmQgPSBBcmcuQml0SW1tNjQ7CisgICAgICAgIHJlc3VsdC5fdmFsdWUgPSB2YWx1ZTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUFk
ZHIoYmFzZSwgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQorICAg
ICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAg
ICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkFkZHI7CisgICAgICAgIHJlc3VsdC5fYmFzZSA9IGJh
c2U7CisgICAgICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlU3RhY2soc2xvdCwgb2Zmc2V0KQor
ICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQorICAgICAgICAgICAgb2Zmc2V0ID0g
MDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5k
ID0gQXJnLlN0YWNrOworICAgICAgICByZXN1bHQuX3Nsb3QgPSBzbG90OworICAgICAgICByZXN1
bHQuX29mZnNldCA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAg
CisgICAgc3RhdGljIGNyZWF0ZUNhbGxBcmcob2Zmc2V0KQorICAgIHsKKyAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkNhbGxBcmc7Cisg
ICAgICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlU3RhY2tBZGRyKG9mZnNldEZyb21GUCwgZnJh
bWVTaXplLCB3aWR0aCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBBcmcuY3JlYXRlQWRk
cihSZWcuY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldEZyb21GUCk7CisgICAgICAgIGlmICghcmVz
dWx0LmlzVmFsaWRGcm9tKHdpZHRoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5zdGFja1BvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0RnJvbUZQICsgZnJhbWVTaXplKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzVmFsaWRT
Y2FsZShzY2FsZSwgd2lkdGgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHNjYWxlKSB7CisgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgY2FzZSAyOgorICAgICAgICBjYXNlIDQ6CisgICAgICAgIGNh
c2UgODoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBs
b2dTY2FsZShzY2FsZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoc2NhbGUpIHsKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgIHJldHVybiAxOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gMjsKKyAg
ICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBzY2FsZSIpOworICAgICAgICB9CisgICAg
fQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVJbmRleChiYXNlLCBpbmRleCwgc2NhbGUsIG9mZnNl
dCkKKyAgICB7CisgICAgICAgIGlmIChzY2FsZSA9PSBudWxsKQorICAgICAgICAgICAgc2NhbGUg
PSAxOworICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpCisgICAgICAgICAgICBvZmZzZXQgPSAw
OworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQg
PSBBcmcuSW5kZXg7CisgICAgICAgIHJlc3VsdC5fYmFzZSA9IGJhc2U7CisgICAgICAgIHJlc3Vs
dC5faW5kZXggPSBpbmRleDsKKyAgICAgICAgcmVzdWx0Ll9zY2FsZSA9IHNjYWxlOworICAgICAg
ICByZXN1bHQuX29mZnNldCA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVJlbENvbmQoY29uZGl0aW9uKQorICAgIHsKKyAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlJl
bENvbmQ7CisgICAgICAgIHJlc3VsdC5fY29uZGl0aW9uID0gY29uZGl0aW9uOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlUmVzQ29uZChjb25k
aXRpb24pCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICBy
ZXN1bHQuX2tpbmQgPSBBcmcuUmVzQ29uZDsKKyAgICAgICAgcmVzdWx0Ll9jb25kaXRpb24gPSBj
b25kaXRpb247CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBjcmVhdGVEb3VibGVDb25kKGNvbmRpdGlvbikKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQg
PSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5Eb3VibGVDb25kOworICAg
ICAgICByZXN1bHQuX2NvbmRpdGlvbiA9IGNvbmRpdGlvbjsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVdpZHRoKHdpZHRoKQorICAgIHsKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJn
LldpZHRoOworICAgICAgICByZXN1bHQuX3dpZHRoID0gd2lkdGg7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfQorICAgIAorICAgIGdldCBraW5kKCkgeyByZXR1cm4gdGhpcy5fa2luZDsg
fQorICAgIGdldCBpc1RtcCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlRtcDsgfQorICAg
IGdldCBpc0ltbSgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkltbTsgfQorICAgIGdldCBp
c0JpZ0ltbSgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkJpZ0ltbTsgfQorICAgIGdldCBp
c0JpdEltbSgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkJpdEltbTsgfQorICAgIGdldCBp
c0JpdEltbTY0KCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuQml0SW1tNjQ7IH0KKyAgICBn
ZXQgaXNTb21lSW1tKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAg
ICAgICBjYXNlIEFyZy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpZ0ltbToKKyAgICAgICAgY2Fz
ZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgfQorICAgIGdldCBpc0FkZHIgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBB
cmcuQWRkcjsgfQorICAgIGdldCBpc1N0YWNrIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlN0
YWNrOyB9CisgICAgZ2V0IGlzQ2FsbEFyZyB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5DYWxs
QXJnOyB9CisgICAgZ2V0IGlzSW5kZXggeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuSW5kZXg7
IH0KKyAgICBnZXQgaXNNZW1vcnkoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5k
KSB7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAg
ICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfQorICAgIGdldCBpc1N0YWNrTWVtb3J5KCkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UgPT0gUmVnLmNhbGxGcmFtZVJlZ2lzdGVyCisgICAg
ICAgICAgICAgICAgfHwgdGhpcy5fYmFzZSA9PSBSZWcuc3RhY2tQb2ludGVyUmVnaXN0ZXI7Cisg
ICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgZ2V0IGlzUmVsQ29uZCgpIHsgcmV0dXJuIHRo
aXMuX2tpbmQgPT0gQXJnLlJlbENvbmQ7IH0KKyAgICBnZXQgaXNSZXNDb25kKCkgeyByZXR1cm4g
dGhpcy5fa2luZCA9PSBBcmcuUmVzQ29uZDsgfQorICAgIGdldCBpc0RvdWJsZUNvbmQoKSB7IHJl
dHVybiB0aGlzLl9raW5kID09IEFyZy5Eb3VibGVDb25kOyB9CisgICAgZ2V0IGlzQ29uZGl0aW9u
KCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFy
Zy5SZWxDb25kOgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFyZy5E
b3VibGVDb25kOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgZ2V0IGlzV2lk
dGgoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5XaWR0aDsgfQorICAgIGdldCBpc0FsaXZl
KCkgeyByZXR1cm4gdGhpcy5pc1RtcCB8fCB0aGlzLmlzU3RhY2s7IH0KKyAgICAKKyAgICBnZXQg
dG1wKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5kICE9IEFyZy5UbXApCisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAudG1wIGZvciBub24tdG1wIik7CisgICAgICAg
IHJldHVybiB0aGlzLl90bXA7CisgICAgfQorICAgIAorICAgIGdldCB2YWx1ZSgpCisgICAgewor
ICAgICAgICBpZiAoIXRoaXMuaXNTb21lSW1tKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJDYWxsZWQgLnZhbHVlIGZvciBub24taW1tIik7CisgICAgICAgIHJldHVybiB0aGlzLl92YWx1
ZTsKKyAgICB9CisgICAgCisgICAgZ2V0IGJhc2UoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0
aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLklu
ZGV4OgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2U7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuYmFzZSBmb3Igbm9uLWFkZHJlc3Mi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgaGFzT2Zmc2V0KCkgeyByZXR1cm4g
dGhpcy5pc01lbW9yeTsgfQorICAgIAorICAgIGdldCBvZmZzZXQoKQorICAgIHsKKyAgICAgICAg
c3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNh
c2UgQXJnLkluZGV4OgorICAgICAgICBjYXNlIEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcu
Q2FsbEFyZzoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9vZmZzZXQ7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAub2Zmc2V0IGZvciBub24t
YWRkcmVzcyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGdldCBzdGFja1Nsb3QoKQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLlN0YWNrKQorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnN0YWNrU2xvdCBmb3Igbm9uLWFkZHJlc3MiKTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX3Nsb3Q7CisgICAgfQorICAgIAorICAgIGdldCBpbmRleCgpCisg
ICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBBcmcuSW5kZXgpCisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuaW5kZXggZm9yIG5vbi1JbmRleCIpOworICAgICAgICBy
ZXR1cm4gdGhpcy5faW5kZXg7CisgICAgfQorICAgIAorICAgIGdldCBzY2FsZSgpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBBcmcuSW5kZXgpCisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkNhbGxlZCAuc2NhbGUgZm9yIG5vbi1JbmRleCIpOworICAgICAgICByZXR1cm4g
dGhpcy5fc2NhbGU7CisgICAgfQorICAgIAorICAgIGdldCBsb2dTY2FsZSgpCisgICAgeworICAg
ICAgICByZXR1cm4gQXJnLmxvZ1NjYWxlKHRoaXMuc2NhbGUpOworICAgIH0KKyAgICAKKyAgICBn
ZXQgd2lkdGgoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLldpZHRoKQor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLndpZHRoIGZvciBub24tV2lkdGgi
KTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3dpZHRoOworICAgIH0KKyAgICAKKyAgICBnZXQgaXNH
UFRtcCgpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYgdGhpcy50bXAuaXNHUDsgfQorICAgIGdldCBp
c0ZQVG1wKCkgeyByZXR1cm4gdGhpcy5pc1RtcCAmJiB0aGlzLnRtcC5pc0ZQOyB9CisgICAgCisg
ICAgZ2V0IGlzR1AoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAg
ICAgIGNhc2UgQXJnLkltbToKKyAgICAgICAgY2FzZSBBcmcuQmlnSW1tOgorICAgICAgICBjYXNl
IEFyZy5CaXRJbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbTY0OgorICAgICAgICBjYXNlIEFy
Zy5BZGRyOgorICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6
CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6Cisg
ICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6Cisg
ICAgICAgIGNhc2UgQXJnLldpZHRoOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmlzR1BUbXA7CisgICAgICAg
IGNhc2UgQXJnLkludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBraW5kIik7CisgICAgICAg
IH0KKyAgICB9CisgICAgCisgICAgZ2V0IGlzRlAoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0
aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkltbToKKyAgICAgICAgY2FzZSBBcmcuQml0
SW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAgY2FzZSBBcmcuUmVsQ29u
ZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuRG91YmxlQ29u
ZDoKKyAgICAgICAgY2FzZSBBcmcuV2lkdGg6CisgICAgICAgIGNhc2UgQXJnLkludmFsaWQ6Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAg
IGNhc2UgQXJnLkluZGV4OgorICAgICAgICBjYXNlIEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBB
cmcuQ2FsbEFyZzoKKyAgICAgICAgY2FzZSBBcmcuQmlnSW1tOgorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmlz
RlBUbXA7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCBraW5kIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0IGhhc1R5cGUoKQorICAg
IHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkltbToK
KyAgICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAg
ICAgICAgY2FzZSBBcmcuVG1wOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgZ2V0IHR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuaXNHUCA/IEdQIDog
RlA7CisgICAgfQorICAgIAorICAgIGlzVHlwZSh0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgICAgIGNhc2UgQXJnLkdQOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMu
aXNHUDsKKyAgICAgICAgY2FzZSBBcmcuRlA6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5pc0ZQ
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdHlw
ZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlzQ29tcGF0aWJsZVR5cGUob3RoZXIp
CisgICAgeworICAgICAgICBpZiAodGhpcy5oYXNUeXBlKQorICAgICAgICAgICAgcmV0dXJuIG90
aGVyLmlzVHlwZSh0aGlzLnR5cGUpOworICAgICAgICBpZiAob3RoZXIuaGFzVHlwZSkKKyAgICAg
ICAgICAgIHJldHVybiB0aGlzLmlzVHlwZShvdGhlci50eXBlKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorICAgIAorICAgIGdldCBpc0dQUigpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYg
dGhpcy50bXAuaXNHUFI7IH0KKyAgICBnZXQgZ3ByKCkgeyByZXR1cm4gdGhpcy50bXAuZ3ByOyB9
CisgICAgZ2V0IGlzRlBSKCkgeyByZXR1cm4gdGhpcy5pc1RtcCAmJiB0aGlzLnRtcC5pc0ZQUjsg
fQorICAgIGdldCBmcHIoKSB7IHJldHVybiB0aGlzLnRtcC5mcHI7IH0KKyAgICBnZXQgaXNSZWco
KSB7IHJldHVybiB0aGlzLmlzVG1wICYmIHRoaXMudG1wLmlzUmVnOyB9CisgICAgZ2V0IHJlZygp
IHsgcmV0dXJuIHRoaXMudG1wLnJlZzsgfQorICAgIAorICAgIHN0YXRpYyBpc1ZhbGlkSW1tRm9y
bSh2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBpc1JlcHJlc2VudGFibGVBc0ludDMyKHZh
bHVlKTsKKyAgICB9CisgICAgc3RhdGljIGlzVmFsaWRCaXRJbW1Gb3JtKHZhbHVlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGlzUmVwcmVzZW50YWJsZUFzSW50MzIodmFsdWUpOworICAgIH0KKyAg
ICBzdGF0aWMgaXNWYWxpZEJpdEltbTY0Rm9ybSh2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVy
biBpc1JlcHJlc2VudGFibGVBc0ludDMyKHZhbHVlKTsKKyAgICB9CisgICAgCisgICAgc3RhdGlj
IGlzVmFsaWRBZGRyRm9ybShvZmZzZXQsIHdpZHRoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc1ZhbGlkSW5kZXhGb3JtKHNjYWxlLCBvZmZz
ZXQsIHdpZHRoKQorICAgIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlkU2NhbGUoc2NhbGUsIHdpZHRo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIAorICAgIGlzVmFsaWRGb3JtKHdpZHRoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0
aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkludmFsaWQ6CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBjYXNlIEFyZy5JbW06CisgICAgICAgICAgICByZXR1cm4gQXJnLmlzVmFsaWRJ
bW1Gb3JtKHRoaXMudmFsdWUpOworICAgICAgICBjYXNlIEFyZy5CaWdJbW06CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICAgICAgcmV0
dXJuIEFyZy5pc1ZhbGlkQml0SW1tRm9ybSh0aGlzLnZhbHVlKTsKKyAgICAgICAgY2FzZSBBcmcu
Qml0SW1tNjQ6CisgICAgICAgICAgICByZXR1cm4gQXJnLmlzVmFsaWRCaXRJbW02NEZvcm0odGhp
cy52YWx1ZSk7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLlN0YWNr
OgorICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICAgICAgcmV0dXJuIGlzVmFsaWRB
ZGRyRm9ybSh0aGlzLm9mZnNldCwgd2lkdGgpOworICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAg
ICAgICAgICAgIHJldHVybiBpc1ZhbGlkSW5kZXhGb3JtKHRoaXMuc2NhbGUsIHRoaXMub2Zmc2V0
LCB3aWR0aCk7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJl
c0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgIGNhc2UgQXJnLldp
ZHRoOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBraW5kIik7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgZm9yRWFjaFRtcEZhc3QoZnVuYykKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5f
a2luZCkgeworICAgICAgICBjYXNlIEFyZy5UbXA6IHsKKyAgICAgICAgICAgIGxldCByZXBsYWNl
bWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmModGhpcy5fdG1wKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVRtcChyZXBsYWNlbWVudCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFyZy5BZGRyOiB7CisgICAgICAg
ICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KHRoaXMuX2Jhc2UpKQorICAgICAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlQWRkcihyZXBs
YWNlbWVudCwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIGNhc2UgQXJnLkluZGV4OiB7CisgICAgICAgICAgICBsZXQgYmFzZVJlcGxhY2VtZW50
ID0gZnVuYyh0aGlzLl9iYXNlKTsKKyAgICAgICAgICAgIGxldCBpbmRleFJlcGxhY2VtZW50ID0g
ZnVuYyh0aGlzLl9pbmRleCk7CisgICAgICAgICAgICBpZiAoYmFzZVJlcGxhY2VtZW50IHx8IGlu
ZGV4UmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZUluZGV4
KAorICAgICAgICAgICAgICAgICAgICBiYXNlUmVwbGFjZW1lbnQgPyBiYXNlUmVwbGFjZW1lbnQg
OiB0aGlzLl9iYXNlLAorICAgICAgICAgICAgICAgICAgICBpbmRleFJlcGxhY2VtZW50ID8gaW5k
ZXhSZXBsYWNlbWVudCA6IHRoaXMuX2luZGV4LAorICAgICAgICAgICAgICAgICAgICB0aGlzLl9z
Y2FsZSwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICB1c2VzVG1wKGV4cGVjdGVkVG1wKQorICAgIHsKKyAgICAgICAg
bGV0IHVzZXNUbXAgPSBmYWxzZTsKKyAgICAgICAgZm9yRWFjaFRtcEZhc3QodG1wID0+IHsKKyAg
ICAgICAgICAgIHVzZXNUbXAgfD0gdG1wID09IGV4cGVjdGVkVG1wOworICAgICAgICB9KTsKKyAg
ICAgICAgcmV0dXJuIHVzZXNUbXA7CisgICAgfQorICAgIAorICAgIGZvckVhY2hUbXAocm9sZSwg
dHlwZSwgd2lkdGgsIGZ1bmMpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsK
KyAgICAgICAgY2FzZSBBcmcuVG1wOiB7CisgICAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX3RtcCwgcm9sZSwgdHlwZSwg
d2lkdGgpKQorICAgICAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlVG1wKHJlcGxhY2VtZW50
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJnLkFkZHI6
IHsKKyAgICAgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmModGhpcy5fYmFzZSwgQXJnLlVzZSwgR1AsIHJvbGUgPT0gQXJnLlVzZUFkZHIg
PyB3aWR0aCA6IFB0cikpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFyZy5jcmVhdGVBZGRyKHJl
cGxhY2VtZW50LCB0aGlzLl9vZmZzZXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgY2FzZSBBcmcuSW5kZXg6IHsKKyAgICAgICAgICAgIGxldCBiYXNlUmVwbGFjZW1l
bnQgPSBmdW5jKHRoaXMuX2Jhc2UsIEFyZy5Vc2UsIEdQLCByb2xlID09IEFyZy5Vc2VBZGRyID8g
d2lkdGggOiBQdHIpOworICAgICAgICAgICAgbGV0IGluZGV4UmVwbGFjZW1lbnQgPSBmdW5jKHRo
aXMuX2luZGV4LCBBcmcuVXNlLCBHUCwgcm9sZSA9PSBBcmcuVXNlQWRkciA/IHdpZHRoIDogUHRy
KTsKKyAgICAgICAgICAgIGlmIChiYXNlUmVwbGFjZW1lbnQgfHwgaW5kZXhSZXBsYWNlbWVudCkg
eworICAgICAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlSW5kZXgoCisgICAgICAgICAgICAg
ICAgICAgIGJhc2VSZXBsYWNlbWVudCA/IGJhc2VSZXBsYWNlbWVudCA6IHRoaXMuX2Jhc2UsCisg
ICAgICAgICAgICAgICAgICAgIGluZGV4UmVwbGFjZW1lbnQgPyBpbmRleFJlcGxhY2VtZW50IDog
dGhpcy5faW5kZXgsCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjYWxlLCB0aGlzLl9vZmZz
ZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIAor
ICAgIGlzKHRoaW5nKSB7IHJldHVybiAhIXRoaW5nLmV4dHJhY3QodGhpcyk7IH0KKyAgICBhcyh0
aGluZykgeyByZXR1cm4gdGhpbmcuZXh0cmFjdCh0aGlzKTsgfQorICAgIAorICAgIC8vIFRoaXMg
bGV0cyB5b3Ugc2F5IHRoaW5ncyBsaWtlOgorICAgIC8vIGFyZy5mb3JFYWNoKFRtcCB8IFJlZyB8
IEFyZyB8IFN0YWNrU2xvdCwgLi4uKQorICAgIC8vCisgICAgLy8gSXQncyB1c2VkIGZvciBhYnN0
cmFjdCBsaXZlbmVzcyBhbmFseXNpcy4KKyAgICBmb3JFYWNoRmFzdCh0aGluZywgZnVuYykKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGluZy5mb3JFYWNoRmFzdCh0aGlzLCBmdW5jKTsKKyAgICB9
CisgICAgZm9yRWFjaCh0aGluZywgcm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmMpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpbmcuZm9yRWFjaCh0aGlzLCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYyk7
CisgICAgfQorICAgIAorICAgIHN0YXRpYyBleHRyYWN0KGFyZykgeyByZXR1cm4gYXJnOyB9Cisg
ICAgc3RhdGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykgeyByZXR1cm4gZnVuYyhhcmcpOyB9Cisg
ICAgc3RhdGljIGZvckVhY2goYXJnLCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYykgeyByZXR1cm4g
ZnVuYyhhcmcsIHJvbGUsIHR5cGUsIHdpZHRoKTsgfQorCisgICAgZ2V0IGNvbmRpdGlvbgorICAg
IHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLlJlbENv
bmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNv
bmQ6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29uZGl0aW9uOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLmNvbmRpdGlvbiBmb3Igbm9u
LWNvbmRpdGlvbiIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGdldCBpc0ludmVydGli
bGUKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFy
Zy5SZWxDb25kOgorICAgICAgICBjYXNlIEFyZy5Eb3VibGVDb2xkOgorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgICAgICBzd2l0Y2gg
KHRoaXMuX2NvbmRpdGlvbikgeworICAgICAgICAgICAgY2FzZSBaZXJvOgorICAgICAgICAgICAg
Y2FzZSBOb25aZXJvOgorICAgICAgICAgICAgY2FzZSBTaWduZWQ6CisgICAgICAgICAgICBjYXNl
IFBvc2l0aXZlT3JaZXJvOgorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
KyAgICB9CisgICAgCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlz
Ll9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4g
IjxpbnZhbGlkPiI7CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl90bXAudG9TdHJpbmcoKTsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAgICBjYXNl
IEFyZy5CaXRJbW06CisgICAgICAgICAgICByZXR1cm4gIiQiICsgdGhpcy5fdmFsdWU7CisgICAg
ICAgIGNhc2UgQXJnLkJpZ0ltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tNjQ6CisgICAgICAg
ICAgICByZXR1cm4gIiQweCIgKyB0aGlzLl92YWx1ZS50b1N0cmluZygxNik7CisgICAgICAgIGNh
c2UgQXJnLkFkZHI6CisgICAgICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhp
cy5fb2Zmc2V0IDogIiIpICsgIigiICsgdGhpcy5fYmFzZSArICIpIjsKKyAgICAgICAgY2FzZSBB
cmcuSW5kZXg6CisgICAgICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhpcy5f
b2Zmc2V0IDogIiIpICsgIigiICsgdGhpcy5fYmFzZSArCisgICAgICAgICAgICAgICAgIiwiICsg
dGhpcy5faW5kZXggKyAodGhpcy5fc2NhbGUgPT0gMSA/ICIiIDogIiwiICsgdGhpcy5fc2NhbGUp
ICsgIikiOworICAgICAgICBjYXNlIEFyZy5TdGFjazoKKyAgICAgICAgICAgIHJldHVybiAiIiAr
ICh0aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikgKyAiKCIgKyB0aGlzLl9zbG90ICsg
IikiOworICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICAgICAgcmV0dXJuICIiICsg
KHRoaXMuX29mZnNldCA/IHRoaXMuX29mZnNldCA6ICIiKSArICIoY2FsbEFyZykiOworICAgICAg
ICBjYXNlIEFyZy5SZWxDb25kOgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBj
YXNlIEFyZy5Eb3VibGVDb25kOgorICAgICAgICBjYXNlIEFyZy5XaWR0aDoKKyAgICAgICAgICAg
IHJldHVybiB0aGlzLl9jb25kaXRpb24udG9TdHJpbmcoKTsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGtpbmQiKToKKyAgICAgICAgfQorICAgIH0K
K30KKworLy8gQXJnIGtpbmRzCitBcmcuSW52YWxpZCA9IFN5bWJvbCgiSW52YWxpZCIpOworQXJn
LlRtcCA9IFN5bWJvbCgiVG1wIik7CitBcmcuSW1tID0gU3ltYm9sKCJJbW0iKTsKK0FyZy5CaWdJ
bW0gPSBTeW1ib2woIkJpZ0ltbSIpOworQXJnLkJpdEltbSA9IFN5bWJvbCgiQml0SW1tIik7CitB
cmcuQml0SW1tNjQgPSBTeW1ib2woIkJpdEltbTY0Iik7CitBcmcuQWRkciA9IFN5bWJvbCgiQWRk
ciIpOworQXJnLlN0YWNrID0gU3ltYm9sKCJTdGFjayIpOworQXJnLkNhbGxBcmcgPSBTeW1ib2wo
IkNhbGxBcmciKTsKK0FyZy5JbmRleCA9IFN5bWJvbCgiSW5kZXgiKTsKK0FyZy5SZWxDb25kID0g
U3ltYm9sKCJSZWxDb25kIik7CitBcmcuUmVzQ29uZCA9IFN5bWJvbCgiUmVzQ29uZCIpOworQXJn
LkRvdWJsZUNvbmQgPSBTeW1ib2woIkRvdWJsZUNvbmQiKTsKK0FyZy5XaWR0aCA9IFN5bWJvbCgi
V2lkdGgiKTsKKworLy8gQXJnIHJvbGVzCitBcmcuVXNlID0gU3ltYm9sKCJVc2UiKTsKK0FyZy5D
b2xkVXNlID0gU3ltYm9sKCJDb2xkVXNlIik7CitBcmcuTGF0ZVVzZSA9IFN5bWJvbCgiTGF0ZVVz
ZSIpOworQXJnLkxhdGVDb2xkVXNlID0gU3ltYm9sKCJMYXRlQ29sZFVzZSIpOworQXJnLkRlZiA9
IFN5bWJvbCgiRGVmIik7CitBcmcuWkRlZiA9IFN5bWJvbCgiWkRlZiIpOworQXJnLlVzZURlZiA9
IFN5bWJvbCgiVXNlRGVmIik7CitBcmcuVXNlWkRlZiA9IFN5bWJvbCgiVXNlWkRlZiIpOworQXJn
LkVhcmx5RGVmID0gU3ltYm9sKCJFYXJseURlZiIpOworQXJnLlNjcmF0Y2ggPSBTeW1ib2woIlNj
cmF0Y2giKTsKK0FyZy5Vc2VBZGRyID0gU3ltYm9sKCJVc2VBZGRyIik7CisKSW5kZXg6IFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvYmFzaWNfYmxvY2suanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFu
Y2VUZXN0cy9KU0Fpci9iYXNpY19ibG9jay5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNl
VGVzdHMvSlNBaXIvYmFzaWNfYmxvY2suanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMTMg
QEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworY2xhc3MgQmFzaWNCbG9jayB7CisgICAgY29uc3RydWN0b3IoaW5kZXgsIGZyZXF1
ZW5jeSkKKyAgICB7CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMu
X2ZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTsKKyAgICAgICAgdGhpcy5faW5zdHMgPSBbXTsKKyAgICAg
ICAgdGhpcy5fc3VjY2Vzc29ycyA9IFtdOworICAgICAgICB0aGlzLl9wcmVkZWNlc3NvcnMgPSBb
XTsKKyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0K
KyAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2luc3RzLmxlbmd0aDsgfQorICAgIAorICAg
ICpbU3ltYm9sLml0ZXJhdG9yXSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5faW5zdHNb
U3ltYm9sLml0ZXJhdG9yXTsKKyAgICB9CisgICAgCisgICAgYXQoaW5kZXgpCisgICAgeworICAg
ICAgICBpZiAoaW5kZXggPj0gdGhpcy5faW5zdHMubGVuZ3RoKQorICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJPdXQgb2YgYm91bmRzIGFjY2VzcyIpOworICAgICAgICByZXR1cm4gdGhpcy5f
aW5zdHNbaW5kZXhdOworICAgIH0KKyAgICAKKyAgICBnZXQoaW5kZXgpCisgICAgeworICAgICAg
ICBpZiAoaW5kZXggPj0gdGhpcy5faW5zdHMubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIG51
bGw7CisgICAgICAgIHJldHVybiB0aGlzLl9pbnN0c1tpbmRleF07CisgICAgfQorICAgIAorICAg
IGdldCBsYXN0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9pbnN0c1t0aGlzLl9pbnN0
cy5sZW5ndGggLSAxXTsKKyAgICB9CisgICAgCisgICAgZ2V0IGluc3RzKCkgeyByZXR1cm4gdGhp
cy5faW5zdHM7IH0KKyAgICAKKyAgICBhcHBlbmQoaW5zdCkgeyB0aGlzLl9pbnN0cy5wdXNoKGlu
c3QpOyB9CisgICAgCisgICAgZ2V0IG51bVN1Y2Nlc3NvcnMoKSB7IHJldHVybiB0aGlzLl9zdWNj
ZXNzb3JzLmxlbmd0aDsgfQorICAgIHN1Y2Nlc3NvcihpbmRleCkgeyByZXR1cm4gdGhpcy5fc3Vj
Y2Vzc29yc1tpbmRleF07IH0KKyAgICBnZXQgc3VjY2Vzc29ycygpIHsgcmV0dXJuIHRoaXMuX3N1
Y2Nlc3NvcnM7IH0KKyAgICAKKyAgICBzdWNjZXNzb3JCbG9jayhpbmRleCkgeyByZXR1cm4gdGhp
cy5fc3VjY2Vzc29yc1tpbmRleF0uYmxvY2s7IH0KKyAgICBnZXQgc3VjY2Vzc29yQmxvY2tzKCkg
eyByZXR1cm4gbmV3IFN1Y2Nlc3NvckNvbGxlY3Rpb24odGhpcy5fc3VjY2Vzc29ycyk7IH0gLy8g
VGhpcyByZXR1cm5zIGEgUHJveHkhCisgICAgCisgICAgZ2V0IG51bVByZWRlY2Vzc29ycygpIHsg
cmV0dXJuIHRoaXMuX3ByZWRlY2Vzc29ycy5sZW5ndGg7IH0KKyAgICBwcmVkZWNlc3NvcihpbmRl
eCkgeyByZXR1cm4gdGhpcy5fcHJlZGVjZXNzb3JzW2luZGV4XTsgfQorICAgIGdldCBwcmVkZWNl
c3NvcnMoKSB7IHJldHVybiB0aGlzLl9wcmVkZWNlc3NvcnM7IH0KKyAgICAKKyAgICBnZXQgZnJl
cXVlbmN5KCkgeyByZXR1cm4gdGhpcy5fZnJlcXVlbmN5OyB9CisKKyAgICB0b1N0cmluZygpCisg
ICAgeworICAgICAgICByZXR1cm4gIiMiICsgdGhpcy5faW5kZXg7CisgICAgfQorICAgIAorICAg
IGdldCBoZWFkZXJTdHJpbmcoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9ICIiOworICAg
ICAgICByZXN1bHQgKz0gIkJCIiArIHRoaXMgKyAiOiA7IGZyZXF1ZW5jeSA9ICIgKyB0aGlzLl9m
cmVxdWVuY3kgKyAiXG4iOworICAgICAgICBpZiAodGhpcy5fcHJlZGVjZXNzb3JzLmxlbmd0aCkK
KyAgICAgICAgICAgIHJlc3VsdCArPSAiICBQcmVkZWNlc3NvcnM6ICIgKyB0aGlzLl9wcmVkZWNl
c3NvcnMuam9pbigiLCAiKSArICJcbiI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQor
ICAgIAorICAgIGdldCBmb290ZXJTdHJpbmcoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9
ICIiOworICAgICAgICBpZiAodGhpcy5fc3VjY2Vzc29ycy5sZW5ndGgpCisgICAgICAgICAgICBy
ZXN1bHQgKz0gIiAgU3VjY2Vzc29yczogIiArIHRoaXMuX3N1Y2Nlc3NvcnMuam9pbigiLCAiKSAr
ICJcbiI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHRvU3RyaW5n
RGVlcCgpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIHJlc3VsdCAr
PSB0aGlzLmhlYWRlclN0cmluZzsKKyAgICAgICAgZm9yIChsZXQgaW5zdCBvZiB0aGlzKQorICAg
ICAgICAgICAgcmVzdWx0ICs9ICIgICAgIiArIGluc3QgKyAiXG4iOworICAgICAgICByZXN1bHQg
Kz0gdGhpcy5mb290ZXJTdHJpbmc7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQor
CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2luc3QuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVy
Zm9ybWFuY2VUZXN0cy9KU0Fpci9pbnN0LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VU
ZXN0cy9KU0Fpci9pbnN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTE3IEBACisidXNl
IHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K2NsYXNzIEluc3QgeworICAgIGNvbnN0cnVjdG9yKG9wY29kZSwgYXJncykKKyAgICB7CisgICAg
ICAgIHRoaXMuX29wY29kZSA9IG9wY29kZTsKKyAgICAgICAgdGhpcy5fYXJncyA9IGFyZ3M7Cisg
ICAgfQorICAgIAorICAgIGFwcGVuZChhcmdzLi4uKQorICAgIHsKKyAgICAgICAgdGhpcy5fYXJn
cy5wdXNoKGFyZ3MuLi4pOworICAgIH0KKyAgICAKKyAgICBmb3JFYWNoVG1wRmFzdChmdW5jKQor
ICAgIHsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9hcmdzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSB0aGlzLl9hcmdzW2ldLmZvckVhY2hUbXBGYXN0KGZ1bmMpKQorICAgICAgICAgICAg
ICAgIHRoaXMuX2FyZ3NbaV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
KyAgICBmb3JFYWNoQXJnKGZ1bmMpCisgICAgeworICAgICAgICBJbnN0X2ZvckVhY2hBcmcodGhp
cywgZnVuYyk7CisgICAgfQorICAgIAorICAgIGZvckVhY2hUbXAoZnVuYykKKyAgICB7CisgICAg
ICAgIGZvckVhY2hBcmcoKGFyZywgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAg
IHJldHVybiBhcmcuZm9yRWFjaFRtcChyb2xlLCB0eXBlLCB3aWR0aCwgZnVuYyk7CisgICAgICAg
IH0pOworICAgIH0KKyAgICAKKyAgICBmb3JFYWNoKHRoaW5nLCBmdW5jKQorICAgIHsKKyAgICAg
ICAgZm9yRWFjaEFyZygoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAg
cmV0dXJuIGFyZy5mb3JFYWNoKHRoaW5nLCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYyk7CisgICAg
ICAgIH0pOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaERlZih0aGluZywgcHJldklu
c3QsIG5leHRJbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKHByZXZJbnN0KSB7CisgICAg
ICAgICAgICBwcmV2SW5zdC5mb3JFYWNoKAorICAgICAgICAgICAgICAgIHRoaW5nLAorICAgICAg
ICAgICAgICAgICh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKEFyZy5pc0xhdGVEZWYocm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZnVuYyh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobmV4dEluc3QpIHsKKyAgICAgICAg
ICAgIG5leHRJbnN0LmZvckVhY2goCisgICAgICAgICAgICAgICAgdGhpbmcsCisgICAgICAgICAg
ICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAgICAg
ICBpZiAoQXJnLmlzRWFybHlEZWYocm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZnVuYyh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNoRGVmV2l0aEV4dHJhQ2xv
YmJlcmVkUmVncyh0aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5jKQorICAgIHsKKyAgICAg
ICAgZm9yRWFjaERlZih0aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5jKTsKKyAgICAgICAg
CisgICAgICAgIGxldCByZWdEZWZSb2xlOworICAgICAgICAKKyAgICAgICAgbGV0IHJlcG9ydFJl
ZyA9IHJlZyA9PiB7CisgICAgICAgICAgICBsZXQgdHlwZSA9IHJlZy5pc0dQUiA/IEdQIDogRlA7
CisgICAgICAgICAgICBmdW5jKHRoaW5nLmZyb21SZWcocmVnKSwgcmVnRGVmUm9sZSwgdHlwZSwg
QXJnLmNvbnNlcnZhdGl2ZVdpZHRoKHR5cGUpKTsKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChwcmV2SW5zdCAmJiBwcmV2SW5zdC5vcGNvZGUgPT0gUGF0Y2gpIHsKKyAgICAgICAg
ICAgIHJlZ0RlZlJvbGUgPSBBcmcuRGVmOworICAgICAgICAgICAgcHJldkluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmZvckVhY2gocmVwb3J0UmVnKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgaWYgKG5leHRJbnN0ICYmIG5leHRJbnN0Lm9wY29kZSA9PSBQYXRjaCkgeworICAgICAgICAg
ICAgcmVnRGVmUm9sZSA9IEFyZy5FYXJseURlZjsKKyAgICAgICAgICAgIG5leHRJbnN0LmV4dHJh
RWFybHlDbG9iYmVyZWRSZWdzLmZvckVhY2gocmVwb3J0UmVnKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICAKKyAgICBnZXQgaGFzTm9uQXJnRWZmZWN0cygpIHsgcmV0dXJuIEluc3RfaGFzTm9uQXJn
RWZmZWN0cyh0aGlzKTsgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiAiIiArIHRoaXMuX29wY29kZSArICIgIiArIHRoaXMuX2FyZ3Muam9pbigiLCAiKTsKKyAg
ICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2RlLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2RlLmpzCShyZXZpc2lvbiAwKQorKysg
UGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9vcGNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMjA4IEBACisidXNlIHN0cmljdCI7CisvLyBHZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRv
ci5yYiBmcm9tIEphdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcyAtLSBkbyBu
b3QgZWRpdCEKK2NvbnN0IE5vcCA9IFN5bWJvbCgiTm9wIik7Citjb25zdCBBZGQzMiA9IFN5bWJv
bCgiQWRkMzIiKTsKK2NvbnN0IEFkZDggPSBTeW1ib2woIkFkZDgiKTsKK2NvbnN0IEFkZDE2ID0g
U3ltYm9sKCJBZGQxNiIpOworY29uc3QgQWRkNjQgPSBTeW1ib2woIkFkZDY0Iik7Citjb25zdCBB
ZGREb3VibGUgPSBTeW1ib2woIkFkZERvdWJsZSIpOworY29uc3QgQWRkRmxvYXQgPSBTeW1ib2wo
IkFkZEZsb2F0Iik7Citjb25zdCBTdWIzMiA9IFN5bWJvbCgiU3ViMzIiKTsKK2NvbnN0IFN1YjY0
ID0gU3ltYm9sKCJTdWI2NCIpOworY29uc3QgU3ViRG91YmxlID0gU3ltYm9sKCJTdWJEb3VibGUi
KTsKK2NvbnN0IFN1YkZsb2F0ID0gU3ltYm9sKCJTdWJGbG9hdCIpOworY29uc3QgTmVnMzIgPSBT
eW1ib2woIk5lZzMyIik7Citjb25zdCBOZWc2NCA9IFN5bWJvbCgiTmVnNjQiKTsKK2NvbnN0IE5l
Z2F0ZURvdWJsZSA9IFN5bWJvbCgiTmVnYXRlRG91YmxlIik7Citjb25zdCBNdWwzMiA9IFN5bWJv
bCgiTXVsMzIiKTsKK2NvbnN0IE11bDY0ID0gU3ltYm9sKCJNdWw2NCIpOworY29uc3QgTXVsdGlw
bHlBZGQzMiA9IFN5bWJvbCgiTXVsdGlwbHlBZGQzMiIpOworY29uc3QgTXVsdGlwbHlBZGQ2NCA9
IFN5bWJvbCgiTXVsdGlwbHlBZGQ2NCIpOworY29uc3QgTXVsdGlwbHlTdWIzMiA9IFN5bWJvbCgi
TXVsdGlwbHlTdWIzMiIpOworY29uc3QgTXVsdGlwbHlTdWI2NCA9IFN5bWJvbCgiTXVsdGlwbHlT
dWI2NCIpOworY29uc3QgTXVsdGlwbHlOZWczMiA9IFN5bWJvbCgiTXVsdGlwbHlOZWczMiIpOwor
Y29uc3QgTXVsdGlwbHlOZWc2NCA9IFN5bWJvbCgiTXVsdGlwbHlOZWc2NCIpOworY29uc3QgRGl2
MzIgPSBTeW1ib2woIkRpdjMyIik7Citjb25zdCBEaXY2NCA9IFN5bWJvbCgiRGl2NjQiKTsKK2Nv
bnN0IE11bERvdWJsZSA9IFN5bWJvbCgiTXVsRG91YmxlIik7Citjb25zdCBNdWxGbG9hdCA9IFN5
bWJvbCgiTXVsRmxvYXQiKTsKK2NvbnN0IERpdkRvdWJsZSA9IFN5bWJvbCgiRGl2RG91YmxlIik7
Citjb25zdCBEaXZGbG9hdCA9IFN5bWJvbCgiRGl2RmxvYXQiKTsKK2NvbnN0IFg4NkNvbnZlcnRU
b0RvdWJsZVdvcmQzMiA9IFN5bWJvbCgiWDg2Q29udmVydFRvRG91YmxlV29yZDMyIik7Citjb25z
dCBYODZDb252ZXJ0VG9RdWFkV29yZDY0ID0gU3ltYm9sKCJYODZDb252ZXJ0VG9RdWFkV29yZDY0
Iik7Citjb25zdCBYODZEaXYzMiA9IFN5bWJvbCgiWDg2RGl2MzIiKTsKK2NvbnN0IFg4NkRpdjY0
ID0gU3ltYm9sKCJYODZEaXY2NCIpOworY29uc3QgTGVhID0gU3ltYm9sKCJMZWEiKTsKK2NvbnN0
IEFuZDMyID0gU3ltYm9sKCJBbmQzMiIpOworY29uc3QgQW5kNjQgPSBTeW1ib2woIkFuZDY0Iik7
Citjb25zdCBBbmREb3VibGUgPSBTeW1ib2woIkFuZERvdWJsZSIpOworY29uc3QgQW5kRmxvYXQg
PSBTeW1ib2woIkFuZEZsb2F0Iik7Citjb25zdCBYb3JEb3VibGUgPSBTeW1ib2woIlhvckRvdWJs
ZSIpOworY29uc3QgWG9yRmxvYXQgPSBTeW1ib2woIlhvckZsb2F0Iik7Citjb25zdCBMc2hpZnQz
MiA9IFN5bWJvbCgiTHNoaWZ0MzIiKTsKK2NvbnN0IExzaGlmdDY0ID0gU3ltYm9sKCJMc2hpZnQ2
NCIpOworY29uc3QgUnNoaWZ0MzIgPSBTeW1ib2woIlJzaGlmdDMyIik7Citjb25zdCBSc2hpZnQ2
NCA9IFN5bWJvbCgiUnNoaWZ0NjQiKTsKK2NvbnN0IFVyc2hpZnQzMiA9IFN5bWJvbCgiVXJzaGlm
dDMyIik7Citjb25zdCBVcnNoaWZ0NjQgPSBTeW1ib2woIlVyc2hpZnQ2NCIpOworY29uc3QgT3Iz
MiA9IFN5bWJvbCgiT3IzMiIpOworY29uc3QgT3I2NCA9IFN5bWJvbCgiT3I2NCIpOworY29uc3Qg
WG9yMzIgPSBTeW1ib2woIlhvcjMyIik7Citjb25zdCBYb3I2NCA9IFN5bWJvbCgiWG9yNjQiKTsK
K2NvbnN0IE5vdDMyID0gU3ltYm9sKCJOb3QzMiIpOworY29uc3QgTm90NjQgPSBTeW1ib2woIk5v
dDY0Iik7Citjb25zdCBBYnNEb3VibGUgPSBTeW1ib2woIkFic0RvdWJsZSIpOworY29uc3QgQWJz
RmxvYXQgPSBTeW1ib2woIkFic0Zsb2F0Iik7Citjb25zdCBDZWlsRG91YmxlID0gU3ltYm9sKCJD
ZWlsRG91YmxlIik7Citjb25zdCBDZWlsRmxvYXQgPSBTeW1ib2woIkNlaWxGbG9hdCIpOworY29u
c3QgRmxvb3JEb3VibGUgPSBTeW1ib2woIkZsb29yRG91YmxlIik7Citjb25zdCBGbG9vckZsb2F0
ID0gU3ltYm9sKCJGbG9vckZsb2F0Iik7Citjb25zdCBTcXJ0RG91YmxlID0gU3ltYm9sKCJTcXJ0
RG91YmxlIik7Citjb25zdCBTcXJ0RmxvYXQgPSBTeW1ib2woIlNxcnRGbG9hdCIpOworY29uc3Qg
Q29udmVydEludDMyVG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRJbnQzMlRvRG91YmxlIik7Citj
b25zdCBDb252ZXJ0SW50NjRUb0RvdWJsZSA9IFN5bWJvbCgiQ29udmVydEludDY0VG9Eb3VibGUi
KTsKK2NvbnN0IENvbnZlcnRJbnQzMlRvRmxvYXQgPSBTeW1ib2woIkNvbnZlcnRJbnQzMlRvRmxv
YXQiKTsKK2NvbnN0IENvbnZlcnRJbnQ2NFRvRmxvYXQgPSBTeW1ib2woIkNvbnZlcnRJbnQ2NFRv
RmxvYXQiKTsKK2NvbnN0IENvdW50TGVhZGluZ1plcm9zMzIgPSBTeW1ib2woIkNvdW50TGVhZGlu
Z1plcm9zMzIiKTsKK2NvbnN0IENvdW50TGVhZGluZ1plcm9zNjQgPSBTeW1ib2woIkNvdW50TGVh
ZGluZ1plcm9zNjQiKTsKK2NvbnN0IENvbnZlcnREb3VibGVUb0Zsb2F0ID0gU3ltYm9sKCJDb252
ZXJ0RG91YmxlVG9GbG9hdCIpOworY29uc3QgQ29udmVydEZsb2F0VG9Eb3VibGUgPSBTeW1ib2wo
IkNvbnZlcnRGbG9hdFRvRG91YmxlIik7Citjb25zdCBNb3ZlID0gU3ltYm9sKCJNb3ZlIik7Citj
b25zdCBTd2FwMzIgPSBTeW1ib2woIlN3YXAzMiIpOworY29uc3QgU3dhcDY0ID0gU3ltYm9sKCJT
d2FwNjQiKTsKK2NvbnN0IE1vdmUzMiA9IFN5bWJvbCgiTW92ZTMyIik7Citjb25zdCBTdG9yZVpl
cm8zMiA9IFN5bWJvbCgiU3RvcmVaZXJvMzIiKTsKK2NvbnN0IFNpZ25FeHRlbmQzMlRvUHRyID0g
U3ltYm9sKCJTaWduRXh0ZW5kMzJUb1B0ciIpOworY29uc3QgWmVyb0V4dGVuZDhUbzMyID0gU3lt
Ym9sKCJaZXJvRXh0ZW5kOFRvMzIiKTsKK2NvbnN0IFNpZ25FeHRlbmQ4VG8zMiA9IFN5bWJvbCgi
U2lnbkV4dGVuZDhUbzMyIik7Citjb25zdCBaZXJvRXh0ZW5kMTZUbzMyID0gU3ltYm9sKCJaZXJv
RXh0ZW5kMTZUbzMyIik7Citjb25zdCBTaWduRXh0ZW5kMTZUbzMyID0gU3ltYm9sKCJTaWduRXh0
ZW5kMTZUbzMyIik7Citjb25zdCBNb3ZlRmxvYXQgPSBTeW1ib2woIk1vdmVGbG9hdCIpOworY29u
c3QgTW92ZURvdWJsZSA9IFN5bWJvbCgiTW92ZURvdWJsZSIpOworY29uc3QgTW92ZVplcm9Ub0Rv
dWJsZSA9IFN5bWJvbCgiTW92ZVplcm9Ub0RvdWJsZSIpOworY29uc3QgTW92ZTY0VG9Eb3VibGUg
PSBTeW1ib2woIk1vdmU2NFRvRG91YmxlIik7Citjb25zdCBNb3ZlMzJUb0Zsb2F0ID0gU3ltYm9s
KCJNb3ZlMzJUb0Zsb2F0Iik7Citjb25zdCBNb3ZlRG91YmxlVG82NCA9IFN5bWJvbCgiTW92ZURv
dWJsZVRvNjQiKTsKK2NvbnN0IE1vdmVGbG9hdFRvMzIgPSBTeW1ib2woIk1vdmVGbG9hdFRvMzIi
KTsKK2NvbnN0IExvYWQ4ID0gU3ltYm9sKCJMb2FkOCIpOworY29uc3QgU3RvcmU4ID0gU3ltYm9s
KCJTdG9yZTgiKTsKK2NvbnN0IExvYWQ4U2lnbmVkRXh0ZW5kVG8zMiA9IFN5bWJvbCgiTG9hZDhT
aWduZWRFeHRlbmRUbzMyIik7Citjb25zdCBMb2FkMTYgPSBTeW1ib2woIkxvYWQxNiIpOworY29u
c3QgTG9hZDE2U2lnbmVkRXh0ZW5kVG8zMiA9IFN5bWJvbCgiTG9hZDE2U2lnbmVkRXh0ZW5kVG8z
MiIpOworY29uc3QgU3RvcmUxNiA9IFN5bWJvbCgiU3RvcmUxNiIpOworY29uc3QgQ29tcGFyZTMy
ID0gU3ltYm9sKCJDb21wYXJlMzIiKTsKK2NvbnN0IENvbXBhcmU2NCA9IFN5bWJvbCgiQ29tcGFy
ZTY0Iik7Citjb25zdCBUZXN0MzIgPSBTeW1ib2woIlRlc3QzMiIpOworY29uc3QgVGVzdDY0ID0g
U3ltYm9sKCJUZXN0NjQiKTsKK2NvbnN0IENvbXBhcmVEb3VibGUgPSBTeW1ib2woIkNvbXBhcmVE
b3VibGUiKTsKK2NvbnN0IENvbXBhcmVGbG9hdCA9IFN5bWJvbCgiQ29tcGFyZUZsb2F0Iik7Citj
b25zdCBCcmFuY2g4ID0gU3ltYm9sKCJCcmFuY2g4Iik7Citjb25zdCBCcmFuY2gzMiA9IFN5bWJv
bCgiQnJhbmNoMzIiKTsKK2NvbnN0IEJyYW5jaDY0ID0gU3ltYm9sKCJCcmFuY2g2NCIpOworY29u
c3QgQnJhbmNoVGVzdDggPSBTeW1ib2woIkJyYW5jaFRlc3Q4Iik7Citjb25zdCBCcmFuY2hUZXN0
MzIgPSBTeW1ib2woIkJyYW5jaFRlc3QzMiIpOworY29uc3QgQnJhbmNoVGVzdDY0ID0gU3ltYm9s
KCJCcmFuY2hUZXN0NjQiKTsKK2NvbnN0IEJyYW5jaERvdWJsZSA9IFN5bWJvbCgiQnJhbmNoRG91
YmxlIik7Citjb25zdCBCcmFuY2hGbG9hdCA9IFN5bWJvbCgiQnJhbmNoRmxvYXQiKTsKK2NvbnN0
IEJyYW5jaEFkZDMyID0gU3ltYm9sKCJCcmFuY2hBZGQzMiIpOworY29uc3QgQnJhbmNoQWRkNjQg
PSBTeW1ib2woIkJyYW5jaEFkZDY0Iik7Citjb25zdCBCcmFuY2hNdWwzMiA9IFN5bWJvbCgiQnJh
bmNoTXVsMzIiKTsKK2NvbnN0IEJyYW5jaE11bDY0ID0gU3ltYm9sKCJCcmFuY2hNdWw2NCIpOwor
Y29uc3QgQnJhbmNoU3ViMzIgPSBTeW1ib2woIkJyYW5jaFN1YjMyIik7Citjb25zdCBCcmFuY2hT
dWI2NCA9IFN5bWJvbCgiQnJhbmNoU3ViNjQiKTsKK2NvbnN0IEJyYW5jaE5lZzMyID0gU3ltYm9s
KCJCcmFuY2hOZWczMiIpOworY29uc3QgQnJhbmNoTmVnNjQgPSBTeW1ib2woIkJyYW5jaE5lZzY0
Iik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseTMyID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxs
eTMyIik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseTY0ID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9u
YWxseTY0Iik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseVRlc3QzMiA9IFN5bWJvbCgiTW92ZUNv
bmRpdGlvbmFsbHlUZXN0MzIiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5VGVzdDY0ID0gU3lt
Ym9sKCJNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlE
b3VibGUgPSBTeW1ib2woIk1vdmVDb25kaXRpb25hbGx5RG91YmxlIik7Citjb25zdCBNb3ZlQ29u
ZGl0aW9uYWxseUZsb2F0ID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseUZsb2F0Iik7Citjb25z
dCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTMyID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9u
YWxseTMyIik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTY0ID0gU3ltYm9sKCJNb3Zl
RG91YmxlQ29uZGl0aW9uYWxseTY0Iik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRl
c3QzMiA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0MzIiKTsKK2NvbnN0IE1v
dmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDY0ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9u
YWxseVRlc3Q2NCIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlEb3VibGUgPSBTeW1i
b2woIk1vdmVEb3VibGVDb25kaXRpb25hbGx5RG91YmxlIik7Citjb25zdCBNb3ZlRG91YmxlQ29u
ZGl0aW9uYWxseUZsb2F0ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0Iik7
Citjb25zdCBKdW1wID0gU3ltYm9sKCJKdW1wIik7Citjb25zdCBSZXQzMiA9IFN5bWJvbCgiUmV0
MzIiKTsKK2NvbnN0IFJldDY0ID0gU3ltYm9sKCJSZXQ2NCIpOworY29uc3QgUmV0RmxvYXQgPSBT
eW1ib2woIlJldEZsb2F0Iik7Citjb25zdCBSZXREb3VibGUgPSBTeW1ib2woIlJldERvdWJsZSIp
OworY29uc3QgT29wcyA9IFN5bWJvbCgiT29wcyIpOworY29uc3QgU2h1ZmZsZSA9IFN5bWJvbCgi
U2h1ZmZsZSIpOworY29uc3QgUGF0Y2ggPSBTeW1ib2woIlBhdGNoIik7Citjb25zdCBDQ2FsbCA9
IFN5bWJvbCgiQ0NhbGwiKTsKK2NvbnN0IENvbGRDQ2FsbCA9IFN5bWJvbCgiQ29sZENDYWxsIik7
CitmdW5jdGlvbiBJbnN0X2ZvckVhY2hBcmcoaW5zdCwgZnVuYykKK3sKKyAgICBzd2l0Y2ggKGlu
c3Qub3Bjb2RlKSB7CisgICAgY2FzZSBOb3A6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRk
MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBZGQ4OgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZURlZiwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZDE2
OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KTsKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCAxNik7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQWRkNjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAg
ICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQp
OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwg
NjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEdQLCA2NCk7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkRG91
YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZEZsb2F0OgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1YjMyOgorICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2VaRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1YjY0OgorICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U3ViRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAg
Y2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1YkZsb2F0Ogor
ICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgMzIpOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5lZzMyOgorICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTmVnNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlRGVmLCBHUCwgNjQp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5lZ2F0ZURvdWJsZToKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bDMyOgorICAg
ICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsNjQ6CisgICAgICAgIHN3aXRjaCAo
aW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
Ml0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTXVsdGlwbHlBZGQzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE11bHRpcGx5QWRkNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
R1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE11bHRpcGx5U3ViMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNdWx0aXBseVN1YjY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNdWx0aXBseU5lZzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNdWx0aXBseU5lZzY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDY0KTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXYzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGl2NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEdQLCA2NCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGlu
c3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
RGVmLCBGUCwgNjQpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cg
IkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE11bEZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5n
dGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
RlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIp
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBG
UCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9h
ZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBj
YXNlIERpdkRvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwg
NjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAg
Y2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXZGbG9h
dDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYODZDb252ZXJ0VG9Eb3VibGVX
b3JkMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgWDg2Q29udmVydFRvUXVhZFdvcmQ2NDoKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
RGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFg4NkRpdjMyOgorICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWDg2RGl2
NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgNjQpOworICAgICAgICBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBMZWE6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlQWRkciwgR1AsIFB0
cik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBBbmQzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAz
Mik7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVm
LCBHUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVy
bG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFuZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAg
ICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFuZERvdWJs
ZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmRGbG9hdDoKKyAgICAgICAg
c3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1syXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYb3JEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5z
dC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5E
ZWYsIEZQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgWG9yRmxvYXQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBG
UCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCAzMik7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQ
LCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2Fk
IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTHNoaWZ0MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAg
ICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMc2hpZnQ2
NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAg
ICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUnNoaWZ0MzI6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSc2hpZnQ2NDoKKyAgICAgICAgc3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LlpEZWYsIEdQLCA2NCk7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVXJzaGlmdDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpE
ZWYsIEdQLCAzMik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92
ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVXJzaGlmdDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsK
KyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0
KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBP
cjMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3I2NDoKKyAgICAgICAg
c3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1syXSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYb3IzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYs
IEdQLCAzMik7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2VaRGVmLCBHUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJh
ZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICBjYXNlIFhvcjY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsK
KyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0
KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpOworICAg
ICAgICBjYXNlIDI6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQp
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5v
dDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAy
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGNh
c2UgMToKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlWkRlZiwgR1AsIDMy
KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBO
b3Q2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
MjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgIGNh
c2UgMToKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlRGVmLCBHUCwgNjQp
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFi
c0RvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7Cisg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFic0Zsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgRlAsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2VpbERvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENlaWxGbG9hdDoKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEZsb29yRG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRmxvb3JGbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBG
UCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNxcnREb3VibGU6CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTcXJ0Rmxv
YXQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDb252ZXJ0SW50MzJUb0RvdWJsZToKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBG
UCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRJbnQ2NFRvRG91YmxlOgor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ29udmVydEludDMyVG9GbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRJbnQ2NFRvRmxvYXQ6CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb3Vu
dExlYWRpbmdaZXJvczMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENvdW50TGVhZGluZ1plcm9zNjQ6CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLkRlZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0RG91
YmxlVG9GbG9hdDoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENvbnZlcnRGbG9hdFRvRG91YmxlOgorICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZToKKyAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLkRlZiwgR1AsIFB0cik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3dh
cDMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZURlZiwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCAzMik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU3dhcDY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZURlZiwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQ
LCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZTMyOgorICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JlWmVybzMy
OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTaWduRXh0ZW5kMzJUb1B0cjoKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
RGVmLCBHUCwgUHRyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBaZXJvRXh0ZW5kOFRvMzI6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBTaWduRXh0ZW5kOFRvMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgOCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBaZXJvRXh0ZW5kMTZUbzMyOgorICAgICAgICBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNpZ25FeHRl
bmQxNlRvMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMTYpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTW92ZUZsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAz
Mik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZToKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVaZXJvVG9E
b3VibGU6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuRGVmLCBGUCwgNjQpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE1vdmU2NFRvRG91YmxlOgorICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZTMyVG9GbG9hdDoK
KyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIE1vdmVEb3VibGVUbzY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
RlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCA2NCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUZsb2F0VG8zMjoKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQ4OgorICAgICAg
ICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3Rv
cmU4OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIExvYWQ4U2lnbmVkRXh0ZW5kVG8zMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBH
UCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQxNjoKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkMTZTaWdu
ZWRFeHRlbmRUbzMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFN0b3JlMTY6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMTYpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1As
IDE2KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wYXJlMzI6CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wYXJlNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBUZXN0MzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBUZXN0NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDb21wYXJlRG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q29tcGFyZUZsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICBmdW5jKGluc3Qu
YXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJh
bmNoODoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJh
bmNoMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QnJhbmNoNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQnJhbmNoVGVzdDg6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEJyYW5jaFRlc3QzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBCcmFuY2hUZXN0NjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1As
IDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoRG91YmxlOgorICAgICAgICBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgNjQp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaEZsb2F0OgorICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBG
UCwgMzIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaEFkZDMyOgorICAgICAgICBz
d2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFy
Zy5aRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5V
c2VaRGVmLCBHUCwgMzIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJh
ZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJyYW5jaEFkZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5n
dGgpIHsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
R1AsIDY0KTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgNjQpOworICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTXVs
MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBjYXNlIDQ6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNd
LCBBcmcuU2NyYXRjaCwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBB
cmcuU2NyYXRjaCwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcu
WkRlZiwgR1AsIDMyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQg
b3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBCcmFuY2hNdWw2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3Ro
KSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZVpEZWYsIEdQLCA2
NCk7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuU2NyYXRjaCwgR1AsIDY0KTsKKyAg
ICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuU2NyYXRjaCwgR1AsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hTdWIzMjoKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sy
XSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNo
U3ViNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQnJhbmNoTmVnMzI6CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTmVnNjQ6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZVpEZWYsIEdQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlv
bmFsbHkzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNh
c2UgNToKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
ICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzRdLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgY2FzZSA2OgorICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3Nb
M10sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFy
Zy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYs
IEdQLCBQdHIpOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVy
bG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE1vdmVDb25kaXRpb25hbGx5NjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxl
bmd0aCkgeworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZURlZiwgR1AsIFB0cik7CisgICAg
ICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1
bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5z
dC5hcmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseVRlc3QzMjoKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNd
LCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcu
VXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQ
LCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQLCBQdHIp
OworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQLCBQdHIpOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25k
aXRpb25hbGx5VGVzdDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAg
ICAgICAgY2FzZSA1OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KTsK
KyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworICAgICAgICBjYXNlIDY6
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJn
c1s0XSwgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwg
QXJnLkRlZiwgR1AsIFB0cik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlEb3VibGU6CisgICAgICAgIHN3aXRjaCAo
aW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwg
R1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgR1AsIFB0
cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgR1AsIFB0cik7Cisg
ICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseUZs
b2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA2
OgorICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhp
bnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbNF0sIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNV0s
IEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwg
R1AsIFB0cik7CisgICAgICAgICAgICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZURlZiwgR1As
IFB0cik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2Fk
IjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1s1
XSwgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91Ymxl
Q29uZGl0aW9uYWxseTY0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0s
IEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBG
UCwgNjQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5
VGVzdDMyOgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sz
XSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2Us
IEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDY0Ogor
ICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVz
ZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5RG91YmxlOgorICAgICAgICBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlLCBGUCwgNjQpOworICAgICAgICBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0
KTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
IGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5RmxvYXQ6CisgICAgICAgIGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZSwgRlAsIDMyKTsKKyAgICAgICAgZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCAz
Mik7CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAg
ICBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgZnVuYyhpbnN0
LmFyZ3NbNV0sIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSnVt
cDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZXQzMjoKKyAgICAgICAgZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0NjQ6
CisgICAgICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFJldEZsb2F0OgorICAgICAgICBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZXREb3VibGU6CisgICAg
ICAgIGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE9vcHM6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2h1ZmZsZToKKyAgICAg
ICAgU2h1ZmZsZUN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFBhdGNoOgorICAgICAgICBQYXRjaEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1
bmMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENDYWxsOgorICAgICAgICBDQ2FsbEN1c3Rv
bS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbGRD
Q2FsbDoKKyAgICAgICAgQ29sZENDYWxsQ3VzdG9tLmZvckVhY2hBcmcoaW5zdCwgZnVuYyk7Cisg
ICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHRocm93ICJCYWQgb3Bjb2RlIjsK
KyAgICB9Cit9CitmdW5jdGlvbiBJbnN0X2hhc05vbkFyZ0VmZmVjdHMoaW5zdCkKK3sKKyAgICBz
d2l0Y2ggKGluc3Qub3Bjb2RlKSB7CisgICAgY2FzZSBCcmFuY2g4OgorICAgIGNhc2UgQnJhbmNo
MzI6CisgICAgY2FzZSBCcmFuY2g2NDoKKyAgICBjYXNlIEJyYW5jaFRlc3Q4OgorICAgIGNhc2Ug
QnJhbmNoVGVzdDMyOgorICAgIGNhc2UgQnJhbmNoVGVzdDY0OgorICAgIGNhc2UgQnJhbmNoRG91
YmxlOgorICAgIGNhc2UgQnJhbmNoRmxvYXQ6CisgICAgY2FzZSBCcmFuY2hBZGQzMjoKKyAgICBj
YXNlIEJyYW5jaEFkZDY0OgorICAgIGNhc2UgQnJhbmNoTXVsMzI6CisgICAgY2FzZSBCcmFuY2hN
dWw2NDoKKyAgICBjYXNlIEJyYW5jaFN1YjMyOgorICAgIGNhc2UgQnJhbmNoU3ViNjQ6CisgICAg
Y2FzZSBCcmFuY2hOZWczMjoKKyAgICBjYXNlIEJyYW5jaE5lZzY0OgorICAgIGNhc2UgSnVtcDoK
KyAgICBjYXNlIFJldDMyOgorICAgIGNhc2UgUmV0NjQ6CisgICAgY2FzZSBSZXRGbG9hdDoKKyAg
ICBjYXNlIFJldERvdWJsZToKKyAgICBjYXNlIE9vcHM6CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGNhc2UgU2h1ZmZsZToKKyAgICAgICAgcmV0dXJuIFNodWZmbGVDdXN0b20uaGFzTm9uQXJn
Tm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CisgICAgY2FzZSBQYXRjaDoKKyAgICAgICAgcmV0dXJu
IFBhdGNoQ3VzdG9tLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOworICAgIGNhc2Ug
Q0NhbGw6CisgICAgICAgIHJldHVybiBDQ2FsbEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZm
ZWN0cyhpbnN0KTsKKyAgICBjYXNlIENvbGRDQ2FsbDoKKyAgICAgICAgcmV0dXJuIENvbGRDQ2Fs
bEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9K
U0Fpci9yZWcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMJ
KHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3JlZy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEzMiBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBSZWcgZXh0ZW5kcyBUbXBCYXNlIHsK
KyAgICBjb25zdHJ1Y3RvcihpbmRleCwgdHlwZSwgbmFtZSwgaXNDYWxsZWVTYXZlKQorICAgIHsK
KyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKKyAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7
CisgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOworICAgICAgICB0aGlzLl9pc0NhbGxlZVNhdmUg
PSAhIWlzQ2FsbGVlU2F2ZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZyb21SZWcocmVnKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHJlZzsKKyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4KCkg
eyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5
cGU7IH0KKyAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KKyAgICBnZXQgaXND
YWxsZWVTYXZlKCkgeyByZXR1cm4gdGhpcy5faXNDYWxsZWVTYXZlOyB9CisgICAgCisgICAgZ2V0
IGlzUmVnKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAiJSIgKyB0aGlzLl9uYW1lOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
ZXh0cmFjdChhcmcpCisgICAgeworICAgICAgICBpZiAoYXJnLmlzUmVnKQorICAgICAgICAgICAg
cmV0dXJuIGFyZy5yZWc7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBz
dGF0aWMgZm9yRWFjaEZhc3QoYXJnLCBmdW5jKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFyZy5m
b3JFYWNoVG1wRmFzdCh0bXAgPT4geworICAgICAgICAgICAgaWYgKCF0bXAuaXNSZWcpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIGZ1bmModG1wKTsKKyAgICAg
ICAgfSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNoKGFyZywgYXJnUm9sZSwgYXJn
VHlwZSwgYXJnV2lkdGgsIGZ1bmMpCisgICAgeworICAgICAgICByZXR1cm4gYXJnLmZvckVhY2hU
bXAoCisgICAgICAgICAgICBhcmdSb2xlLCBhcmdUeXBlLCBhcmdXaWR0aCwKKyAgICAgICAgICAg
ICh0bXAsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKCF0bXAu
aXNSZWcpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1
cm4gZnVuYyh0bXAsIHJvbGUsIHR5cGUsIHdpZHRoKTsKKyAgICAgICAgICAgIH0pOworICAgIH0K
K30KKworeworICAgIFJlZy5yZWdzID0gW107CisgICAgZnVuY3Rpb24gbmV3UmVnKC4uLmFyZ3Mp
CisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFJlZyguLi5hcmdzKTsKKyAgICAgICAg
UmVnLnJlZ3MucHVzaChyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwor
ICAgIC8vIERlZmluZSBYODZfNjQgR1BScworICAgIHsKKyAgICAgICAgbGV0IGluZGV4ID0gMDsK
KyAgICAgICAgZnVuY3Rpb24gbmV3R1BSKG5hbWUsIGlzQ2FsbGVlU2F2ZSkgeyByZXR1cm4gbmV3
UmVnKGluZGV4KyssIEdQLCBuYW1lLCBpc0NhbGxlZVNhdmUpOyB9CisgICAgICAgIAorICAgICAg
ICBSZWcucmF4ID0gbmV3R1BSKCJyYXgiKTsKKyAgICAgICAgUmVnLnJjeCA9IG5ld0dQUigicmN4
Iik7CisgICAgICAgIFJlZy5yZHggPSBuZXdHUFIoInJkeCIpOworICAgICAgICBSZWcucmJ4ID0g
bmV3R1BSKCJyYngiLCB0cnVlKTsKKyAgICAgICAgUmVnLnJzcCA9IG5ld0dQUigicnNwIik7Cisg
ICAgICAgIFJlZy5yYnAgPSBuZXdHUFIoInJicCIsIHRydWUpOworICAgICAgICBSZWcucnNpID0g
bmV3R1BSKCJyc2kiKTsKKyAgICAgICAgUmVnLnJkaSA9IG5ld0dQUigicmRpIik7CisgICAgICAg
IGZvciAobGV0IGkgPSA4OyBpIDw9IDE1OyArK2kpCisgICAgICAgICAgICBSZWdbInIiICsgaV0g
PSBuZXdHUFIoInIiICsgaSwgaSA+PSAxMik7CisgICAgfQorCisgICAgLy8gRGVmaW5lIFg4Nl82
NCBGUFJzLgorICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDE1OyArK2kpCisgICAgICAgIFJlZ1si
eG1tIiArIGldID0gbmV3UmVnKGksIEZQLCAieG1tIiArIGkpOworCisgICAgUmVnLmdwcnMgPSBb
XQorICAgIFJlZy5mcHJzID0gW10KKyAgICBSZWcuY2FsbGVlU2F2ZUdQUnMgPSBbXQorICAgIFJl
Zy5jYWxsZWVTYXZlRlBScyA9IFtdCisgICAgUmVnLmNhbGxlZVNhdmVzID0gW10KKyAgICBmb3Ig
KGxldCByZWcgb2YgUmVnLnJlZ3MpIHsKKyAgICAgICAgaWYgKHJlZy5pc0dQKSB7CisgICAgICAg
ICAgICBSZWcuZ3Bycy5wdXNoKHJlZyk7CisgICAgICAgICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2
ZSkKKyAgICAgICAgICAgICAgICBSZWcuY2FsbGVlU2F2ZUdQUnMucHVzaChyZWcpOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgUmVnLmZwcnMucHVzaChyZWcpOworICAgICAgICAgICAg
aWYgKHJlZy5pc0NhbGxlZVNhdmUpCisgICAgICAgICAgICAgICAgUmVnLmNhbGxlZVNhdmVGUFJT
LnB1c2gocmVnKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2ZSkKKyAg
ICAgICAgICAgIFJlZy5jYWxsZWVTYXZlcy5wdXNoKHJlZyk7CisgICAgfQorICAgIAorICAgIFJl
Zy5jYWxsRnJhbWVSZWdpc3RlciA9IFJlZy5yYnA7CisgICAgUmVnLnN0YWNrUG9pbnRlclJlZ2lz
dGVyID0gUmVnLnJzcDsKK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3RhY2tfc2xv
dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N0YWNrX3Nsb3QuanMJ
KHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N0YWNrX3Nsb3QuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw5NiBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBTdGFja1Nsb3QgeworICAg
IGNvbnN0cnVjdG9yKGJ5dGVTaXplLCBraW5kKQorICAgIHsKKyAgICAgICAgdGhpcy5fYnl0ZVNp
emUgPSBieXRlU2l6ZTsKKyAgICAgICAgdGhpcy5fa2luZCA9IGtpbmQ7CisgICAgfQorICAgIAor
ICAgIGdldCBieXRlU2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2J5dGVTaXplOyB9CisgICAgZ2V0IGtp
bmQoKSB7IHJldHVybiB0aGlzLl9raW5kOyB9CisgICAgCisgICAgZ2V0IGlzTG9ja2VkIHsgcmV0
dXJuIHRoaXMuX2tpbmQgPT0gTG9ja2VkOyB9CisgICAgZ2V0IGlzU3BpbGwgeyByZXR1cm4gdGhp
cy5fa2luZCA9PSBTcGlsbDsgfQorICAgIAorICAgIGdldCBpbmRleCB7IHJldHVybiB0aGlzLl9p
bmRleDsgfQorCisgICAgZW5zdXJlU2l6ZShzaXplKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X29mZnNldEZyb21GUCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3RhY2sgc2xvdCBh
bHJlYWR5IGFsbG9jYXRlZCIpOworICAgICAgICB0aGlzLl9ieXRlU2l6ZSA9IE1hdGgubWF4KHRo
aXMuX2J5dGVTaXplLCBzaXplKTsKKyAgICB9CisgICAgCisgICAgZ2V0IGFsaWdubWVudCgpCisg
ICAgeworICAgICAgICBpZiAodGhpcy5fYnl0ZVNpemUgPD0gMSkKKyAgICAgICAgICAgIHJldHVy
biAxOworICAgICAgICBpZiAodGhpcy5fYnl0ZVNpemUgPD0gMikKKyAgICAgICAgICAgIHJldHVy
biAyOworICAgICAgICBpZiAodGhpcy5fYnl0ZVNpemUgPD0gNCkKKyAgICAgICAgICAgIHJldHVy
biA0OworICAgICAgICByZXR1cm4gODsKKyAgICB9CisgICAgCisgICAgZ2V0IG9mZnNldEZyb21G
UCgpIHsgcmV0dXJuIHRoaXMuX29mZnNldEZyb21GUDsgfQorICAgIAorICAgIHNldE9mZnNldEZy
b21GUCh2YWx1ZSkgeyB0aGlzLl9vZmZzZXRGcm9tRlAgPSB2YWx1ZTsgfQorICAgIAorICAgIHRv
U3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiIiArICh0aGlzLmlzU3BpbGwgPyAic3Bp
bGwiIDogInN0YWNrIikgKyB0aGlzLl9pbmRleCArICI8IiArIHRoaXMuX2J5dGVTaXplICsKKyAg
ICAgICAgICAgICh0aGlzLl9vZmZzZXRGcm9tRlAgPyAiLCBvZmZzZXQgPSAiLCB0aGlzLl9vZmZz
ZXRGcm9tRlAgOiAiIikgKyAiPiI7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBleHRyYWN0KGFy
ZykKKyAgICB7CisgICAgICAgIGlmIChhcmcuaXNTdGFjaykKKyAgICAgICAgICAgIHJldHVybiBh
cmcuc3RhY2tTbG90OworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgc3Rh
dGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlzU3Rh
Y2spCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBsZXQgcmVwbGFjZW1l
bnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoYXJnLnN0YWNrU2xvdCkpCisgICAg
ICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVN0YWNrKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZzZXQp
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaChhcmcsIHJvbGUsIHR5cGUsIHdpZHRo
LCBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKCFhcmcuaXNTdGFjaykKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgCisgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhhcmcuc3RhY2tTbG90LCByb2xlLCB0eXBlLCB3aWR0aCkpCisgICAg
ICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVN0YWNrKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZzZXQp
OworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9scy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHJldmlzaW9uIDAp
CisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw3NSBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisvLyBUaGlzIGZpbGUgaXMgZm9yIG1pc2Mgc3ltYm9scy4KKwor
Ly8gQXJnIHR5cGUKK2NvbnN0IEdQID0gU3ltYm9sKCJHUCIpOworY29uc3QgRlAgPSBTeW1ib2wo
IkZQIik7CisKKy8vIFN0YWNrIHNsb3Qga2luZAorY29uc3QgTG9ja2VkID0gU3ltYm9sKCJMb2Nr
ZWQiKTsKK2NvbnN0IFNwaWxsID0gU3ltYm9sKCJTcGlsbCIpOworCisvLyBGcmVxdWVuY3kgY2xh
c3MKK2NvbnN0IE5vcm1hbCA9IFN5bWJvbCgiTm9ybWFsIik7Citjb25zdCBSYXJlID0gU3ltYm9s
KCJSYXJlIik7CisKKy8vIFJlbGF0aW9uYWwgY29uZGl0aW9ucworY29uc3QgRXF1YWwgPSBTeW1i
b2woIkVxdWFsIik7Citjb25zdCBOb3RFcXVhbCA9IFN5bWJvbCgiTm90RXF1YWwiKTsKK2NvbnN0
IEFib3ZlID0gU3ltYm9sKCJBYm92ZSIpOworY29uc3QgQWJvdmVPckVxdWFsID0gU3ltYm9sKCJB
Ym92ZU9yRXF1YWwiKTsKK2NvbnN0IEJlbG93ID0gU3ltYm9sKCJCZWxvdyIpOworY29uc3QgQmVs
b3dPckVxdWFsID0gU3ltYm9sKCJCZWxvd09yRXF1YWwiKTsKK2NvbnN0IEdyZWF0ZXJUaGFuID0g
U3ltYm9sKCJHcmVhdGVyVGhhbiIpOworY29uc3QgR3JlYXRlclRoYW5PckVxdWFsID0gU3ltYm9s
KCJHcmVhdGVyVGhhbk9yRXF1YWwiKTsKK2NvbnN0IExlc3NUaGFuID0gU3ltYm9sKCJMZXNzVGhh
biIpOworY29uc3QgTGVzc1RoYW5PckVxdWFsID0gU3ltYm9sKCJMZXNzVGhhbk9yRXF1YWwiKTsK
KworLy8gUmVzdWx0IGNvbmRpdGlvbnMKK2NvbnN0IE92ZXJmbG93ID0gU3ltYm9sKCJPdmVyZmxv
dyIpOworY29uc3QgU2lnbmVkID0gU3ltYm9sKCJTaWduZWQiKTsKK2NvbnN0IFBvc2l0aXZlT3Ja
ZXJvID0gU3ltYm9sKCJQb3NpdGl2ZU9yWmVybyIpOworY29uc3QgWmVybyA9IFN5bWJvbCgiWmVy
byIpOworY29uc3QgTm9uWmVybyA9IFN5bWJvbCgiTm9uWmVybyIpOworCisvLyBEb3VibGUgY29u
ZGl0aW9ucworY29uc3QgRG91YmxlRXF1YWwgPSBTeW1ib2woIkRvdWJsZUVxdWFsIik7Citjb25z
dCBEb3VibGVOb3RFcXVhbCA9IFN5bWJvbCgiRG91YmxlTm90RXF1YWwiKTsKK2NvbnN0IERvdWJs
ZUdyZWF0ZXJUaGFuID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhhbiIpOworY29uc3QgRG91Ymxl
R3JlYXRlclRoYW5PckVxdWFsID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwiKTsK
K2NvbnN0IERvdWJsZUxlc3NUaGFuID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbiIpOworY29uc3Qg
RG91YmxlTGVzc1RoYW5PckVxdWFsID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9yRXF1YWwiKTsK
K2NvbnN0IERvdWJsZUVxdWFsT3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUVxdWFsT3JVbm9y
ZGVyZWQiKTsKK2NvbnN0IERvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJs
ZU5vdEVxdWFsT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZUdyZWF0ZXJUaGFuT3JVbm9yZGVy
ZWQgPSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJUaGFuT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJs
ZUdyZWF0ZXJUaGFuT3JFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhh
bk9yRXF1YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlTGVzc1RoYW5PclVub3JkZXJlZCA9
IFN5bWJvbCgiRG91YmxlTGVzc1RoYW5PclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlTGVzc1Ro
YW5PckVxdWFsT3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuT3JFcXVhbE9yVW5v
cmRlcmVkIik7CisKKy8vIERlZmluZSBwb2ludGVyVHlwZSgpCitjb25zdCBQdHIgPSA2NDsKSW5k
ZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvdG1wLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9K
U0Fpci90bXAuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorInVzZSBzdHJpY3Qi
OworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBU
bXAgZXh0ZW5kcyBUbXBCYXNlIHsKKyAgICBjb25zdHJ1Y3RvcihpbmRleCwgdHlwZSkKKyAgICB7
CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMuX3R5cGUgPSB0eXBl
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZnJvbVJlZyhyZWcpCisgICAgeworICAgICAgICBy
ZXR1cm4gcmVnOworICAgIH0KKyAgICAKKyAgICBnZXQgaW5kZXgoKSB7IHJldHVybiB0aGlzLl9p
bmRleDsgfQorICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQorICAgIAorICAg
IGdldCBpc1JlZygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgCisgICAgdG9TdHJpbmcoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICIlIiArICh0aGlzLmlzR1AgPyAiIiA6ICJmIikgKyAidG1wIiAr
IHRoaXMuX2luZGV4OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZXh0cmFjdChhcmcpCisgICAg
eworICAgICAgICBpZiAoYXJnLmlzVG1wKQorICAgICAgICAgICAgcmV0dXJuIGFyZy50bXA7Cisg
ICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworICAgIHN0YXRpYyBmb3JFYWNoRmFzdChhcmcs
IGZ1bmMpIHsgcmV0dXJuIGFyZy5mb3JFYWNoVG1wRmFzdChmdW5jKTsgfQorICAgIHN0YXRpYyBm
b3JFYWNoKGFyZywgcm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmMpIHsgcmV0dXJuIGFyZy5mb3JFYWNo
VG1wKHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKTsgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci90bXBfYmFzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWly
L3RtcF9iYXNlLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXBf
YmFzZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU1IEBACisidXNlIHN0cmljdCI7Cisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIFRtcEJh
c2UgeworICAgIGdldCBpc0dQKCkgeyByZXR1cm4gdGhpcy50eXBlID09IEdQOyB9CisgICAgZ2V0
IGlzRlAoKSB7IHJldHVybiB0aGlzLnR5cGUgPT0gRlA7IH0KKyAgICAKKyAgICBnZXQgaXNHUFIo
KSB7IHJldHVybiB0aGlzLmlzUmVnICYmIHRoaXMuaXNHUDsgfQorICAgIGdldCBpc0ZQUigpIHsg
cmV0dXJuIHRoaXMuaXNSZWcgJiYgdGhpcy5pc0ZQOyB9CisgICAgCisgICAgZ2V0IHJlZygpCisg
ICAgeworICAgICAgICBpZiAoIXRoaXMuaXNSZWcpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkNhbGxlZCAucmVnIG9uIG5vbi1SZWciKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAg
fQorCisgICAgZ2V0IGdwcigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNHUFIpCisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuZ3ByIG9uIG5vbi1HUFIiKTsKKyAgICAg
ICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAgIAorICAgIGdldCBmcHIoKQorICAgIHsKKyAgICAg
ICAgaWYgKCF0aGlzLmlzRlBSKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQg
LmZwciBvbiBub24tRlBSIik7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KK30KKwpJbmRl
eDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci91dGlsLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvdXRpbC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvdXRpbC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMwIEBACisidXNlIHN0cmlj
dCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2Z1bmN0
aW9uIGlzUmVwcmVzZW50YWJsZUFzSW50MzIodmFsdWUpCit7CisgICAgcmV0dXJuICh2YWx1ZSB8
IDApID09PSB2YWx1ZTsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDgg
QEAKIAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJC
MDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAw
MEE4ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJ
CURDMjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAv
KiBJQ1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCOEMxRDAwRTgyMjAwNEMxOEFGIC8qIEFpckR1
bXBBc0pTLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDNDU0QjhBMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi87IH07CisJCURD
NDU0QjhEMUQwMEU4MjQwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFGIC8q
IEFpckR1bXBBc0pTLmggKi87IH07CiAJCURDNjA1QjVEMUNFMjZFQTAwMDU5MzcxOCAvKiBQcm9m
aWxlckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCAqLzsgfTsK
IAkJREM2MDVCNUUxQ0UyNkVBMjAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVBMUNFMjZFOTgwMDU5
MzcxOCAvKiBQcm9maWxlckV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJREM2MDVCNUYxQ0UyNkVBNTAwNTkzNzE4IC8qIFByb2ZpbGVyVUlE
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1
QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi87IH07CkBAIC00MTk3LDYg
KzQxOTksOCBAQAogCQlEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENDYWxsSGVscGVycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAv
KiBJQ1N0YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElDU3Rh
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNjFDQTMyRTUyMDAw
QTg4NjkgLyogSUNTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJQ1N0
YXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNDU0QjhBMUQwMEU4MUYwMDRD
MThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4QUYgLyogQWly
RHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWlyRHVtcEFzSlMu
aDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNwcDsgcGF0aCA9
IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlckV2ZW50Lmg7IHBhdGggPSBwcm9maWxlci9Q
cm9maWxlckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVCMUNF
MjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBQcm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJ
RC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODIxLDYgKzQ4MjUsOCBAQAog
CQkJCTBGRUM4NTUxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDb2RlLmggKi8sCiAJCQkJMEY2MTgz
MjIxQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckN1c3RvbS5jcHAgKi8sCiAJCQkJMEYxMEYxQTIxQzQy
MEJGMDAwMUMwN0QyIC8qIEFpckN1c3RvbS5oICovLAorCQkJCURDNDU0QjhBMUQwMEU4MUYwMDRD
MThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8sCisJCQkJREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFG
IC8qIEFpckR1bXBBc0pTLmggKi8sCiAJCQkJMEY0NTcwMzYxQkU0NEM5MTAwNjJBNjI5IC8qIEFp
ckVsaW1pbmF0ZURlYWRDb2RlLmNwcCAqLywKIAkJCQkwRjQ1NzAzNzFCRTQ0QzkxMDA2MkE2Mjkg
LyogQWlyRWxpbWluYXRlRGVhZENvZGUuaCAqLywKIAkJCQkwRjYxODMyMzFDNDVCRjA3MDA3MjQ1
MEIgLyogQWlyRW1pdFNodWZmbGUuY3BwICovLApAQCAtNzAyMiw2ICs3MDI4LDcgQEAKIAkJCQkw
RkVDODUwNjFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUM4NTA4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrVmFsdWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRUM4NTBBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbW1vbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwQzFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tdXRh
dGl2aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwRTFCREFDREFDMDA4MEZGNzQgLyog
QjNDb25zdDMyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTEwMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MTA2LDYgKzkxMTMs
NyBAQAogCQkJCTE0MDU2NkQ2MTA3RUMyNzEwMDVEQkM4RCAvKiBKU0Z1bmN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGNEEzOEY5MUM4RTEzREYwMDE5MDMxOCAvKiBTdXBlclNhbXBsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xv
YmFsTGV4aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNDU0QjhDMUQw
MEU4MjIwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdG
MzlEMjEwN0VDMzc2MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTVGRDAwODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkzQSAvKiBK
U0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVTdGFjay5jcHAJKHJl
dmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2Nh
dGVTdGFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJM
RShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29k
ZS5oIgogI2luY2x1ZGUgIkFpckluc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxp
bmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgJKHJldmlzaW9u
IDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY4OCw3ICs2ODgsMTUgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1NvbWVJ
bW0oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGlzSW1tKCkgfHwgaXNCaWdJbW0oKSB8
fCBpc0JpdEltbSgpIHx8IGlzQml0SW1tNjQoKTsKKyAgICAgICAgc3dpdGNoIChraW5kKCkpIHsK
KyAgICAgICAgY2FzZSBJbW06CisgICAgICAgIGNhc2UgQmlnSW1tOgorICAgICAgICBjYXNlIEJp
dEltbToKKyAgICAgICAgY2FzZSBCaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAg
ICAgfQogCiAgICAgYm9vbCBpc0FkZHIoKSBjb25zdApAQCAtOTkzLDMzICsxMDAxLDYgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gdG1wKCkudG1wSW5kZXgoKTsKICAgICB9CiAKLSAgICAvLyBJ
ZiAndGhpcycgaXMgYW4gYWRkcmVzcyBBcmcsIHRoZW4gaXQgcmV0dXJucyBhIG5ldyBhZGRyZXNz
IEFyZyB3aXRoIHRoZSBhZGRpdGlvbmFsIG9mZnNldCBhcHBsaWVkLgotICAgIC8vIE5vdGUgdGhh
dCB0aGlzIGRvZXMgbm90IGNvbnNpZGVyIHdoZXRoZXIgZG9pbmcgc28gcHJvZHVjZXMgYSB2YWxp
ZCBBcmcgb3Igbm90LiBVbmxlc3MgeW91IHJlYWxseQotICAgIC8vIGtub3cgd2hhdCB5b3UncmUg
ZG9pbmcsIHlvdSBzaG91bGQgY2FsbCBBcmc6OmlzVmFsaWRGb3JtKCkgb24gdGhlIHJlc3VsdC4g
U29tZSBjb2RlIHdvbid0IGRvIHRoYXQsCi0gICAgLy8gbGlrZSBpZiB5b3UncmUgYXBwbHlpbmcg
YSB2ZXJ5IHNtYWxsIG9mZnNldCB0byBhIEFyZzo6c3RhY2soKSB0aGF0IHlvdSBrbm93IGhhcyBu
byBvZmZzZXQgdG8gYmVnaW4KLSAgICAvLyB3aXRoLiBJdCdzIHNhZmUgdG8gYXNzdW1lIHRoYXQg
YWxsIHRhcmdldHMgYWxsb3cgc21hbGwgb2Zmc2V0cyAobGlrZSwgMC4uNykgZm9yIEFkZHIsIFN0
YWNrLCBhbmQKLSAgICAvLyBDYWxsQXJnLgotICAgIEFyZyB3aXRoT2Zmc2V0KGludDY0X3QgYWRk
aXRpb25hbE9mZnNldCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghaGFzT2Zmc2V0KCkpCi0g
ICAgICAgICAgICByZXR1cm4gQXJnKCk7Ci0gICAgICAgIGlmIChzdW1PdmVyZmxvd3M8aW50NjRf
dD4ob2Zmc2V0KCksIGFkZGl0aW9uYWxPZmZzZXQpKQotICAgICAgICAgICAgcmV0dXJuIEFyZygp
OwotICAgICAgICBzd2l0Y2ggKGtpbmQoKSkgewotICAgICAgICBjYXNlIEFkZHI6Ci0gICAgICAg
ICAgICByZXR1cm4gYWRkcihiYXNlKCksIG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNldCk7Ci0g
ICAgICAgIGNhc2UgU3RhY2s6Ci0gICAgICAgICAgICByZXR1cm4gc3RhY2soc3RhY2tTbG90KCks
IG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNldCk7Ci0gICAgICAgIGNhc2UgQ2FsbEFyZzoKLSAg
ICAgICAgICAgIHJldHVybiBjYWxsQXJnKG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNldCk7Ci0g
ICAgICAgIGNhc2UgSW5kZXg6Ci0gICAgICAgICAgICByZXR1cm4gaW5kZXgoYmFzZSgpLCBpbmRl
eCgpLCBzY2FsZSgpLCBvZmZzZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
ICAgIHJldHVybiBBcmcoKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHN0YXRpYyBib29sIGlz
VmFsaWRJbW1Gb3JtKGludDY0X3QgdmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaXNYODYoKSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnSW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnSW5saW5lcy5oCShy
ZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZ0lu
bGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsODggQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJnVGhpbmdIZWxwZXI8QXJnPiB7CiAgICAgfQogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJnVGhpbmdIZWxwZXI8U3RhY2tTbG90Kj4geworICAgIHN0YXRpYyBib29sIGlzKGNvbnN0IEFy
ZyYgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFyZy5pc1N0YWNrKCk7CisgICAgfQorICAg
IAorICAgIHN0YXRpYyBTdGFja1Nsb3QqIGFzKGNvbnN0IEFyZyYgYXJnKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFyZy5zdGFja1Nsb3QoKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoRmFzdChBcmcmIGFyZywgY29u
c3QgRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlzU3RhY2soKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIFN0YWNrU2xvdCogc3RhY2tT
bG90ID0gYXJnLnN0YWNrU2xvdCgpOworICAgICAgICBmdW5jdG9yKHN0YWNrU2xvdCk7CisgICAg
ICAgIGFyZyA9IEFyZzo6c3RhY2soc3RhY2tTbG90LCBhcmcub2Zmc2V0KCkpOworICAgIH0KKyAg
ICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHN0YXRpYyB2b2lkIGZvckVh
Y2goQXJnJiBhcmcsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3
aWR0aCwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlz
U3RhY2soKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIFN0YWNrU2xv
dCogc3RhY2tTbG90ID0gYXJnLnN0YWNrU2xvdCgpOworICAgICAgICAKKyAgICAgICAgLy8gRklY
TUU6IFRoaXMgaXMgd2F5IHRvbyBvcHRpbWlzdGljIGFib3V0IHRoZSBtZWFuaW5nIG9mICJEZWYi
LiBJdCBnZXRzIGx1Y2t5IGZvcgorICAgICAgICAvLyBub3cgYmVjYXVzZSBvdXIgb25seSB1c2Ug
b2YgIkFub255bW91cyIgc3RhY2sgc2xvdHMgaGFwcGVucyB0byB3YW50IHRoZSBvcHRpbWlzdGlj
CisgICAgICAgIC8vIHNlbWFudGljcy4gV2UgY291bGQgZml4IHRoaXMgYnkganVzdCBjaGFuZ2lu
ZyB0aGUgY29tbWVudHMgdGhhdCBkZXNjcmliZSB0aGUKKyAgICAgICAgLy8gc2VtYW50aWNzIG9m
ICJBbm9ueW1vdXMiLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUxMTI4CisgICAgICAgIAorICAgICAgICBmdW5jdG9yKHN0YWNrU2xvdCwgcm9s
ZSwgdHlwZSwgd2lkdGgpOworICAgICAgICBhcmcgPSBBcmc6OnN0YWNrKHN0YWNrU2xvdCwgYXJn
Lm9mZnNldCgpKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmdUaGluZ0hlbHBl
cjxSZWc+IHsKKyAgICBzdGF0aWMgYm9vbCBpcyhjb25zdCBBcmcmIGFyZykKKyAgICB7CisgICAg
ICAgIHJldHVybiBhcmcuaXNSZWcoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFJlZyBhcyhj
b25zdCBBcmcmIGFyZykKKyAgICB7CisgICAgICAgIHJldHVybiBhcmcucmVnKCk7CisgICAgfQor
ICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgc3RhdGljIHZvaWQgZm9y
RWFjaEZhc3QoQXJnJiBhcmcsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAg
ICBhcmcuZm9yRWFjaFRtcEZhc3QoCisgICAgICAgICAgICBbJl0gKFRtcCYgdG1wKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCF0bXAuaXNSZWcoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJlZyByZWcgPSB0bXAucmVnKCk7
CisgICAgICAgICAgICAgICAgZnVuY3RvcihyZWcpOworICAgICAgICAgICAgICAgIHRtcCA9IFRt
cChyZWcpOworICAgICAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0b3I+CisgICAgc3RhdGljIHZvaWQgZm9yRWFjaChBcmcmIGFyZywgQXJnOjpSb2xl
IGFyZ1JvbGUsIEFyZzo6VHlwZSBhcmdUeXBlLCBBcmc6OldpZHRoIGFyZ1dpZHRoLCBjb25zdCBG
dW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgYXJnLmZvckVhY2hUbXAoCisgICAgICAg
ICAgICBhcmdSb2xlLCBhcmdUeXBlLCBhcmdXaWR0aCwKKyAgICAgICAgICAgIFsmXSAoVG1wJiB0
bXAsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0aCkgewor
ICAgICAgICAgICAgICAgIGlmICghdG1wLmlzUmVnKCkpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSZWcgcmVnID0gdG1wLnJl
ZygpOworICAgICAgICAgICAgICAgIGZ1bmN0b3IocmVnLCByb2xlLCB0eXBlLCB3aWR0aCk7Cisg
ICAgICAgICAgICAgICAgdG1wID0gVG1wKHJlZyk7CisgICAgICAgICAgICB9KTsKKyAgICB9Cit9
OworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUaGluZz4KIGJvb2wgQXJnOjppcygpIGNvbnN0CiB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJB
aXJEdW1wQXNKUy5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkFpckNvZGUu
aCIKKyNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisKK25hbWVzcGFjZSB7CisKK0NTdHJpbmcgdmFyTmFt
ZUZvckJsb2NrQXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gdG9DU3RyaW5n
KCJiYiIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKEJhc2ljQmxvY2sqIGJsb2NrKQor
eworICAgIHJldHVybiB2YXJOYW1lRm9yQmxvY2tBdEluZGV4KGJsb2NrLT5pbmRleCgpKTsKK30K
KworQ1N0cmluZyB2YXJOYW1lRm9yU3RhY2tTbG90QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sK
KyAgICByZXR1cm4gdG9DU3RyaW5nKCJzbG90IiwgaW5kZXgpOworfQorCitDU3RyaW5nIHZhck5h
bWUoU3RhY2tTbG90KiBzbG90KQoreworICAgIHJldHVybiB2YXJOYW1lRm9yU3RhY2tTbG90QXRJ
bmRleChzbG90LT5pbmRleCgpKTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFJlZyByZWcpCit7Cisg
ICAgcmV0dXJuIHRvQ1N0cmluZygiUmVnLiIsIHJlZy5kZWJ1Z05hbWUoKSk7Cit9CisKK0NTdHJp
bmcgdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5kSW5kZXgoQXJnOjpUeXBlIHR5cGUsIHVuc2lnbmVk
IGluZGV4KQoreworICAgIHJldHVybiB0b0NTdHJpbmcodHlwZSA9PSBBcmc6OkZQID8gImYiIDog
IiIsICJ0bXAiLCBpbmRleCk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShUbXAgdG1wKQoreworICAg
IGlmICh0bXAuaXNSZWcoKSkKKyAgICAgICAgcmV0dXJuIHZhck5hbWUodG1wLnJlZygpKTsKKyAg
ICByZXR1cm4gdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5kSW5kZXgoQXJnKHRtcCkudHlwZSgpLCB0
bXAudG1wSW5kZXgoKSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCit2b2lkIGR1
bXBBc0pTKENvZGUmIGNvZGUsIFByaW50U3RyZWFtJiBvdXQpCit7CisgICAgb3V0LnByaW50bG4o
ImxldCBjb2RlID0gbmV3IENvZGUoKTsiKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgY29kZS5zaXplKCk7ICsraSkKKyAgICAgICAgb3V0LnByaW50bG4oImxldCAiLCB2YXJO
YW1lRm9yQmxvY2tBdEluZGV4KGkpLCAiID0gY29kZS5hZGRCbG9jaygpOyIpOworICAgIAorICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2RlLnN0YWNrU2xvdHMoKS5zaXplKCk7ICsraSkg
eworICAgICAgICBTdGFja1Nsb3QqIHNsb3QgPSBjb2RlLnN0YWNrU2xvdHMoKVtpXTsKKyAgICAg
ICAgaWYgKHNsb3QpCisgICAgICAgICAgICBvdXQucHJpbnRsbigibGV0ICIsIHZhck5hbWUoc2xv
dCksICIgPSBjb2RlLmFkZFN0YWNrU2xvdCgiLCBzbG90LT5ieXRlU2l6ZSgpLCAiLCAiLCBzbG90
LT5raW5kKCksICIpOyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJpbnRsbigi
Y29kZS5hZGRTdGFja1Nsb3QoMSwgU3BpbGwpOyIpOworICAgIH0KKyAgICAKKyAgICBBcmc6OmZv
ckVhY2hUeXBlKAorICAgICAgICBbJl0gKEFyZzo6VHlwZSB0eXBlKSB7CisgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBjb2RlLm51bVRtcHModHlwZSk7IGktLTspIHsKKyAgICAgICAgICAg
ICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgImxldCAiLCB2YXJOYW1lRm9y
VG1wV2l0aFR5cGVBbmRJbmRleCh0eXBlLCBpKSwgIiA9IGNvZGUubmV3VG1wKCIsIHR5cGUsICIp
OyIpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAKKyAgICBvdXQucHJpbnRsbigi
bGV0IGluc3Q7Iik7CisgICAgb3V0LnByaW50bG4oImxldCBhcmc7Iik7CisgICAgCisgICAgZm9y
IChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgZm9yIChGcmVxdWVudGVkQmxv
Y2sgc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAgb3V0LnBy
aW50bG4oCisgICAgICAgICAgICAgICAgdmFyTmFtZShibG9jayksICIuc3VjY2Vzc29ycy5hcHBl
bmQobmV3IEZyZXF1ZW50ZWRCbG9jaygiLAorICAgICAgICAgICAgICAgIHZhck5hbWUoc3VjY2Vz
c29yLmJsb2NrKCkpLCAiLCAiLCBzdWNjZXNzb3IuZnJlcXVlbmN5KCksICIpKTsiKTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBwcmVkZWNlc3NvciA6IGJs
b2NrLT5wcmVkZWNlc3NvcnMoKSkKKyAgICAgICAgICAgIG91dC5wcmludGxuKHZhck5hbWUoYmxv
Y2spLCAiLmFkZFByZWRlY2Vzc29yKCIsIHZhck5hbWUocHJlZGVjZXNzb3IpLCAiKTsiKTsKKyAg
ICAgICAgCisgICAgICAgIGZvciAoSW5zdCYgaW5zdCA6ICpibG9jaykgeworICAgICAgICAgICAg
b3V0LnByaW50bG4oImluc3QgPSBuZXcgSW5zdCgiLCBpbnN0Lm9wY29kZSwgIik7Iik7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGluc3QuZm9yRWFjaEFyZygKKyAgICAgICAgICAgICAgICBb
Jl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUsIEFyZzo6VHlwZSwgQXJnOjpXaWR0aCkgeworICAgICAg
ICAgICAgICAgICAgICBzd2l0Y2ggKGFyZy5raW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBBcmc6OkludmFsaWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlRtcDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlVG1wKCIs
IHZhck5hbWUoYXJnLnRtcCgpKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFy
Zzo6SW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5j
cmVhdGVJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBBcmc6OkJpZ0ltbToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcg
PSBBcmcuY3JlYXRlQmlnSW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQXJnOjpCaXRJbW06CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJp
bnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpdEltbSgiLCBhcmcudmFsdWUoKSwgIik7Iik7CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CisgICAgICAgICAgICAgICAgICAg
ICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpdEltbTY0KCIsIGFyZy52YWx1ZSgp
LCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpBZGRyOgorICAgICAgICAg
ICAgICAgICAgICAgICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImFyZyA9IEFyZy5jcmVhdGVBZGRyKCIsIHZhck5hbWUoYXJnLmJhc2UoKSksICIsICIsIGFyZy5v
ZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6U3RhY2s6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZVN0YWNrKCIsIGFyZy5zdGFja1Nsb3QoKSwgIiwgIiwg
YXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpDYWxs
QXJnOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVh
dGVDYWxsQXJnKCIsIGFyZy5vZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBj
YXNlIEFyZzo6SW5kZXg6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZUluZGV4KCIsIHZhck5h
bWUoYXJnLmJhc2UoKSksICIsICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyTmFt
ZShhcmcuaW5kZXgoKSksICIsICIsIGFyZy5zY2FsZSgpLCAiLCAiLCBhcmcub2Zmc2V0KCksICIp
OyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlJlbENvbmQ6CisgICAgICAgICAg
ICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZVJlZ0NvbmQoIiwgYXJn
LmFzUmVsYXRpb25hbENvbmRpdGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNh
c2UgQXJnOjpSZXNDb25kOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFy
ZyA9IEFyZy5jcmVhdGVSZXNDb25kKCIsIGFyZy5hc1Jlc3VsdENvbmRpdGlvbigpLCAiKTsiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpEb3VibGVDb25kOgorICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVEb3VibGVDb25kKCIsIGFy
Zy5hc0RvdWJsZUNvbmRpdGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
QXJnOjpTcGVjaWFsOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gSlMtQWlyIGRvZXNuJ3Qg
aGF2ZSBTcGVjaWFscy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpXaWR0aEFyZzoK
KyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlV2lk
dGhBcmcoIiwgYXJnLndpZHRoKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmFyZ3MucHVzaChhcmcpOyIpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5zdC5vcGNvZGUg
PT0gUGF0Y2gpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5zdC5oYXNOb25BcmdFZmZlY3RzKCkp
CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LnBhdGNoSGFzTm9uQXJnRWZm
ZWN0cyA9IHRydWU7Iik7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0LnBy
aW50bG4oImluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Iik7CisgICAg
ICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOyIpOworICAgICAgICAgICAgICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoKS5m
b3JFYWNoKAorICAgICAgICAgICAgICAgICAgICBbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFk
ZCgiLCB2YXJOYW1lKHJlZyksICIpOyIpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncygpLmZvckVhY2goCisgICAgICAgICAg
ICAgICAgICAgIFsmXSAoUmVnIHJlZykgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnBy
aW50bG4oImluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZCgiLCB2YXJOYW1lKHJlZyksICIpOyIp
OworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgb3V0LnByaW50bG4odmFyTmFtZShibG9jayksICIuYXBwZW5kKGluc3QpOyIp
OworICAgICAgICB9CisgICAgfQorfQorCit9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWly
CisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckR1bXBBc0pTLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBBaXJEdW1wQXNKU19oCisjZGVmaW5lIEFpckR1bXBBc0pTX2gKKworI2lmIEVOQUJMRShCM19K
SVQpCisKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgeworCitjbGFzcyBDb2RlOworCisvLyBUaGlzIGlz
IGEgam9rZS4gVmFyaW91cyBvcGVyYXRpb25zIG9uIEFpciBhcmUgaW50ZXJlc3RpbmcgZnJvbSBh
IGJlbmNobWFya2luZyBzdGFuZHBvaW50LiBXZSBjYW4KKy8vIHdyaXRlIHNvbWUgQWlyIHBoYXNl
cyBpbiBKUyBhbmQgdGhlbiB1c2UgdGhhdCB0byBiZW5jaG1hcmsgSlMuCit2b2lkIGR1bXBBc0pT
KENvZGUmLCBQcmludFN0cmVhbSYpOworCit9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWly
CisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQWlyRHVtcEFzSlNfaAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4T2J2
aW91c1NwaWxscy5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJBcmdJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiQWlyUGhhc2VTY29wZS5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2
ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJBbGxvY2F0ZVN0YWNrLmgiCiAjaW5jbHVkZSAiQWly
Q29kZS5oIgorI2luY2x1ZGUgIkFpckR1bXBBc0pTLmgiCiAjaW5jbHVkZSAiQWlyRWxpbWluYXRl
RGVhZENvZGUuaCIKICNpbmNsdWRlICJBaXJGaXhPYnZpb3VzU3BpbGxzLmgiCiAjaW5jbHVkZSAi
QWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmgiCkBAIC0xMDIsNiArMTAzLDExIEBAIHZvaWQg
cHJlcGFyZUZvckdlbmVyYXRpb24oQ29kZSYgY29kZSkKICAgICAvLyBQcmlvciB0byB0aGlzIHBv
aW50IHRoZSBwcm9sb2d1ZSBhbmQgZXBpbG9ndWUgaXMgaW1wbGljaXQuIFRoaXMgbWFrZXMgaXQg
ZXhwbGljaXQuIEl0IGFsc28KICAgICAvLyBkb2VzIHRoaW5ncyBsaWtlIGlkZW50aWZ5IHdoaWNo
IGNhbGxlZS1zYXZlcyB3ZSdyZSB1c2luZyBhbmQgc2F2ZXMgdGhlbS4KICAgICBoYW5kbGVDYWxs
ZWVTYXZlcyhjb2RlKTsKKyAgICAKKyAgICBpZiAoT3B0aW9uczo6ZHVtcEFpckFzSlNCZWZvcmVB
bGxvY2F0ZVN0YWNrKCkpIHsKKyAgICAgICAgZGF0YUxvZygiRHVtcGluZyBBaXIgYXMgSlMgYmVm
b3JlIGFsbG9jYXRlU3RhY2s6XG4iKTsKKyAgICAgICAgZHVtcEFzSlMoY29kZSwgV1RGOjpkYXRh
RmlsZSgpKTsKKyAgICB9CiAKICAgICAvLyBUaGlzIHR1cm5zIGFsbCBTdGFjayBhbmQgQ2FsbEFy
ZyBBcmdzIGludG8gQWRkciBhcmdzIHRoYXQgdXNlIHRoZSBmcmFtZSBwb2ludGVyLiBJdCBkb2Vz
CiAgICAgLy8gdGhpcyBieSBmaXJzdC1maXQgYWxsb2NhdGluZyBzdGFjayBzbG90cy4gSXQgc2hv
dWxkIGJlIHByZXR0eSBkYXJuIGNsb3NlIHRvIG9wdGltYWwsIHNvIHdlCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5saW5lcy5oCShyZXZpc2lvbiAyMDE3
MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDY1ICszNiwxMyBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBG
b3JFYWNoOwotdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxUbXA+IHsKLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jdG9yPgotICAgIHN0YXRpYyB2b2lkIGZvckVhY2goSW5zdCYgaW5zdCwgY29u
c3QgRnVuY3RvciYgZnVuY3RvcikKLSAgICB7Ci0gICAgICAgIGluc3QuZm9yRWFjaFRtcChmdW5j
dG9yKTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNoPEFyZz4gewotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQgZm9yRWFjaChJbnN0
JiBpbnN0LCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAgICAgaW5zdC5mb3JF
YWNoQXJnKGZ1bmN0b3IpOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8
U3RhY2tTbG90Kj4gewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGlj
IHZvaWQgZm9yRWFjaChJbnN0JiBpbnN0LCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsK
LSAgICAgICAgaW5zdC5mb3JFYWNoQXJnKAotICAgICAgICAgICAgWyZdIChBcmcmIGFyZywgQXJn
OjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0eXBlLCBBcmc6OldpZHRoIHdpZHRoKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKCFhcmcuaXNTdGFjaygpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICAgICAgU3RhY2tTbG90KiBzdGFja1Nsb3QgPSBhcmcuc3RhY2tTbG90KCk7
Ci0KLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3YXkgdG9vIG9wdGltaXN0aWMg
YWJvdXQgdGhlIG1lYW5pbmcgb2YgIkRlZiIuIEl0IGdldHMgbHVja3kgZm9yCi0gICAgICAgICAg
ICAgICAgLy8gbm93IGJlY2F1c2Ugb3VyIG9ubHkgdXNlIG9mICJBbm9ueW1vdXMiIHN0YWNrIHNs
b3RzIGhhcHBlbnMgdG8gd2FudCB0aGUgb3B0aW1pc3RpYwotICAgICAgICAgICAgICAgIC8vIHNl
bWFudGljcy4gV2UgY291bGQgZml4IHRoaXMgYnkganVzdCBjaGFuZ2luZyB0aGUgY29tbWVudHMg
dGhhdCBkZXNjcmliZSB0aGUKLSAgICAgICAgICAgICAgICAvLyBzZW1hbnRpY3Mgb2YgIkFub255
bW91cyIuCi0gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MTEyOAotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGZ1bmN0
b3Ioc3RhY2tTbG90LCByb2xlLCB0eXBlLCB3aWR0aCk7Ci0gICAgICAgICAgICAgICAgYXJnID0g
QXJnOjpzdGFjayhzdGFja1Nsb3QsIGFyZy5vZmZzZXQoKSk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNoPFJlZz4gewotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQgZm9yRWFjaChJbnN0JiBpbnN0LCBj
b25zdCBGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAgICAgaW5zdC5mb3JFYWNoVG1wKAot
ICAgICAgICAgICAgWyZdIChUbXAmIHRtcCwgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0eXBl
LCBBcmc6OldpZHRoIHdpZHRoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0bXAuaXNSZWcoKSkK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICAgICAgUmVnIHJlZyA9
IHRtcC5yZWcoKTsKLSAgICAgICAgICAgICAgICBmdW5jdG9yKHJlZywgcm9sZSwgdHlwZSwgd2lk
dGgpOwotICAgICAgICAgICAgICAgIHRtcCA9IFRtcChyZWcpOwotICAgICAgICAgICAgfSk7Ci0g
ICAgfQotfTsKLQogdGVtcGxhdGU8dHlwZW5hbWUgVGhpbmcsIHR5cGVuYW1lIEZ1bmN0b3I+CiB2
b2lkIEluc3Q6OmZvckVhY2goY29uc3QgRnVuY3RvciYgZnVuY3RvcikKIHsKLSAgICBGb3JFYWNo
PFRoaW5nPjo6Zm9yRWFjaCgqdGhpcywgZnVuY3Rvcik7CisgICAgZm9yRWFjaEFyZygKKyAgICAg
ICAgWyZdIChBcmcmIGFyZywgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0eXBlLCBBcmc6Oldp
ZHRoIHdpZHRoKSB7CisgICAgICAgICAgICBhcmcuZm9yRWFjaDxUaGluZz4ocm9sZSwgdHlwZSwg
d2lkdGgsIGZ1bmN0b3IpOworICAgICAgICB9KTsKIH0KIAogaW5saW5lIGNvbnN0IFJlZ2lzdGVy
U2V0JiBJbnN0OjpleHRyYUNsb2JiZXJlZFJlZ3MoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJMb2dSZWdpc3RlclByZXNzdXJlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckxvZ1JlZ2lzdGVyUHJlc3N1cmUuY3BwCShyZXZp
c2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckxvZ1JlZ2lz
dGVyUHJlc3N1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFp
ckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckxpdmVu
ZXNzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclJlcG9ydFVzZWRS
ZWdpc3RlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRl
ICJBaXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpcklu
c3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyTGl2ZW5lc3MuaCIKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyU3BpbGxFdmVyeXRoaW5nLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwaWxsRXZlcnl0aGluZy5jcHAJKHJldmlz
aW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BpbGxFdmVy
eXRoaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxF
KEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIKICNpbmNsdWRlICJBaXJDb2Rl
LmgiCiAjaW5jbHVkZSAiQWlySW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGlu
ZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRv
ci5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9n
ZW5lcmF0b3IucmIJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkod29ya2luZyBjb3B5KQpAQCAtMTA5MCwzICsxMDkw
LDk2IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgIG91dHAucHV0cyAifSB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpciIKIH0KIAorIyBUaGlzIGlzIGEgaGFjayBmb3IgSlNB
aXIuIEl0J3MgYSBqb2tlLgorRmlsZS5vcGVuKCJKU0Fpcl9vcGNvZGUuanMiLCAidyIpIHsKKyAg
ICB8IG91dHAgfAorICAgIG91dHAucHV0cyAiXCJ1c2Ugc3RyaWN0XCI7IgorICAgIG91dHAucHV0
cyAiLy8gR2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIgZnJvbSAjeyRmaWxlTmFtZX0g
LS0gZG8gbm90IGVkaXQhIgorICAgIAorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAg
ICAgfCBvcGNvZGUgfAorICAgICAgICBvdXRwLnB1dHMgImNvbnN0ICN7b3Bjb2RlLm5hbWV9ID0g
U3ltYm9sKCN7b3Bjb2RlLm5hbWUuaW5zcGVjdH0pOyIKKyAgICB9CisgICAgCisgICAgb3V0cC5w
dXRzICJmdW5jdGlvbiBJbnN0X2ZvckVhY2hBcmcoaW5zdCwgZnVuYykiCisgICAgb3V0cC5wdXRz
ICJ7IgorICAgIG91dHAucHV0cyAibGV0IHJlcGxhY2VtZW50OyIKKyAgICBvdXRwLnB1dHMgInN3
aXRjaCAoaW5zdC5vcGNvZGUpIHsiCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAg
ICB8IG9wY29kZSB8CisgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisg
ICAgICAgIGlmIG9wY29kZS5jdXN0b20KKyAgICAgICAgICAgIG91dHAucHV0cyAiI3tvcGNvZGUu
bmFtZX1DdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsiCisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG5lZWRPdmVybG9hZFN3aXRjaCA9IG9wY29kZS5vdmVybG9hZHMuc2l6ZSAhPSAxCisg
ICAgICAgICAgICBvdXRwLnB1dHMgInN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeyIgaWYgbmVl
ZE92ZXJsb2FkU3dpdGNoCisgICAgICAgICAgICBvcGNvZGUub3ZlcmxvYWRzLmVhY2ggeworICAg
ICAgICAgICAgICAgIHwgb3ZlcmxvYWQgfAorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiY2Fz
ZSAje292ZXJsb2FkLnNpZ25hdHVyZS5sZW5ndGh9OiIgaWYgbmVlZE92ZXJsb2FkU3dpdGNoCisg
ICAgICAgICAgICAgICAgb3ZlcmxvYWQuc2lnbmF0dXJlLmVhY2hfd2l0aF9pbmRleCB7CisgICAg
ICAgICAgICAgICAgICAgIHwgYXJnLCBpbmRleCB8CisgICAgICAgICAgICAgICAgICAgIHJvbGUg
PSBuaWwKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBhcmcucm9sZQorICAgICAgICAgICAgICAg
ICAgICB3aGVuICJVIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJVc2UiCisgICAg
ICAgICAgICAgICAgICAgIHdoZW4gIkQiCisgICAgICAgICAgICAgICAgICAgICAgICByb2xlID0g
IkRlZiIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiWkQiCisgICAgICAgICAgICAgICAgICAg
ICAgICByb2xlID0gIlpEZWYiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlVEIgorICAgICAg
ICAgICAgICAgICAgICAgICAgcm9sZSA9ICJVc2VEZWYiCisgICAgICAgICAgICAgICAgICAgIHdo
ZW4gIlVaRCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNlWkRlZiIKKyAgICAg
ICAgICAgICAgICAgICAgd2hlbiAiVUEiCisgICAgICAgICAgICAgICAgICAgICAgICByb2xlID0g
IlVzZUFkZHIiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlMiCisgICAgICAgICAgICAgICAg
ICAgICAgICByb2xlID0gIlNjcmF0Y2giCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sje2luZGV4fV0sIEFyZy4je3JvbGV9LCAje2FyZy50eXBl
fVAsICN7YXJnLndpZHRofSkpIgorICAgICAgICAgICAgICAgICAgICBvdXRwLnB1dHMgImluc3Qu
YXJnc1sje2luZGV4fV0gPSByZXBsYWNlbWVudDsiCisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgbmVlZE92ZXJsb2FkU3dpdGNoCisgICAgICAgICAgICAg
ICAgb3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgInRocm93
IFwiQmFkIG92ZXJsb2FkXCI7IgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiYnJlYWs7Igor
ICAgICAgICAgICAgICAgIG91dHAucHV0cyAifSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBl
bmQKKyAgICAgICAgb3V0cC5wdXRzICJicmVhazsiCisgICAgfQorICAgIG91dHAucHV0cyAiZGVm
YXVsdDoiCisgICAgb3V0cC5wdXRzICJ0aHJvdyBcIkJhZCBvcGNvZGVcIjsiCisgICAgb3V0cC5w
dXRzICJ9IgorICAgIG91dHAucHV0cyAifSIKKyAgICAKKyAgICBvdXRwLnB1dHMgImZ1bmN0aW9u
IEluc3RfaGFzTm9uQXJnRWZmZWN0cyhpbnN0KSIKKyAgICBvdXRwLnB1dHMgInsiCisgICAgb3V0
cC5wdXRzICJzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7IgorICAgIGZvdW5kVHJ1ZSA9IGZhbHNlCisg
ICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIGlm
IG9wY29kZS5hdHRyaWJ1dGVzWzp0ZXJtaW5hbF0gb3Igb3Bjb2RlLmF0dHJpYnV0ZXNbOmVmZmVj
dHNdCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAg
ICAgICAgZm91bmRUcnVlID0gdHJ1ZQorICAgICAgICBlbmQKKyAgICB9CisgICAgaWYgZm91bmRU
cnVlCisgICAgICAgIG91dHAucHV0cyAicmV0dXJuIHRydWU7IgorICAgIGVuZAorICAgICRvcGNv
ZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUu
Y3VzdG9tCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAg
ICAgICAgICAgb3V0cC5wdXRzICJyZXR1cm4gI3tvcGNvZGUubmFtZX1DdXN0b20uaGFzTm9uQXJn
Tm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7IgorICAgICAgICBlbmQKKyAgICB9CisgICAgb3V0cC5w
dXRzICJkZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInJldHVybiBmYWxzZTsiCisgICAgb3V0cC5w
dXRzICJ9IgorICAgIG91dHAucHV0cyAifSIKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZWcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVnLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZWcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMywxNSBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAorY29uc3QgY2hhciogUmVnOjpkZWJ1Z05hbWUoKSBjb25zdAoreworICAgIGlmICghKnRoaXMp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChpc0dQUigpKQorICAgICAgICByZXR1
cm4gR1BSSW5mbzo6ZGVidWdOYW1lKGdwcigpKTsKKyAgICByZXR1cm4gRlBSSW5mbzo6ZGVidWdO
YW1lKGZwcigpKTsKK30KKwogdm9pZCBSZWc6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
IHsKICAgICBpZiAoISp0aGlzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCShyZXZpc2lv
biAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzIsNiArMTcyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9pbmRleDsK
ICAgICB9CiAgICAgCisgICAgY29uc3QgY2hhciogZGVidWdOYW1lKCkgY29uc3Q7CisgICAgCiAg
ICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKICAgICBjbGFzcyBBbGxSZWdzSXRl
cmFibGUgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2
aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjgsNiArMzY4LDggQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBv
cHRpb25TdHJpbmc7CiAgICAgdihib29sLCBkdW1wTW9kdWxlTG9hZGluZ1N0YXRlLCBmYWxzZSwg
Tm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCBleHBvc2VJbnRlcm5hbE1vZHVsZUxvYWRl
ciwgZmFsc2UsIE5vcm1hbCwgImV4cG9zZSB0aGUgaW50ZXJuYWwgbW9kdWxlIGxvYWRlciBvYmpl
Y3QgdG8gdGhlIGdsb2JhbCBzcGFjZSBmb3IgZGVidWdnaW5nIikgXAogICAgIFwKKyAgICB2KGJv
b2wsIGR1bXBBaXJBc0pTQmVmb3JlQWxsb2NhdGVTdGFjaywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikgXAorICAgIFwKICAgICB2KGJvb2wsIHVzZVN1cGVyU2FtcGxlciwgZmFsc2UsIE5vcm1hbCwg
bnVsbHB0cikKIAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7CkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9QcmludFN0cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFt
LmgJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgJKHdv
cmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcHJpbnRJbnRl
cm5hbCgqdGhpcywgdmFsdWUpOwogICAgICAgICBwcmludChyZW1haW5pbmdWYWx1ZXMuLi4pOwog
ICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KKyAgICB2b2lkIHBy
aW50bG4oY29uc3QgVHlwZXMmLi4uIHZhbHVlcykKKyAgICB7CisgICAgICAgIHByaW50KHZhbHVl
cy4uLik7CisgICAgICAgIHByaW50KCJcbiIpOworICAgIH0KIH07CiAKIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBjaGFyKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280664</attachid>
            <date>2016-06-06 20:00:28 -0700</date>
            <delta_ts>2016-06-06 20:37:01 -0700</delta_ts>
            <desc>getting there</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>161429</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYWxsLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvYWxsLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9hbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorInVzZSBzdHJp
Y3QiOworCitsb2FkKCJzeW1ib2xzLmpzIik7Citsb2FkKCJ0bXBfYmFzZS5qcyIpOworbG9hZCgi
YXJnLmpzIik7Citsb2FkKCJiYXNpY19ibG9jay5qcyIpOworbG9hZCgiY29kZS5qcyIpOworbG9h
ZCgiZnJlcXVlbnRlZF9ibG9jay5qcyIpOworbG9hZCgiaW5zdC5qcyIpOworbG9hZCgib3Bjb2Rl
LmpzIik7Citsb2FkKCJyZWcuanMiKTsKK2xvYWQoInN0YWNrX3Nsb3QuanMiKTsKK2xvYWQoInRt
cC5qcyIpOworbG9hZCgidXRpbC5qcyIpOworCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWly
L2FyZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FyZy5qcwkocmV2
aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsODc1IEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIEFyZyB7CisgICAgY29uc3RydWN0b3IoKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fa2luZCA9IEFyZy5JbnZhbGlkOworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgaXNBbnlVc2Uocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgewor
ICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAg
IGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2Fz
ZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNh
c2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBB
cmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRy
OgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNDb2xkVXNlKHJvbGUpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToK
KyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAg
IGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNh
c2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNl
QWRkcjoKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlE
ZWY6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgc3RhdGljIGlzV2FybVVzZShyb2xlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFyZy5p
c0FueVVzZShyb2xlKSAmJiAhQXJnLmlzQ29sZFVzZShyb2xlKTsKKyAgICB9CisKKyAgICBzdGF0
aWMgaXNFYXJseVVzZShyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAg
ICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2Fz
ZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoK
KyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAg
ICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6Cisg
ICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOwor
ICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0xhdGVVc2Uocm9sZSkKKyAgICB7
CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAg
ICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAg
ICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBB
cmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVm
OgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgaXNBbnlEZWYocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgewor
ICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAg
IGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNh
c2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBj
YXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcu
WkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlE
ZWY6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNFYXJseURlZihyb2xlKQor
ICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAg
ICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAg
ICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNl
IEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVz
ZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBBcmcuU2Ny
YXRjaDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQorICAg
IAorICAgIHN0YXRpYyBpc0xhdGVEZWYocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9s
ZSkgeworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6Cisg
ICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAg
ICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAg
ICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2Ug
QXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNaRGVmKHJvbGUp
CisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgor
ICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAg
ICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNh
c2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgIGNhc2Ug
QXJnLlNjcmF0Y2g6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5V
c2VaRGVmOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgCisgICAgc3RhdGljIGNvbnNlcnZhdGl2ZVdpZHRoKHR5cGUpCisgICAgeworICAgICAgICBy
ZXR1cm4gdHlwZSA9PSBHUCA/IFB0ciA6IDY0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgbWlu
aW11bVdpZHRoKHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBHUCA/IDggOiAz
MjsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGJ5dGVzKHdpZHRoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHdpZHRoIC8gODsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHdpZHRoRm9yQnl0ZXMo
Ynl0ZXMpCisgICAgeworICAgICAgICBzd2l0Y2ggKGJ5dGVzKSB7CisgICAgICAgIGNhc2UgMDoK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIDg7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIHJldHVybiAxNjsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICBjYXNlIDQ6
CisgICAgICAgICAgICByZXR1cm4gMzI7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBp
ZiAoYnl0ZXMgPiA4KQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG51bWJl
ciBvZiBieXRlcyIpOworICAgICAgICAgICAgcmV0dXJuIDY0OworICAgICAgICB9CisgICAgfQor
ICAgIAorICAgIHN0YXRpYyBjcmVhdGVUbXAodG1wKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlRtcDsKKyAgICAgICAg
cmVzdWx0Ll90bXAgPSB0bXA7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAor
ICAgIHN0YXRpYyBmcm9tUmVnKHJlZykKKyAgICB7CisgICAgICAgIHJldHVybiBBcmcuY3JlYXRl
VG1wKHJlZyk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVJbW0odmFsdWUpCisgICAg
eworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQg
PSBBcmcuSW1tOworICAgICAgICByZXN1bHQuX3ZhbHVlID0gdmFsdWU7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVCaWdJbW0odmFsdWUpCisg
ICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tp
bmQgPSBBcmcuQmlnSW1tOworICAgICAgICByZXN1bHQuX3ZhbHVlID0gdmFsdWU7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVCaXRJbW0odmFs
dWUpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1
bHQuX2tpbmQgPSBBcmcuQml0SW1tOworICAgICAgICByZXN1bHQuX3ZhbHVlID0gdmFsdWU7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVCaXRJ
bW02NCh2YWx1ZSkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAg
ICAgIHJlc3VsdC5fa2luZCA9IEFyZy5CaXRJbW02NDsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9
IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
Y3JlYXRlQWRkcihiYXNlLCBvZmZzZXQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0ID09IG51
bGwpCisgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFy
ZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuQWRkcjsKKyAgICAgICAgcmVzdWx0Ll9i
YXNlID0gYmFzZTsKKyAgICAgICAgcmVzdWx0Ll9vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVTdGFjayhzbG90LCBv
ZmZzZXQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpCisgICAgICAgICAgICBv
ZmZzZXQgPSAwOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1
bHQuX2tpbmQgPSBBcmcuU3RhY2s7CisgICAgICAgIHJlc3VsdC5fc2xvdCA9IHNsb3Q7CisgICAg
ICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAg
IH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQ2FsbEFyZyhvZmZzZXQpCisgICAgeworICAgICAg
ICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuQ2Fs
bEFyZzsKKyAgICAgICAgcmVzdWx0Ll9vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVTdGFja0FkZHIob2Zmc2V0RnJv
bUZQLCBmcmFtZVNpemUsIHdpZHRoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IEFyZy5j
cmVhdGVBZGRyKFJlZy5jYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0RnJvbUZQKTsKKyAgICAgICAg
aWYgKCFyZXN1bHQuaXNWYWxpZEZyb20od2lkdGgpKQorICAgICAgICAgICAgcmVzdWx0ID0gQXJn
LmNyZWF0ZUFkZHIoUmVnLnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBvZmZzZXRGcm9tRlAgKyBmcmFt
ZVNpemUpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
aXNWYWxpZFNjYWxlKHNjYWxlLCB3aWR0aCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoc2NhbGUp
IHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICBjYXNlIDI6CisgICAgICAgIGNhc2UgNDoKKyAg
ICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAg
c3RhdGljIGxvZ1NjYWxlKHNjYWxlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChzY2FsZSkgewor
ICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJldHVy
biAyOworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHNjYWxlIik7CisgICAgICAg
IH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUluZGV4KGJhc2UsIGluZGV4LCBzY2Fs
ZSwgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKHNjYWxlID09IG51bGwpCisgICAgICAgICAg
ICBzY2FsZSA9IDE7CisgICAgICAgIGlmIChvZmZzZXQgPT0gbnVsbCkKKyAgICAgICAgICAgIG9m
ZnNldCA9IDA7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3Vs
dC5fa2luZCA9IEFyZy5JbmRleDsKKyAgICAgICAgcmVzdWx0Ll9iYXNlID0gYmFzZTsKKyAgICAg
ICAgcmVzdWx0Ll9pbmRleCA9IGluZGV4OworICAgICAgICByZXN1bHQuX3NjYWxlID0gc2NhbGU7
CisgICAgICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlUmVsQ29uZChjb25kaXRpb24pCisgICAg
eworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQg
PSBBcmcuUmVsQ29uZDsKKyAgICAgICAgcmVzdWx0Ll9jb25kaXRpb24gPSBjb25kaXRpb247Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVSZXND
b25kKGNvbmRpdGlvbikKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7Cisg
ICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5SZXNDb25kOworICAgICAgICByZXN1bHQuX2NvbmRp
dGlvbiA9IGNvbmRpdGlvbjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisg
ICAgc3RhdGljIGNyZWF0ZURvdWJsZUNvbmQoY29uZGl0aW9uKQorICAgIHsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkRvdWJsZUNv
bmQ7CisgICAgICAgIHJlc3VsdC5fY29uZGl0aW9uID0gY29uZGl0aW9uOworICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlV2lkdGgod2lkdGgpCisg
ICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tp
bmQgPSBBcmcuV2lkdGg7CisgICAgICAgIHJlc3VsdC5fd2lkdGggPSB3aWR0aDsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgZ2V0IGtpbmQoKSB7IHJldHVybiB0aGlz
Ll9raW5kOyB9CisgICAgZ2V0IGlzVG1wKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuVG1w
OyB9CisgICAgZ2V0IGlzSW1tKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuSW1tOyB9Cisg
ICAgZ2V0IGlzQmlnSW1tKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuQmlnSW1tOyB9Cisg
ICAgZ2V0IGlzQml0SW1tKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuQml0SW1tOyB9Cisg
ICAgZ2V0IGlzQml0SW1tNjQoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5CaXRJbW02NDsg
fQorICAgIGdldCBpc1NvbWVJbW0oKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5k
KSB7CisgICAgICAgIGNhc2UgQXJnLkltbToKKyAgICAgICAgY2FzZSBBcmcuQmlnSW1tOgorICAg
ICAgICBjYXNlIEFyZy5CaXRJbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbTY0OgorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgZ2V0IGlzQWRkcigpIHsgcmV0dXJuIHRoaXMu
X2tpbmQgPT0gQXJnLkFkZHI7IH0KKyAgICBnZXQgaXNTdGFjaygpIHsgcmV0dXJuIHRoaXMuX2tp
bmQgPT0gQXJnLlN0YWNrOyB9CisgICAgZ2V0IGlzQ2FsbEFyZygpIHsgcmV0dXJuIHRoaXMuX2tp
bmQgPT0gQXJnLkNhbGxBcmc7IH0KKyAgICBnZXQgaXNJbmRleCgpIHsgcmV0dXJuIHRoaXMuX2tp
bmQgPT0gQXJnLkluZGV4OyB9CisgICAgZ2V0IGlzTWVtb3J5KCkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICBjYXNl
IEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgY2FzZSBBcmcu
SW5kZXg6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBnZXQgaXNTdGFja01l
bW9yeSgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2Fz
ZSBBcmcuQWRkcjoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9iYXNlID09IFJlZy5jYWxsRnJh
bWVSZWdpc3RlcgorICAgICAgICAgICAgICAgIHx8IHRoaXMuX2Jhc2UgPT0gUmVnLnN0YWNrUG9p
bnRlclJlZ2lzdGVyOworICAgICAgICBjYXNlIEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcu
Q2FsbEFyZzoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIGdldCBpc1JlbENv
bmQoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5SZWxDb25kOyB9CisgICAgZ2V0IGlzUmVz
Q29uZCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlJlc0NvbmQ7IH0KKyAgICBnZXQgaXNE
b3VibGVDb25kKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuRG91YmxlQ29uZDsgfQorICAg
IGdldCBpc0NvbmRpdGlvbigpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsK
KyAgICAgICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoKKyAg
ICAgICAgY2FzZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
fQorICAgIGdldCBpc1dpZHRoKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuV2lkdGg7IH0K
KyAgICBnZXQgaXNBbGl2ZSgpIHsgcmV0dXJuIHRoaXMuaXNUbXAgfHwgdGhpcy5pc1N0YWNrOyB9
CisgICAgCisgICAgZ2V0IHRtcCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBB
cmcuVG1wKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnRtcCBmb3Igbm9u
LXRtcCIpOworICAgICAgICByZXR1cm4gdGhpcy5fdG1wOworICAgIH0KKyAgICAKKyAgICBnZXQg
dmFsdWUoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzU29tZUltbSkKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC52YWx1ZSBmb3Igbm9uLWltbSIpOworICAgICAgICBy
ZXR1cm4gdGhpcy5fdmFsdWU7CisgICAgfQorICAgIAorICAgIGdldCBiYXNlKCkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAg
ICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9iYXNlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLmJhc2Ug
Zm9yIG5vbi1hZGRyZXNzIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0IGhhc09m
ZnNldCgpIHsgcmV0dXJuIHRoaXMuaXNNZW1vcnk7IH0KKyAgICAKKyAgICBnZXQgb2Zmc2V0KCkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5B
ZGRyOgorICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6Cisg
ICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fb2Zmc2V0
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQg
Lm9mZnNldCBmb3Igbm9uLWFkZHJlc3MiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBn
ZXQgc3RhY2tTbG90KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5kICE9IEFyZy5TdGFj
aykKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5zdGFja1Nsb3QgZm9yIG5v
bi1hZGRyZXNzIik7CisgICAgICAgIHJldHVybiB0aGlzLl9zbG90OworICAgIH0KKyAgICAKKyAg
ICBnZXQgaW5kZXgoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLkluZGV4
KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLmluZGV4IGZvciBub24tSW5k
ZXgiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2luZGV4OworICAgIH0KKyAgICAKKyAgICBnZXQg
c2NhbGUoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLkluZGV4KQorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnNjYWxlIGZvciBub24tSW5kZXgiKTsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX3NjYWxlOworICAgIH0KKyAgICAKKyAgICBnZXQgbG9nU2Nh
bGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFyZy5sb2dTY2FsZSh0aGlzLnNjYWxlKTsKKyAg
ICB9CisgICAgCisgICAgZ2V0IHdpZHRoKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5k
ICE9IEFyZy5XaWR0aCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC53aWR0
aCBmb3Igbm9uLVdpZHRoIik7CisgICAgICAgIHJldHVybiB0aGlzLl93aWR0aDsKKyAgICB9Cisg
ICAgCisgICAgZ2V0IGlzR1BUbXAoKSB7IHJldHVybiB0aGlzLmlzVG1wICYmIHRoaXMudG1wLmlz
R1A7IH0KKyAgICBnZXQgaXNGUFRtcCgpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYgdGhpcy50bXAu
aXNGUDsgfQorICAgIAorICAgIGdldCBpc0dQKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhp
cy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpZ0lt
bToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoK
KyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6CisgICAgICAg
IGNhc2UgQXJnLlN0YWNrOgorICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICBjYXNl
IEFyZy5SZWxDb25kOgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFy
Zy5Eb3VibGVDb25kOgorICAgICAgICBjYXNlIEFyZy5XaWR0aDoKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICBjYXNlIEFyZy5UbXA6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5p
c0dQVG1wOworICAgICAgICBjYXNlIEFyZy5JbnZhbGlkOgorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQg
a2luZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGdldCBpc0ZQKCkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbW06CisgICAg
ICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tNjQ6CisgICAgICAg
IGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNh
c2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgIGNhc2UgQXJnLldpZHRoOgorICAgICAgICBjYXNl
IEFyZy5JbnZhbGlkOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFy
Zy5BZGRyOgorICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6
CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgIGNhc2UgQXJnLkJpZ0ltbToKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5UbXA6CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5pc0ZQVG1wOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJCYWQga2luZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGdl
dCBoYXNUeXBlKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAg
ICBjYXNlIEFyZy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAgY2FzZSBB
cmcuQml0SW1tNjQ6CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgfQorICAgIAorICAgIGdldCB0eXBlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLmlzR1AgPyBHUCA6IEZQOworICAgIH0KKyAgICAKKyAgICBpc1R5cGUodHlwZSkKKyAgICB7
CisgICAgICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFyZy5HUDoKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLmlzR1A7CisgICAgICAgIGNhc2UgQXJnLkZQOgorICAgICAgICAgICAg
cmV0dXJuIHRoaXMuaXNGUDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiQmFkIHR5cGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpc0NvbXBh
dGlibGVUeXBlKG90aGVyKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuaGFzVHlwZSkKKyAgICAg
ICAgICAgIHJldHVybiBvdGhlci5pc1R5cGUodGhpcy50eXBlKTsKKyAgICAgICAgaWYgKG90aGVy
Lmhhc1R5cGUpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5pc1R5cGUob3RoZXIudHlwZSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBnZXQgaXNHUFIoKSB7IHJldHVy
biB0aGlzLmlzVG1wICYmIHRoaXMudG1wLmlzR1BSOyB9CisgICAgZ2V0IGdwcigpIHsgcmV0dXJu
IHRoaXMudG1wLmdwcjsgfQorICAgIGdldCBpc0ZQUigpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYg
dGhpcy50bXAuaXNGUFI7IH0KKyAgICBnZXQgZnByKCkgeyByZXR1cm4gdGhpcy50bXAuZnByOyB9
CisgICAgZ2V0IGlzUmVnKCkgeyByZXR1cm4gdGhpcy5pc1RtcCAmJiB0aGlzLnRtcC5pc1JlZzsg
fQorICAgIGdldCByZWcoKSB7IHJldHVybiB0aGlzLnRtcC5yZWc7IH0KKyAgICAKKyAgICBzdGF0
aWMgaXNWYWxpZEltbUZvcm0odmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gaXNSZXByZXNl
bnRhYmxlQXNJbnQzMih2YWx1ZSk7CisgICAgfQorICAgIHN0YXRpYyBpc1ZhbGlkQml0SW1tRm9y
bSh2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBpc1JlcHJlc2VudGFibGVBc0ludDMyKHZh
bHVlKTsKKyAgICB9CisgICAgc3RhdGljIGlzVmFsaWRCaXRJbW02NEZvcm0odmFsdWUpCisgICAg
eworICAgICAgICByZXR1cm4gaXNSZXByZXNlbnRhYmxlQXNJbnQzMih2YWx1ZSk7CisgICAgfQor
ICAgIAorICAgIHN0YXRpYyBpc1ZhbGlkQWRkckZvcm0ob2Zmc2V0LCB3aWR0aCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNWYWxpZEluZGV4
Rm9ybShzY2FsZSwgb2Zmc2V0LCB3aWR0aCkKKyAgICB7CisgICAgICAgIGlmICghaXNWYWxpZFNj
YWxlKHNjYWxlLCB3aWR0aCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBpc1ZhbGlkRm9ybSh3aWR0aCkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbnZhbGlkOgor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFyZy5UbXA6CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAgICAgICAgcmV0
dXJuIEFyZy5pc1ZhbGlkSW1tRm9ybSh0aGlzLnZhbHVlKTsKKyAgICAgICAgY2FzZSBBcmcuQmln
SW1tOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkJpdEltbToK
KyAgICAgICAgICAgIHJldHVybiBBcmcuaXNWYWxpZEJpdEltbUZvcm0odGhpcy52YWx1ZSk7Cisg
ICAgICAgIGNhc2UgQXJnLkJpdEltbTY0OgorICAgICAgICAgICAgcmV0dXJuIEFyZy5pc1ZhbGlk
Qml0SW1tNjRGb3JtKHRoaXMudmFsdWUpOworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAg
ICBjYXNlIEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgICAg
IHJldHVybiBpc1ZhbGlkQWRkckZvcm0odGhpcy5vZmZzZXQsIHdpZHRoKTsKKyAgICAgICAgY2Fz
ZSBBcmcuSW5kZXg6CisgICAgICAgICAgICByZXR1cm4gaXNWYWxpZEluZGV4Rm9ybSh0aGlzLnNj
YWxlLCB0aGlzLm9mZnNldCwgd2lkdGgpOworICAgICAgICBjYXNlIEFyZy5SZWxDb25kOgorICAg
ICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFyZy5Eb3VibGVDb25kOgorICAg
ICAgICBjYXNlIEFyZy5XaWR0aDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQga2luZCIpOworICAgICAg
ICB9CisgICAgfQorICAgIAorICAgIGZvckVhY2hUbXBGYXN0KGZ1bmMpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuVG1wOiB7CisgICAgICAg
ICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KHRoaXMuX3RtcCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFyZy5jcmVhdGVUbXAocmVwbGFj
ZW1lbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBBcmcu
QWRkcjogeworICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyh0aGlzLl9iYXNlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJn
LmNyZWF0ZUFkZHIocmVwbGFjZW1lbnQsIHRoaXMuX29mZnNldCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFyZy5JbmRleDogeworICAgICAgICAgICAgbGV0
IGJhc2VSZXBsYWNlbWVudCA9IGZ1bmModGhpcy5fYmFzZSk7CisgICAgICAgICAgICBsZXQgaW5k
ZXhSZXBsYWNlbWVudCA9IGZ1bmModGhpcy5faW5kZXgpOworICAgICAgICAgICAgaWYgKGJhc2VS
ZXBsYWNlbWVudCB8fCBpbmRleFJlcGxhY2VtZW50KSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IEFyZy5jcmVhdGVJbmRleCgKKyAgICAgICAgICAgICAgICAgICAgYmFzZVJlcGxhY2VtZW50ID8g
YmFzZVJlcGxhY2VtZW50IDogdGhpcy5fYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgaW5kZXhS
ZXBsYWNlbWVudCA/IGluZGV4UmVwbGFjZW1lbnQgOiB0aGlzLl9pbmRleCwKKyAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fc2NhbGUsIHRoaXMuX29mZnNldCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdXNlc1RtcChleHBlY3RlZFRtcCkK
KyAgICB7CisgICAgICAgIGxldCB1c2VzVG1wID0gZmFsc2U7CisgICAgICAgIGZvckVhY2hUbXBG
YXN0KHRtcCA9PiB7CisgICAgICAgICAgICB1c2VzVG1wIHw9IHRtcCA9PSBleHBlY3RlZFRtcDsK
KyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiB1c2VzVG1wOworICAgIH0KKyAgICAKKyAgICBm
b3JFYWNoVG1wKHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKQorICAgIHsKKyAgICAgICAgc3dpdGNo
ICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLlRtcDogeworICAgICAgICAgICAgbGV0
IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl90
bXAsIHJvbGUsIHR5cGUsIHdpZHRoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0
ZVRtcChyZXBsYWNlbWVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBjYXNlIEFyZy5BZGRyOiB7CisgICAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAg
ICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2Jhc2UsIEFyZy5Vc2UsIEdQLCByb2xl
ID09IEFyZy5Vc2VBZGRyID8gd2lkdGggOiBQdHIpKQorICAgICAgICAgICAgICAgIHJldHVybiBB
cmcuY3JlYXRlQWRkcihyZXBsYWNlbWVudCwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJnLkluZGV4OiB7CisgICAgICAgICAgICBs
ZXQgYmFzZVJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9iYXNlLCBBcmcuVXNlLCBHUCwgcm9sZSA9
PSBBcmcuVXNlQWRkciA/IHdpZHRoIDogUHRyKTsKKyAgICAgICAgICAgIGxldCBpbmRleFJlcGxh
Y2VtZW50ID0gZnVuYyh0aGlzLl9pbmRleCwgQXJnLlVzZSwgR1AsIHJvbGUgPT0gQXJnLlVzZUFk
ZHIgPyB3aWR0aCA6IFB0cik7CisgICAgICAgICAgICBpZiAoYmFzZVJlcGxhY2VtZW50IHx8IGlu
ZGV4UmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZUluZGV4
KAorICAgICAgICAgICAgICAgICAgICBiYXNlUmVwbGFjZW1lbnQgPyBiYXNlUmVwbGFjZW1lbnQg
OiB0aGlzLl9iYXNlLAorICAgICAgICAgICAgICAgICAgICBpbmRleFJlcGxhY2VtZW50ID8gaW5k
ZXhSZXBsYWNlbWVudCA6IHRoaXMuX2luZGV4LAorICAgICAgICAgICAgICAgICAgICB0aGlzLl9z
Y2FsZSwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICBpcyh0aGluZykgeyByZXR1cm4gISF0aGluZy5leHRyYWN0KHRo
aXMpOyB9CisgICAgYXModGhpbmcpIHsgcmV0dXJuIHRoaW5nLmV4dHJhY3QodGhpcyk7IH0KKyAg
ICAKKyAgICAvLyBUaGlzIGxldHMgeW91IHNheSB0aGluZ3MgbGlrZToKKyAgICAvLyBhcmcuZm9y
RWFjaChUbXAgfCBSZWcgfCBBcmcgfCBTdGFja1Nsb3QsIC4uLikKKyAgICAvLworICAgIC8vIEl0
J3MgdXNlZCBmb3IgYWJzdHJhY3QgbGl2ZW5lc3MgYW5hbHlzaXMuCisgICAgZm9yRWFjaEZhc3Qo
dGhpbmcsIGZ1bmMpCisgICAgeworICAgICAgICByZXR1cm4gdGhpbmcuZm9yRWFjaEZhc3QodGhp
cywgZnVuYyk7CisgICAgfQorICAgIGZvckVhY2godGhpbmcsIHJvbGUsIHR5cGUsIHdpZHRoLCBm
dW5jKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaW5nLmZvckVhY2godGhpcywgcm9sZSwgdHlw
ZSwgd2lkdGgsIGZ1bmMpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZXh0cmFjdChhcmcpIHsg
cmV0dXJuIGFyZzsgfQorICAgIHN0YXRpYyBmb3JFYWNoRmFzdChhcmcsIGZ1bmMpIHsgcmV0dXJu
IGZ1bmMoYXJnKTsgfQorICAgIHN0YXRpYyBmb3JFYWNoKGFyZywgcm9sZSwgdHlwZSwgd2lkdGgs
IGZ1bmMpIHsgcmV0dXJuIGZ1bmMoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCk7IH0KKworICAgIGdl
dCBjb25kaXRpb24oKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAg
ICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAg
IGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29uZGl0aW9u
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQg
LmNvbmRpdGlvbiBmb3Igbm9uLWNvbmRpdGlvbiIpOworICAgICAgICB9CisgICAgfQorICAgIAor
ICAgIGdldCBpc0ludmVydGlibGUoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5k
KSB7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNv
bGQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoK
KyAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fY29uZGl0aW9uKSB7CisgICAgICAgICAgICBjYXNl
IFplcm86CisgICAgICAgICAgICBjYXNlIE5vblplcm86CisgICAgICAgICAgICBjYXNlIFNpZ25l
ZDoKKyAgICAgICAgICAgIGNhc2UgUG9zaXRpdmVPclplcm86CisgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW52YWxpZDoK
KyAgICAgICAgICAgIHJldHVybiAiPGludmFsaWQ+IjsKKyAgICAgICAgY2FzZSBBcmcuVG1wOgor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RtcC50b1N0cmluZygpOworICAgICAgICBjYXNlIEFy
Zy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAgICAgIHJldHVybiAiJCIg
KyB0aGlzLl92YWx1ZTsKKyAgICAgICAgY2FzZSBBcmcuQmlnSW1tOgorICAgICAgICBjYXNlIEFy
Zy5CaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiAiJDB4IiArIHRoaXMuX3ZhbHVlLnRvU3Ry
aW5nKDE2KTsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgICAgIHJldHVybiAiIiAr
ICh0aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikgKyAiKCIgKyB0aGlzLl9iYXNlICsg
IikiOworICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiAiIiArICh0
aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikgKyAiKCIgKyB0aGlzLl9iYXNlICsKKyAg
ICAgICAgICAgICAgICAiLCIgKyB0aGlzLl9pbmRleCArICh0aGlzLl9zY2FsZSA9PSAxID8gIiIg
OiAiLCIgKyB0aGlzLl9zY2FsZSkgKyAiKSI7CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAg
ICAgICAgICAgcmV0dXJuICIiICsgKHRoaXMuX29mZnNldCA/IHRoaXMuX29mZnNldCA6ICIiKSAr
ICIoIiArIHRoaXMuX3Nsb3QgKyAiKSI7CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAg
ICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhpcy5fb2Zmc2V0IDogIiIpICsg
IihjYWxsQXJnKSI7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJn
LlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgIGNhc2UgQXJn
LldpZHRoOgorICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE5hbWUodGhpcy5fY29uZGl0aW9uKTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGtpbmQi
KTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQXJnIGtpbmRzCitBcmcuSW52YWxpZCA9IFN5
bWJvbCgiSW52YWxpZCIpOworQXJnLlRtcCA9IFN5bWJvbCgiVG1wIik7CitBcmcuSW1tID0gU3lt
Ym9sKCJJbW0iKTsKK0FyZy5CaWdJbW0gPSBTeW1ib2woIkJpZ0ltbSIpOworQXJnLkJpdEltbSA9
IFN5bWJvbCgiQml0SW1tIik7CitBcmcuQml0SW1tNjQgPSBTeW1ib2woIkJpdEltbTY0Iik7CitB
cmcuQWRkciA9IFN5bWJvbCgiQWRkciIpOworQXJnLlN0YWNrID0gU3ltYm9sKCJTdGFjayIpOwor
QXJnLkNhbGxBcmcgPSBTeW1ib2woIkNhbGxBcmciKTsKK0FyZy5JbmRleCA9IFN5bWJvbCgiSW5k
ZXgiKTsKK0FyZy5SZWxDb25kID0gU3ltYm9sKCJSZWxDb25kIik7CitBcmcuUmVzQ29uZCA9IFN5
bWJvbCgiUmVzQ29uZCIpOworQXJnLkRvdWJsZUNvbmQgPSBTeW1ib2woIkRvdWJsZUNvbmQiKTsK
K0FyZy5XaWR0aCA9IFN5bWJvbCgiV2lkdGgiKTsKKworLy8gQXJnIHJvbGVzCitBcmcuVXNlID0g
U3ltYm9sKCJVc2UiKTsKK0FyZy5Db2xkVXNlID0gU3ltYm9sKCJDb2xkVXNlIik7CitBcmcuTGF0
ZVVzZSA9IFN5bWJvbCgiTGF0ZVVzZSIpOworQXJnLkxhdGVDb2xkVXNlID0gU3ltYm9sKCJMYXRl
Q29sZFVzZSIpOworQXJnLkRlZiA9IFN5bWJvbCgiRGVmIik7CitBcmcuWkRlZiA9IFN5bWJvbCgi
WkRlZiIpOworQXJnLlVzZURlZiA9IFN5bWJvbCgiVXNlRGVmIik7CitBcmcuVXNlWkRlZiA9IFN5
bWJvbCgiVXNlWkRlZiIpOworQXJnLkVhcmx5RGVmID0gU3ltYm9sKCJFYXJseURlZiIpOworQXJn
LlNjcmF0Y2ggPSBTeW1ib2woIlNjcmF0Y2giKTsKK0FyZy5Vc2VBZGRyID0gU3ltYm9sKCJVc2VB
ZGRyIik7CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYmFzaWNfYmxvY2suanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9iYXNpY19ibG9jay5qcwkocmV2aXNp
b24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYmFzaWNfYmxvY2suanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMzMgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgQmFzaWNCbG9jayB7CisgICAgY29u
c3RydWN0b3IoaW5kZXgsIGZyZXF1ZW5jeSkKKyAgICB7CisgICAgICAgIHRoaXMuX2luZGV4ID0g
aW5kZXg7CisgICAgICAgIHRoaXMuX2ZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTsKKyAgICAgICAgdGhp
cy5faW5zdHMgPSBbXTsKKyAgICAgICAgdGhpcy5fc3VjY2Vzc29ycyA9IFtdOworICAgICAgICB0
aGlzLl9wcmVkZWNlc3NvcnMgPSBbXTsKKyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4KCkgeyBy
ZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2luc3Rz
Lmxlbmd0aDsgfQorICAgIAorICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl9pbnN0c1tTeW1ib2wuaXRlcmF0b3JdKCk7CisgICAgfQorICAgIAorICAg
IGF0KGluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuX2luc3RzLmxlbmd0
aCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3V0IG9mIGJvdW5kcyBhY2Nlc3MiKTsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RzW2luZGV4XTsKKyAgICB9CisgICAgCisgICAgZ2V0
KGluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuX2luc3RzLmxlbmd0aCkK
KyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICByZXR1cm4gdGhpcy5faW5zdHNbaW5k
ZXhdOworICAgIH0KKyAgICAKKyAgICBnZXQgbGFzdCgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5faW5zdHNbdGhpcy5faW5zdHMubGVuZ3RoIC0gMV07CisgICAgfQorICAgIAorICAgIGdl
dCBpbnN0cygpIHsgcmV0dXJuIHRoaXMuX2luc3RzOyB9CisgICAgCisgICAgYXBwZW5kKGluc3Qp
IHsgdGhpcy5faW5zdHMucHVzaChpbnN0KTsgfQorICAgIAorICAgIGdldCBudW1TdWNjZXNzb3Jz
KCkgeyByZXR1cm4gdGhpcy5fc3VjY2Vzc29ycy5sZW5ndGg7IH0KKyAgICBzdWNjZXNzb3IoaW5k
ZXgpIHsgcmV0dXJuIHRoaXMuX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgZ2V0IHN1Y2Nlc3Nv
cnMoKSB7IHJldHVybiB0aGlzLl9zdWNjZXNzb3JzOyB9CisgICAgCisgICAgc3VjY2Vzc29yQmxv
Y2soaW5kZXgpIHsgcmV0dXJuIHRoaXMuX3N1Y2Nlc3NvcnNbaW5kZXhdLmJsb2NrOyB9CisgICAg
Z2V0IHN1Y2Nlc3NvckJsb2NrcygpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFByb3h5KHRo
aXMuX3N1Y2Nlc3NvcnMsIHsKKyAgICAgICAgICAgIGdldDogZnVuY3Rpb24odGFyZ2V0LCBwcm9w
ZXJ0eSkgeworICAgICAgICAgICAgICAgIGlmICgocHJvcGVydHkgfCAwKSA9PSBwcm9wZXJ0eSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV0uYmxvY2s7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV07CisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgCisgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgcHJvcGVydHksIHZh
bHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKChwcm9wZXJ0eSB8IDApID09IHByb3BlcnR5KSB7
CisgICAgICAgICAgICAgICAgICAgIHZhciBvbGRWYWx1ZSA9IHRhcmdldFtwcm9wZXJ0eV07Cisg
ICAgICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wZXJ0eV0gPSBuZXcgRnJlcXVlbnRlZEJsb2Nr
KAorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsIG9sZFZhbHVlID8gb2xkVmFsdWUuZnJl
cXVlbmN5IDogTm9ybWFsKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0YXJnZXRbcHJvcGVy
dHldID0gdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAg
ICBnZXQgbnVtUHJlZGVjZXNzb3JzKCkgeyByZXR1cm4gdGhpcy5fcHJlZGVjZXNzb3JzLmxlbmd0
aDsgfQorICAgIHByZWRlY2Vzc29yKGluZGV4KSB7IHJldHVybiB0aGlzLl9wcmVkZWNlc3NvcnNb
aW5kZXhdOyB9CisgICAgZ2V0IHByZWRlY2Vzc29ycygpIHsgcmV0dXJuIHRoaXMuX3ByZWRlY2Vz
c29yczsgfQorICAgIAorICAgIGdldCBmcmVxdWVuY3koKSB7IHJldHVybiB0aGlzLl9mcmVxdWVu
Y3k7IH0KKworICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiIyIgKyB0aGlz
Ll9pbmRleDsKKyAgICB9CisgICAgCisgICAgZ2V0IGhlYWRlclN0cmluZygpCisgICAgeworICAg
ICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIHJlc3VsdCArPSAiQkIiICsgdGhpcyArICI6
IDsgZnJlcXVlbmN5ID0gIiArIHRoaXMuX2ZyZXF1ZW5jeSArICJcbiI7CisgICAgICAgIGlmICh0
aGlzLl9wcmVkZWNlc3NvcnMubGVuZ3RoKQorICAgICAgICAgICAgcmVzdWx0ICs9ICIgIFByZWRl
Y2Vzc29yczogIiArIHRoaXMuX3ByZWRlY2Vzc29ycy5qb2luKCIsICIpICsgIlxuIjsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgZ2V0IGZvb3RlclN0cmluZygpCisg
ICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIGlmICh0aGlzLl9zdWNjZXNz
b3JzLmxlbmd0aCkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiICBTdWNjZXNzb3JzOiAiICsgdGhp
cy5fc3VjY2Vzc29ycy5qb2luKCIsICIpICsgIlxuIjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisgICAgCisgICAgdG9TdHJpbmdEZWVwKCkKKyAgICB7CisgICAgICAgIGxldCByZXN1
bHQgPSAiIjsKKyAgICAgICAgcmVzdWx0ICs9IHRoaXMuaGVhZGVyU3RyaW5nOworICAgICAgICBm
b3IgKGxldCBpbnN0IG9mIHRoaXMpCisgICAgICAgICAgICByZXN1bHQgKz0gIiAgICAiICsgaW5z
dCArICJcbiI7CisgICAgICAgIHJlc3VsdCArPSB0aGlzLmZvb3RlclN0cmluZzsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIv
Y29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2NvZGUuanMJKHJl
dmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2NvZGUuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw5OCBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBDb2RlIHsKKyAgICBjb25zdHJ1Y3Rvcigp
CisgICAgeworICAgICAgICB0aGlzLl9ibG9ja3MgPSBbXTsKKyAgICAgICAgdGhpcy5fc3RhY2tT
bG90cyA9IFtdOworICAgICAgICB0aGlzLl9ncFRtcHMgPSBbXTsKKyAgICAgICAgdGhpcy5fZnBU
bXBzID0gW107CisgICAgICAgIHRoaXMuX2NhbGxBcmdBcmVhU2l6ZSA9IDA7CisgICAgICAgIHRo
aXMuX2ZyYW1lU2l6ZSA9IDA7CisgICAgfQorICAgIAorICAgIGFkZEJsb2NrKGZyZXF1ZW5jeSkK
KyAgICB7CisgICAgICAgIGlmIChmcmVxdWVuY3kgPT0gbnVsbCkKKyAgICAgICAgICAgIGZyZXF1
ZW5jeSA9IDE7CisgICAgICAgIGxldCByZXN1bHQgPSBhZGRJbmRleGVkKHRoaXMuX2Jsb2Nrcywg
QmFzaWNCbG9jaywgZnJlcXVlbmN5KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cisg
ICAgCisgICAgYWRkU3RhY2tTbG90KGJ5dGVTaXplLCBraW5kKQorICAgIHsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IGFkZEluZGV4ZWQodGhpcy5fc3RhY2tTbG90cywgU3RhY2tTbG90LCBieXRlU2l6
ZSwga2luZCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIG5ld1Rt
cCh0eXBlKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGFkZEluZGV4ZWQodGhpc1siXyIg
KyBzeW1ib2xOYW1lKHR5cGUpLnRvTG93ZXJDYXNlKCkgKyAiVG1wcyJdLCBUbXAsIHR5cGUpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBnZXQgc2l6ZSgpIHsgcmV0
dXJuIHRoaXMuX2Jsb2Nrcy5sZW5ndGg7IH0KKyAgICAKKyAgICBbU3ltYm9sLml0ZXJhdG9yXSgp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fYmxvY2tzW1N5bWJvbC5pdGVyYXRvcl0oKTsK
KyAgICB9CisgICAgCisgICAgZ2V0IGJsb2NrcygpIHsgcmV0dXJuIHRoaXMuX2Jsb2NrczsgfQor
ICAgIGdldCBzdGFja1Nsb3RzKCkgeyByZXR1cm4gdGhpcy5fc3RhY2tTbG90czsgfQorICAgIAor
ICAgIHRtcHModHlwZSkgeyByZXR1cm4gdGhpc1siXyIgKyBzeW1ib2xOYW1lKHR5cGUpLnRvTG93
ZXJDYXNlKCkgKyAiVG1wcyJdOyB9CisgICAgCisgICAgZ2V0IGNhbGxBcmdBcmVhU2l6ZSgpIHsg
cmV0dXJuIHRoaXMuX2NhbGxBcmdBcmVhU2l6ZTsgfQorICAgIAorICAgIHJlcXVlc3RDYWxsQXJn
QXJlYVNpemUoc2l6ZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2NhbGxBcmdBcmVhU2l6ZSA9IE1h
dGgubWF4KHRoaXMuX2NhbGxBcmdBcmVhU2l6ZSwgcm91bmRVcFRvTXVsdGlwbGVPZihzdGFja0Fs
aWdubWVudEJ5dGVzLCBzaXplKSk7CisgICAgfQorICAgIAorICAgIGdldCBmcmFtZVNpemUoKSB7
IHJldHVybiB0aGlzLl9mcmFtZVNpemU7IH0KKyAgICAKKyAgICBzZXRGcmFtZVNpemUoZnJhbWVT
aXplKSB7IHRoaXMuX2ZyYW1lU2l6ZSA9IGZyYW1lU2l6ZTsgfQorICAgIAorICAgIHRvU3RyaW5n
KCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSAiIjsKKyAgICAgICAgZm9yIChsZXQgYmxv
Y2sgb2YgdGhpcykgeworICAgICAgICAgICAgcmVzdWx0ICs9IGJsb2NrLnRvU3RyaW5nRGVlcCgp
OworICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLnN0YWNrU2xvdHMubGVuZ3RoKSB7CisgICAg
ICAgICAgICByZXN1bHQgKz0gIlN0YWNrIHNsb3RzOlxuIjsKKyAgICAgICAgICAgIGZvciAobGV0
IHNsb3Qgb2YgdGhpcy5zdGFja1Nsb3RzKQorICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiICAg
ICIgKyBzbG90ICsgIlxuIjsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5fZnJhbWVTaXpl
KQorICAgICAgICAgICAgcmVzdWx0ICs9ICJGcmFtZSBzaXplOiAiICsgdGhpcy5fZnJhbWVTaXpl
ICsgIlxuIjsKKyAgICAgICAgaWYgKHRoaXMuX2NhbGxBcmdBcmVhU2l6ZSkKKyAgICAgICAgICAg
IHJlc3VsdCArPSAiQ2FsbCBhcmcgYXJlYSBzaXplOiAiICsgdGhpcy5fY2FsbEFyZ0FyZWFTaXpl
ICsgIlxuIjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CkluZGV4OiBQZXJmb3Jt
YW5jZVRlc3RzL0pTQWlyL2ZyZXF1ZW50ZWRfYmxvY2suanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9y
bWFuY2VUZXN0cy9KU0Fpci9mcmVxdWVudGVkX2Jsb2NrLmpzCShyZXZpc2lvbiAwKQorKysgUGVy
Zm9ybWFuY2VUZXN0cy9KU0Fpci9mcmVxdWVudGVkX2Jsb2NrLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzggQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgRnJlcXVlbnRlZEJsb2NrIHsKKyAgICBjb25zdHJ1
Y3RvcihibG9jaywgZnJlcXVlbmN5KQorICAgIHsKKyAgICAgICAgdGhpcy5ibG9jayA9IGJsb2Nr
OworICAgICAgICB0aGlzLmZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTsKKyAgICB9CisgICAgCisgICAg
dG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICh0aGlzLmZyZXF1ZW5jeSA9PSBOb3Jt
YWwgPyAiIiA6ICJSYXJlOiIpICsgdGhpcy5ibG9jazsKKyAgICB9Cit9CkluZGV4OiBQZXJmb3Jt
YW5jZVRlc3RzL0pTQWlyL2luc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9K
U0Fpci9pbnN0LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9pbnN0
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIwIEBACisidXNlIHN0cmljdCI7CisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIEluc3Qgewor
ICAgIGNvbnN0cnVjdG9yKG9wY29kZSwgYXJncykKKyAgICB7CisgICAgICAgIHRoaXMuX29wY29k
ZSA9IG9wY29kZTsKKyAgICAgICAgdGhpcy5fYXJncyA9IGFyZ3MgPT0gbnVsbCA/IFtdIDogYXJn
czsKKyAgICB9CisgICAgCisgICAgYXBwZW5kKC4uLmFyZ3MpCisgICAgeworICAgICAgICB0aGlz
Ll9hcmdzLnB1c2goLi4uYXJncyk7CisgICAgfQorICAgIAorICAgIGdldCBvcGNvZGUoKSB7IHJl
dHVybiB0aGlzLl9vcGNvZGU7IH0KKyAgICBnZXQgYXJncygpIHsgcmV0dXJuIHRoaXMuX2FyZ3M7
IH0KKyAgICAKKyAgICBmb3JFYWNoVG1wRmFzdChmdW5jKQorICAgIHsKKyAgICAgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCB0aGlzLl9hcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsZXQg
cmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSB0aGlzLl9hcmdzW2ld
LmZvckVhY2hUbXBGYXN0KGZ1bmMpKQorICAgICAgICAgICAgICAgIHRoaXMuX2FyZ3NbaV0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBmb3JFYWNoQXJnKGZ1bmMp
CisgICAgeworICAgICAgICBJbnN0X2ZvckVhY2hBcmcodGhpcywgZnVuYyk7CisgICAgfQorICAg
IAorICAgIGZvckVhY2hUbXAoZnVuYykKKyAgICB7CisgICAgICAgIGZvckVhY2hBcmcoKGFyZywg
cm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBhcmcuZm9yRWFjaFRt
cChyb2xlLCB0eXBlLCB3aWR0aCwgZnVuYyk7CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAg
ICBmb3JFYWNoKHRoaW5nLCBmdW5jKQorICAgIHsKKyAgICAgICAgZm9yRWFjaEFyZygoYXJnLCBy
b2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFyZy5mb3JFYWNoKHRo
aW5nLCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYyk7CisgICAgICAgIH0pOworICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgZm9yRWFjaERlZih0aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5jKQor
ICAgIHsKKyAgICAgICAgaWYgKHByZXZJbnN0KSB7CisgICAgICAgICAgICBwcmV2SW5zdC5mb3JF
YWNoKAorICAgICAgICAgICAgICAgIHRoaW5nLAorICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9s
ZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKEFyZy5pc0xhdGVE
ZWYocm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyh2YWx1ZSwgcm9s
ZSwgdHlwZSwgd2lkdGgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBpZiAobmV4dEluc3QpIHsKKyAgICAgICAgICAgIG5leHRJbnN0LmZvckVhY2go
CisgICAgICAgICAgICAgICAgdGhpbmcsCisgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0
eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAgICAgICBpZiAoQXJnLmlzRWFybHlEZWYo
cm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyh2YWx1ZSwgcm9sZSwg
dHlwZSwgd2lkdGgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorICAg
IAorICAgIHN0YXRpYyBmb3JFYWNoRGVmV2l0aEV4dHJhQ2xvYmJlcmVkUmVncyh0aGluZywgcHJl
dkluc3QsIG5leHRJbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgZm9yRWFjaERlZih0aGluZywg
cHJldkluc3QsIG5leHRJbnN0LCBmdW5jKTsKKyAgICAgICAgCisgICAgICAgIGxldCByZWdEZWZS
b2xlOworICAgICAgICAKKyAgICAgICAgbGV0IHJlcG9ydFJlZyA9IHJlZyA9PiB7CisgICAgICAg
ICAgICBsZXQgdHlwZSA9IHJlZy5pc0dQUiA/IEdQIDogRlA7CisgICAgICAgICAgICBmdW5jKHRo
aW5nLmZyb21SZWcocmVnKSwgcmVnRGVmUm9sZSwgdHlwZSwgQXJnLmNvbnNlcnZhdGl2ZVdpZHRo
KHR5cGUpKTsKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGlmIChwcmV2SW5zdCAmJiBw
cmV2SW5zdC5vcGNvZGUgPT0gUGF0Y2gpIHsKKyAgICAgICAgICAgIHJlZ0RlZlJvbGUgPSBBcmcu
RGVmOworICAgICAgICAgICAgcHJldkluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmZvckVhY2gocmVw
b3J0UmVnKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG5leHRJbnN0ICYmIG5l
eHRJbnN0Lm9wY29kZSA9PSBQYXRjaCkgeworICAgICAgICAgICAgcmVnRGVmUm9sZSA9IEFyZy5F
YXJseURlZjsKKyAgICAgICAgICAgIG5leHRJbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmZv
ckVhY2gocmVwb3J0UmVnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgaGFzTm9u
QXJnRWZmZWN0cygpIHsgcmV0dXJuIEluc3RfaGFzTm9uQXJnRWZmZWN0cyh0aGlzKTsgfQorICAg
IAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiIiArIHN5bWJvbE5hbWUo
dGhpcy5fb3Bjb2RlKSArICIgIiArIHRoaXMuX2FyZ3Muam9pbigiLCAiKTsKKyAgICB9Cit9CisK
SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2RlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBl
cmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2RlLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFu
Y2VUZXN0cy9KU0Fpci9vcGNvZGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNjgzIEBA
CisidXNlIHN0cmljdCI7CisvLyBHZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYiBmcm9t
IEphdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcyAtLSBkbyBub3QgZWRpdCEK
K2NvbnN0IE5vcCA9IFN5bWJvbCgiTm9wIik7Citjb25zdCBBZGQzMiA9IFN5bWJvbCgiQWRkMzIi
KTsKK2NvbnN0IEFkZDggPSBTeW1ib2woIkFkZDgiKTsKK2NvbnN0IEFkZDE2ID0gU3ltYm9sKCJB
ZGQxNiIpOworY29uc3QgQWRkNjQgPSBTeW1ib2woIkFkZDY0Iik7Citjb25zdCBBZGREb3VibGUg
PSBTeW1ib2woIkFkZERvdWJsZSIpOworY29uc3QgQWRkRmxvYXQgPSBTeW1ib2woIkFkZEZsb2F0
Iik7Citjb25zdCBTdWIzMiA9IFN5bWJvbCgiU3ViMzIiKTsKK2NvbnN0IFN1YjY0ID0gU3ltYm9s
KCJTdWI2NCIpOworY29uc3QgU3ViRG91YmxlID0gU3ltYm9sKCJTdWJEb3VibGUiKTsKK2NvbnN0
IFN1YkZsb2F0ID0gU3ltYm9sKCJTdWJGbG9hdCIpOworY29uc3QgTmVnMzIgPSBTeW1ib2woIk5l
ZzMyIik7Citjb25zdCBOZWc2NCA9IFN5bWJvbCgiTmVnNjQiKTsKK2NvbnN0IE5lZ2F0ZURvdWJs
ZSA9IFN5bWJvbCgiTmVnYXRlRG91YmxlIik7Citjb25zdCBNdWwzMiA9IFN5bWJvbCgiTXVsMzIi
KTsKK2NvbnN0IE11bDY0ID0gU3ltYm9sKCJNdWw2NCIpOworY29uc3QgTXVsdGlwbHlBZGQzMiA9
IFN5bWJvbCgiTXVsdGlwbHlBZGQzMiIpOworY29uc3QgTXVsdGlwbHlBZGQ2NCA9IFN5bWJvbCgi
TXVsdGlwbHlBZGQ2NCIpOworY29uc3QgTXVsdGlwbHlTdWIzMiA9IFN5bWJvbCgiTXVsdGlwbHlT
dWIzMiIpOworY29uc3QgTXVsdGlwbHlTdWI2NCA9IFN5bWJvbCgiTXVsdGlwbHlTdWI2NCIpOwor
Y29uc3QgTXVsdGlwbHlOZWczMiA9IFN5bWJvbCgiTXVsdGlwbHlOZWczMiIpOworY29uc3QgTXVs
dGlwbHlOZWc2NCA9IFN5bWJvbCgiTXVsdGlwbHlOZWc2NCIpOworY29uc3QgRGl2MzIgPSBTeW1i
b2woIkRpdjMyIik7Citjb25zdCBEaXY2NCA9IFN5bWJvbCgiRGl2NjQiKTsKK2NvbnN0IE11bERv
dWJsZSA9IFN5bWJvbCgiTXVsRG91YmxlIik7Citjb25zdCBNdWxGbG9hdCA9IFN5bWJvbCgiTXVs
RmxvYXQiKTsKK2NvbnN0IERpdkRvdWJsZSA9IFN5bWJvbCgiRGl2RG91YmxlIik7Citjb25zdCBE
aXZGbG9hdCA9IFN5bWJvbCgiRGl2RmxvYXQiKTsKK2NvbnN0IFg4NkNvbnZlcnRUb0RvdWJsZVdv
cmQzMiA9IFN5bWJvbCgiWDg2Q29udmVydFRvRG91YmxlV29yZDMyIik7Citjb25zdCBYODZDb252
ZXJ0VG9RdWFkV29yZDY0ID0gU3ltYm9sKCJYODZDb252ZXJ0VG9RdWFkV29yZDY0Iik7Citjb25z
dCBYODZEaXYzMiA9IFN5bWJvbCgiWDg2RGl2MzIiKTsKK2NvbnN0IFg4NkRpdjY0ID0gU3ltYm9s
KCJYODZEaXY2NCIpOworY29uc3QgTGVhID0gU3ltYm9sKCJMZWEiKTsKK2NvbnN0IEFuZDMyID0g
U3ltYm9sKCJBbmQzMiIpOworY29uc3QgQW5kNjQgPSBTeW1ib2woIkFuZDY0Iik7Citjb25zdCBB
bmREb3VibGUgPSBTeW1ib2woIkFuZERvdWJsZSIpOworY29uc3QgQW5kRmxvYXQgPSBTeW1ib2wo
IkFuZEZsb2F0Iik7Citjb25zdCBYb3JEb3VibGUgPSBTeW1ib2woIlhvckRvdWJsZSIpOworY29u
c3QgWG9yRmxvYXQgPSBTeW1ib2woIlhvckZsb2F0Iik7Citjb25zdCBMc2hpZnQzMiA9IFN5bWJv
bCgiTHNoaWZ0MzIiKTsKK2NvbnN0IExzaGlmdDY0ID0gU3ltYm9sKCJMc2hpZnQ2NCIpOworY29u
c3QgUnNoaWZ0MzIgPSBTeW1ib2woIlJzaGlmdDMyIik7Citjb25zdCBSc2hpZnQ2NCA9IFN5bWJv
bCgiUnNoaWZ0NjQiKTsKK2NvbnN0IFVyc2hpZnQzMiA9IFN5bWJvbCgiVXJzaGlmdDMyIik7Citj
b25zdCBVcnNoaWZ0NjQgPSBTeW1ib2woIlVyc2hpZnQ2NCIpOworY29uc3QgT3IzMiA9IFN5bWJv
bCgiT3IzMiIpOworY29uc3QgT3I2NCA9IFN5bWJvbCgiT3I2NCIpOworY29uc3QgWG9yMzIgPSBT
eW1ib2woIlhvcjMyIik7Citjb25zdCBYb3I2NCA9IFN5bWJvbCgiWG9yNjQiKTsKK2NvbnN0IE5v
dDMyID0gU3ltYm9sKCJOb3QzMiIpOworY29uc3QgTm90NjQgPSBTeW1ib2woIk5vdDY0Iik7Citj
b25zdCBBYnNEb3VibGUgPSBTeW1ib2woIkFic0RvdWJsZSIpOworY29uc3QgQWJzRmxvYXQgPSBT
eW1ib2woIkFic0Zsb2F0Iik7Citjb25zdCBDZWlsRG91YmxlID0gU3ltYm9sKCJDZWlsRG91Ymxl
Iik7Citjb25zdCBDZWlsRmxvYXQgPSBTeW1ib2woIkNlaWxGbG9hdCIpOworY29uc3QgRmxvb3JE
b3VibGUgPSBTeW1ib2woIkZsb29yRG91YmxlIik7Citjb25zdCBGbG9vckZsb2F0ID0gU3ltYm9s
KCJGbG9vckZsb2F0Iik7Citjb25zdCBTcXJ0RG91YmxlID0gU3ltYm9sKCJTcXJ0RG91YmxlIik7
Citjb25zdCBTcXJ0RmxvYXQgPSBTeW1ib2woIlNxcnRGbG9hdCIpOworY29uc3QgQ29udmVydElu
dDMyVG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRJbnQzMlRvRG91YmxlIik7Citjb25zdCBDb252
ZXJ0SW50NjRUb0RvdWJsZSA9IFN5bWJvbCgiQ29udmVydEludDY0VG9Eb3VibGUiKTsKK2NvbnN0
IENvbnZlcnRJbnQzMlRvRmxvYXQgPSBTeW1ib2woIkNvbnZlcnRJbnQzMlRvRmxvYXQiKTsKK2Nv
bnN0IENvbnZlcnRJbnQ2NFRvRmxvYXQgPSBTeW1ib2woIkNvbnZlcnRJbnQ2NFRvRmxvYXQiKTsK
K2NvbnN0IENvdW50TGVhZGluZ1plcm9zMzIgPSBTeW1ib2woIkNvdW50TGVhZGluZ1plcm9zMzIi
KTsKK2NvbnN0IENvdW50TGVhZGluZ1plcm9zNjQgPSBTeW1ib2woIkNvdW50TGVhZGluZ1plcm9z
NjQiKTsKK2NvbnN0IENvbnZlcnREb3VibGVUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0RG91Ymxl
VG9GbG9hdCIpOworY29uc3QgQ29udmVydEZsb2F0VG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRG
bG9hdFRvRG91YmxlIik7Citjb25zdCBNb3ZlID0gU3ltYm9sKCJNb3ZlIik7Citjb25zdCBTd2Fw
MzIgPSBTeW1ib2woIlN3YXAzMiIpOworY29uc3QgU3dhcDY0ID0gU3ltYm9sKCJTd2FwNjQiKTsK
K2NvbnN0IE1vdmUzMiA9IFN5bWJvbCgiTW92ZTMyIik7Citjb25zdCBTdG9yZVplcm8zMiA9IFN5
bWJvbCgiU3RvcmVaZXJvMzIiKTsKK2NvbnN0IFNpZ25FeHRlbmQzMlRvUHRyID0gU3ltYm9sKCJT
aWduRXh0ZW5kMzJUb1B0ciIpOworY29uc3QgWmVyb0V4dGVuZDhUbzMyID0gU3ltYm9sKCJaZXJv
RXh0ZW5kOFRvMzIiKTsKK2NvbnN0IFNpZ25FeHRlbmQ4VG8zMiA9IFN5bWJvbCgiU2lnbkV4dGVu
ZDhUbzMyIik7Citjb25zdCBaZXJvRXh0ZW5kMTZUbzMyID0gU3ltYm9sKCJaZXJvRXh0ZW5kMTZU
bzMyIik7Citjb25zdCBTaWduRXh0ZW5kMTZUbzMyID0gU3ltYm9sKCJTaWduRXh0ZW5kMTZUbzMy
Iik7Citjb25zdCBNb3ZlRmxvYXQgPSBTeW1ib2woIk1vdmVGbG9hdCIpOworY29uc3QgTW92ZURv
dWJsZSA9IFN5bWJvbCgiTW92ZURvdWJsZSIpOworY29uc3QgTW92ZVplcm9Ub0RvdWJsZSA9IFN5
bWJvbCgiTW92ZVplcm9Ub0RvdWJsZSIpOworY29uc3QgTW92ZTY0VG9Eb3VibGUgPSBTeW1ib2wo
Ik1vdmU2NFRvRG91YmxlIik7Citjb25zdCBNb3ZlMzJUb0Zsb2F0ID0gU3ltYm9sKCJNb3ZlMzJU
b0Zsb2F0Iik7Citjb25zdCBNb3ZlRG91YmxlVG82NCA9IFN5bWJvbCgiTW92ZURvdWJsZVRvNjQi
KTsKK2NvbnN0IE1vdmVGbG9hdFRvMzIgPSBTeW1ib2woIk1vdmVGbG9hdFRvMzIiKTsKK2NvbnN0
IExvYWQ4ID0gU3ltYm9sKCJMb2FkOCIpOworY29uc3QgU3RvcmU4ID0gU3ltYm9sKCJTdG9yZTgi
KTsKK2NvbnN0IExvYWQ4U2lnbmVkRXh0ZW5kVG8zMiA9IFN5bWJvbCgiTG9hZDhTaWduZWRFeHRl
bmRUbzMyIik7Citjb25zdCBMb2FkMTYgPSBTeW1ib2woIkxvYWQxNiIpOworY29uc3QgTG9hZDE2
U2lnbmVkRXh0ZW5kVG8zMiA9IFN5bWJvbCgiTG9hZDE2U2lnbmVkRXh0ZW5kVG8zMiIpOworY29u
c3QgU3RvcmUxNiA9IFN5bWJvbCgiU3RvcmUxNiIpOworY29uc3QgQ29tcGFyZTMyID0gU3ltYm9s
KCJDb21wYXJlMzIiKTsKK2NvbnN0IENvbXBhcmU2NCA9IFN5bWJvbCgiQ29tcGFyZTY0Iik7Citj
b25zdCBUZXN0MzIgPSBTeW1ib2woIlRlc3QzMiIpOworY29uc3QgVGVzdDY0ID0gU3ltYm9sKCJU
ZXN0NjQiKTsKK2NvbnN0IENvbXBhcmVEb3VibGUgPSBTeW1ib2woIkNvbXBhcmVEb3VibGUiKTsK
K2NvbnN0IENvbXBhcmVGbG9hdCA9IFN5bWJvbCgiQ29tcGFyZUZsb2F0Iik7Citjb25zdCBCcmFu
Y2g4ID0gU3ltYm9sKCJCcmFuY2g4Iik7Citjb25zdCBCcmFuY2gzMiA9IFN5bWJvbCgiQnJhbmNo
MzIiKTsKK2NvbnN0IEJyYW5jaDY0ID0gU3ltYm9sKCJCcmFuY2g2NCIpOworY29uc3QgQnJhbmNo
VGVzdDggPSBTeW1ib2woIkJyYW5jaFRlc3Q4Iik7Citjb25zdCBCcmFuY2hUZXN0MzIgPSBTeW1i
b2woIkJyYW5jaFRlc3QzMiIpOworY29uc3QgQnJhbmNoVGVzdDY0ID0gU3ltYm9sKCJCcmFuY2hU
ZXN0NjQiKTsKK2NvbnN0IEJyYW5jaERvdWJsZSA9IFN5bWJvbCgiQnJhbmNoRG91YmxlIik7Citj
b25zdCBCcmFuY2hGbG9hdCA9IFN5bWJvbCgiQnJhbmNoRmxvYXQiKTsKK2NvbnN0IEJyYW5jaEFk
ZDMyID0gU3ltYm9sKCJCcmFuY2hBZGQzMiIpOworY29uc3QgQnJhbmNoQWRkNjQgPSBTeW1ib2wo
IkJyYW5jaEFkZDY0Iik7Citjb25zdCBCcmFuY2hNdWwzMiA9IFN5bWJvbCgiQnJhbmNoTXVsMzIi
KTsKK2NvbnN0IEJyYW5jaE11bDY0ID0gU3ltYm9sKCJCcmFuY2hNdWw2NCIpOworY29uc3QgQnJh
bmNoU3ViMzIgPSBTeW1ib2woIkJyYW5jaFN1YjMyIik7Citjb25zdCBCcmFuY2hTdWI2NCA9IFN5
bWJvbCgiQnJhbmNoU3ViNjQiKTsKK2NvbnN0IEJyYW5jaE5lZzMyID0gU3ltYm9sKCJCcmFuY2hO
ZWczMiIpOworY29uc3QgQnJhbmNoTmVnNjQgPSBTeW1ib2woIkJyYW5jaE5lZzY0Iik7Citjb25z
dCBNb3ZlQ29uZGl0aW9uYWxseTMyID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseTMyIik7Citj
b25zdCBNb3ZlQ29uZGl0aW9uYWxseTY0ID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseTY0Iik7
Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseVRlc3QzMiA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFs
bHlUZXN0MzIiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5VGVzdDY0ID0gU3ltYm9sKCJNb3Zl
Q29uZGl0aW9uYWxseVRlc3Q2NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlEb3VibGUgPSBT
eW1ib2woIk1vdmVDb25kaXRpb25hbGx5RG91YmxlIik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxs
eUZsb2F0ID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseUZsb2F0Iik7Citjb25zdCBNb3ZlRG91
YmxlQ29uZGl0aW9uYWxseTMyID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTMyIik7
Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTY0ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29u
ZGl0aW9uYWxseTY0Iik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3QzMiA9IFN5
bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0MzIiKTsKK2NvbnN0IE1vdmVEb3VibGVD
b25kaXRpb25hbGx5VGVzdDY0ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2
NCIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlEb3VibGUgPSBTeW1ib2woIk1vdmVE
b3VibGVDb25kaXRpb25hbGx5RG91YmxlIik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxs
eUZsb2F0ID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0Iik7Citjb25zdCBK
dW1wID0gU3ltYm9sKCJKdW1wIik7Citjb25zdCBSZXQzMiA9IFN5bWJvbCgiUmV0MzIiKTsKK2Nv
bnN0IFJldDY0ID0gU3ltYm9sKCJSZXQ2NCIpOworY29uc3QgUmV0RmxvYXQgPSBTeW1ib2woIlJl
dEZsb2F0Iik7Citjb25zdCBSZXREb3VibGUgPSBTeW1ib2woIlJldERvdWJsZSIpOworY29uc3Qg
T29wcyA9IFN5bWJvbCgiT29wcyIpOworY29uc3QgU2h1ZmZsZSA9IFN5bWJvbCgiU2h1ZmZsZSIp
OworY29uc3QgUGF0Y2ggPSBTeW1ib2woIlBhdGNoIik7Citjb25zdCBDQ2FsbCA9IFN5bWJvbCgi
Q0NhbGwiKTsKK2NvbnN0IENvbGRDQ2FsbCA9IFN5bWJvbCgiQ29sZENDYWxsIik7CitmdW5jdGlv
biBJbnN0X2ZvckVhY2hBcmcoaW5zdCwgZnVuYykKK3sKKyAgICBsZXQgcmVwbGFjZW1lbnQ7Cisg
ICAgc3dpdGNoIChpbnN0Lm9wY29kZSkgeworICAgIGNhc2UgTm9wOgorICAgICAgICBicmVhazsK
KyAgICBjYXNlIEFkZDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAg
ICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAg
aW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICAg
ICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkODoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA4KSkKKyAgICAgICAgICAgIGluc3Qu
YXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDgpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkMTY6CisgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMTYpKQor
ICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgMTYpKQorICAgICAg
ICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQWRkNjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQWRkRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5z
dC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgNjQpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZEZsb2F0OgorICAgICAgICBz
d2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAg
ICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
RGVmLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1
YjMyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQ
LCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTdWI2NDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdWJEb3VibGU6CisgICAgICAgIHN3
aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAg
ICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VE
ZWYsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3Vi
RmxvYXQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50
OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5E
ZWYsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sw
XSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTmVnMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sw
XSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5lZzY0OgorICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZURlZiwgR1AsIDY0
KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE5lZ2F0ZURvdWJsZToKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3Nb
MF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWwzMjoKKyAgICAgICAgc3dpdGNo
IChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDM6
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVm
LCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bDY0
OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURl
ZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9
IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBv
dmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICBjYXNlIE11bHRpcGx5QWRkMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1As
IDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE11bHRpcGx5QWRkNjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5h
cmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJd
LCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuRGVm
LCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTXVsdGlwbHlTdWIzMjoKKyAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBp
bnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3Nb
MV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFy
Zy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsdGlwbHlTdWI2NDoKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
M10sIEFyZy5EZWYsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWx0aXBseU5lZzMyOgorICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAg
ICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAg
IGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWx0aXBseU5l
ZzY0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0
KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCA2NCkpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEaXYzMjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIp
KQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgRGl2NjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBH
UCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTXVsRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5z
dC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgNjQpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bEZsb2F0OgorICAgICAgICBz
d2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAg
ICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
RGVmLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIERp
dkRvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LkRlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBEaXZGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYODZDb252ZXJ0VG9Eb3VibGVXb3Jk
MzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMy
KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFg4NkNvbnZlcnRUb1F1YWRXb3JkNjQ6CisgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAg
aW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWDg2RGl2MzI6Cisg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlWkRlZiwg
R1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAz
MikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBYODZEaXY2NDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2VaRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBB
cmcuVXNlWkRlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVz
ZSwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIExlYToKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2VBZGRyLCBHUCwgUHRyKSkKKyAgICAgICAgICAgIGluc3Qu
YXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIFB0cikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmQzMjoKKyAgICAgICAg
c3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQor
ICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMikpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2Ug
MjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50
OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2VaRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNl
IEFuZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
RGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3Nb
MF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cg
IkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEFuZERvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmRGbG9hdDoKKyAgICAgICAgc3dp
dGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURl
ZiwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYb3JE
b3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50
OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5E
ZWYsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sw
XSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgWG9yRmxvYXQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCAzMikpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTHNoaWZ0MzI6CisgICAgICAgIHN3aXRj
aCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRl
ZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMc2hp
ZnQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50
OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5V
c2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpE
ZWYsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sw
XSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUnNoaWZ0MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAg
ICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSc2hpZnQ2NDoKKyAgICAgICAgc3dp
dGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCA2NCkpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VE
ZWYsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVXJz
aGlmdDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
WkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVXJzaGlmdDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5z
dC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KSkKKyAg
ICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcjMyOgorICAgICAgICBzd2l0
Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpE
ZWYsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3I2
NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwg
R1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQg
b3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBYb3IzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9
IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1syXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAg
IGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAg
ICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFhvcjY0OgorICAgICAgICBzd2l0Y2ggKGluc3Qu
YXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAg
ICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1l
bnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAg
IGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQp
KQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vdDMyOgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikp
CisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMikp
CisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNh
c2UgMToKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3Zlcmxv
YWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBOb3Q2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAg
IGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5EZWYsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGlu
c3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFic0RvdWJsZToKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBYnNGbG9hdDoKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikp
CisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMikpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDZWlsRG91YmxlOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRl
ZiwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIENlaWxGbG9hdDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGbG9vckRvdWJsZToKKyAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2
NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBGbG9vckZsb2F0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LkRlZiwgRlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNxcnREb3VibGU6CisgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAg
aW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3FydEZsb2F0Ogor
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAs
IDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKSkKKyAg
ICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENvbnZlcnRJbnQzMlRvRG91YmxlOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLkRlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJl
cGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRJbnQ2NFRvRG91Ymxl
OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDY0KSkK
KyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENvbnZlcnRJbnQzMlRvRmxvYXQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5h
cmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udmVydEludDY0VG9GbG9h
dDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMikp
CisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDb3VudExlYWRpbmdaZXJvczMyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3Qu
YXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb3VudExlYWRpbmdaZXJv
czY0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIDY0
KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENvbnZlcnREb3VibGVUb0Zsb2F0OgorICAgICAgICBpZiAocmVwbGFjZW1l
bnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgIGlu
c3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sx
XSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRGbG9hdFRv
RG91YmxlOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAs
IDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE1vdmU6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9
IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLkRlZiwgR1AsIFB0cikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTd2FwMzI6CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlRGVmLCBHUCwgMzIpKQorICAgICAg
ICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAg
aW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3dh
cDY0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZURlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwg
R1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1vdmUzMjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3Nb
MF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmVaZXJvMzI6CisgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQor
ICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU2lnbkV4dGVuZDMyVG9QdHI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuRGVmLCBHUCwgUHRyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJl
cGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFplcm9FeHRlbmQ4VG8zMjoKKyAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA4
KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBTaWduRXh0ZW5kOFRvMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgOCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWmVyb0V4dGVuZDE2VG8zMjoKKyAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAxNikpCisg
ICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAg
ICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U2lnbkV4dGVuZDE2VG8zMjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAxNikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUZsb2F0OgorICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAg
IGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGU6
CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBG
UCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpKQor
ICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTW92ZVplcm9Ub0RvdWJsZToKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3Nb
MF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlNjRUb0RvdWJs
ZToKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCkp
CisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNb3ZlMzJUb0Zsb2F0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sw
XSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLkRlZiwgRlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVUbzY0OgorICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KSkK
KyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIDY0KSkKKyAgICAgICAg
ICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IE1vdmVGbG9hdFRvMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
RGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZDg6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgOCkpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmU4OgorICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDgpKQorICAg
ICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgOCkpCisgICAgICAgICAgICBp
bnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2Fk
OFNpZ25lZEV4dGVuZFRvMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgOCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZDE2OgorICAgICAgICBpZiAocmVwbGFjZW1l
bnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KSkKKyAgICAgICAgICAgIGlu
c3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3Nb
MV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2FkMTZTaWduZWRF
eHRlbmRUbzMyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDE2KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50
OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYs
IEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTdG9yZTE2OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLkRlZiwgR1AsIDE2KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJl
cGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBhcmUzMjoKKyAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisg
ICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAg
ICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcGFyZTY0OgorICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkK
KyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAg
ICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3Qu
YXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbM10g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUZXN0MzI6CisgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQor
ICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAg
ICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5h
cmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1szXSA9
IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFRlc3Q2NDoKKyAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisg
ICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAg
ICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcGFyZURvdWJsZToKKyAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAz
MikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICBp
bnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcGFyZUZsb2F0
OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKSkK
KyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAg
ICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2g4
OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDgpKQor
ICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgOCkpCisgICAgICAgICAg
ICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBC
cmFuY2gzMjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMikpCisg
ICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBCcmFuY2g2NDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQ
LCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBCcmFuY2hUZXN0ODoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA4KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJl
cGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZSwgR1AsIDgpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoVGVzdDMyOgorICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAg
ICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3Qu
YXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1syXSA9
IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaFRlc3Q2NDoKKyAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAz
MikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBp
bnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFu
Y2hEb3VibGU6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBG
UCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgNjQpKQor
ICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQnJhbmNoRmxvYXQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNl
LCBGUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoQWRkMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5h
cmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1l
bnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAg
IGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAg
aW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICAgICAg
aW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQor
ICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZVpEZWYsIEdQLCAzMikp
CisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoQWRkNjQ6Cisg
ICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDQ6CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwg
NjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2
NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
ICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCA2
NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZURlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3Zlcmxv
YWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBCcmFuY2hNdWwzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9
IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1syXSwgQXJnLlVzZVpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAg
ICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAg
ICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1l
bnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikp
CisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpKQor
ICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5TY3JhdGNoLCBHUCwgMzIp
KQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5TY3JhdGNoLCBHUCwg
MzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1s0XSA9IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5aRGVmLCBHUCwg
MzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1s1XSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaE11bDY0
OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
R1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlWkRl
ZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9
IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbM10sIEFyZy5TY3JhdGNoLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sz
XSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbNF0sIEFyZy5TY3JhdGNoLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1s0XSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbNV0sIEFyZy5aRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1s1XSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cg
IkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEJyYW5jaFN1YjMyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJl
cGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZVpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hTdWI2NDoKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBp
bnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VEZWYsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hOZWcz
MjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwg
MzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQnJhbmNoTmVnNjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9
IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRpb25hbGx5
MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDU6
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2Us
IEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwg
R1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZURl
ZiwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzRdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sw
XSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbM10g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbNF0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbNV0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQg
b3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseTY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJn
cy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAg
aW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBp
bnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGlu
c3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGlu
c3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VEZWYsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAg
IGluc3QuYXJnc1s0XSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDY6CisgICAgICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQor
ICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCkpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cikpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgR1AsIFB0cikpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzRdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgR1AsIFB0cikpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzVdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlU
ZXN0MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNl
IDU6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50
OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5V
c2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVz
ZSwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVz
ZURlZiwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzRdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3Nb
Ml0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3Nb
M10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3Nb
NF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3Nb
NV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJC
YWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2NDoKKyAgICAgICAgc3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAg
ICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAg
ICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAg
ICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlRGVmLCBHUCwgUHRyKSkKKyAgICAgICAg
ICAgICAgICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSA2OgorICAg
ICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQ
LCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1As
IDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwg
MzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQ
dHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQLCBQ
dHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1s0XSA9IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQLCBQ
dHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1s1XSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRp
b25hbGx5RG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAg
ICAgY2FzZSA2OgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJd
LCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10s
IEFyZy5Vc2UsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0s
IEFyZy5Vc2UsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1s0XSA9IHJlcGxh
Y2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNV0s
IEFyZy5EZWYsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1s1XSA9IHJlcGxh
Y2VtZW50OworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1s0XSwgQXJnLlVzZURlZiwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5z
dC5hcmdzWzRdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlGbG9hdDoKKyAgICAgICAgc3dp
dGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbNV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSA1Ogor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
RlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBG
UCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQ
LCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VEZWYs
IEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1s0XSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVE
b3VibGVDb25kaXRpb25hbGx5MzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNl
LCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBGUCwgNjQp
KQorICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAg
ICAgICAgaW5zdC5hcmdzWzRdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5z
dC5hcmdzWzVdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURv
dWJsZUNvbmRpdGlvbmFsbHk2NDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2Us
IEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQLCA2NCkp
CisgICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbNV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91
YmxlQ29uZGl0aW9uYWxseVRlc3QzMjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5V
c2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQLCA2
NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAgICAgICBp
bnN0LmFyZ3NbNV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3Zl
RG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2NDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3Nb
MF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQ
LCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisg
ICAgICAgICAgICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAgICAg
ICBpbnN0LmFyZ3NbNV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBN
b3ZlRG91YmxlQ29uZGl0aW9uYWxseURvdWJsZToKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0s
IEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2Us
IEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCkp
CisgICAgICAgICAgICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbNV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3Qu
YXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9
IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sy
XSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVz
ZSwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgRlAsIDY0
KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1s0XSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgRlAsIDY0KSkKKyAgICAg
ICAgICAgIGluc3QuYXJnc1s1XSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEp1bXA6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0MzI6CisgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAg
ICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUmV0NjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0RmxvYXQ6CisgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAg
aW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0
RG91YmxlOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE9vcHM6CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U2h1ZmZsZToKKyAgICAgICAgU2h1ZmZsZUN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBhdGNoOgorICAgICAgICBQYXRjaEN1c3RvbS5mb3JF
YWNoQXJnKGluc3QsIGZ1bmMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENDYWxsOgorICAg
ICAgICBDQ2FsbEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENvbGRDQ2FsbDoKKyAgICAgICAgQ29sZENDYWxsQ3VzdG9tLmZvckVhY2hBcmco
aW5zdCwgZnVuYyk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHRocm93
ICJCYWQgb3Bjb2RlIjsKKyAgICB9Cit9CitmdW5jdGlvbiBJbnN0X2hhc05vbkFyZ0VmZmVjdHMo
aW5zdCkKK3sKKyAgICBzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7CisgICAgY2FzZSBCcmFuY2g4Ogor
ICAgIGNhc2UgQnJhbmNoMzI6CisgICAgY2FzZSBCcmFuY2g2NDoKKyAgICBjYXNlIEJyYW5jaFRl
c3Q4OgorICAgIGNhc2UgQnJhbmNoVGVzdDMyOgorICAgIGNhc2UgQnJhbmNoVGVzdDY0OgorICAg
IGNhc2UgQnJhbmNoRG91YmxlOgorICAgIGNhc2UgQnJhbmNoRmxvYXQ6CisgICAgY2FzZSBCcmFu
Y2hBZGQzMjoKKyAgICBjYXNlIEJyYW5jaEFkZDY0OgorICAgIGNhc2UgQnJhbmNoTXVsMzI6Cisg
ICAgY2FzZSBCcmFuY2hNdWw2NDoKKyAgICBjYXNlIEJyYW5jaFN1YjMyOgorICAgIGNhc2UgQnJh
bmNoU3ViNjQ6CisgICAgY2FzZSBCcmFuY2hOZWczMjoKKyAgICBjYXNlIEJyYW5jaE5lZzY0Ogor
ICAgIGNhc2UgSnVtcDoKKyAgICBjYXNlIFJldDMyOgorICAgIGNhc2UgUmV0NjQ6CisgICAgY2Fz
ZSBSZXRGbG9hdDoKKyAgICBjYXNlIFJldERvdWJsZToKKyAgICBjYXNlIE9vcHM6CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIGNhc2UgU2h1ZmZsZToKKyAgICAgICAgcmV0dXJuIFNodWZmbGVD
dXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CisgICAgY2FzZSBQYXRjaDoK
KyAgICAgICAgcmV0dXJuIFBhdGNoQ3VzdG9tLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGlu
c3QpOworICAgIGNhc2UgQ0NhbGw6CisgICAgICAgIHJldHVybiBDQ2FsbEN1c3RvbS5oYXNOb25B
cmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKKyAgICBjYXNlIENvbGRDQ2FsbDoKKyAgICAgICAg
cmV0dXJuIENvbGRDQ2FsbEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsK
KyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQpJbmRleDogUGVy
Zm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9yZWcuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Jl
Zy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzMyBAQAorInVzZSBzdHJpY3QiOworLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBSZWcgZXh0
ZW5kcyBUbXBCYXNlIHsKKyAgICBjb25zdHJ1Y3RvcihpbmRleCwgdHlwZSwgbmFtZSwgaXNDYWxs
ZWVTYXZlKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgdGhpcy5faW5kZXggPSBp
bmRleDsKKyAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7CisgICAgICAgIHRoaXMuX25hbWUgPSBu
YW1lOworICAgICAgICB0aGlzLl9pc0NhbGxlZVNhdmUgPSAhIWlzQ2FsbGVlU2F2ZTsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIGZyb21SZWcocmVnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJl
ZzsKKyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0K
KyAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KKyAgICBnZXQgbmFtZSgpIHsg
cmV0dXJuIHRoaXMuX25hbWU7IH0KKyAgICBnZXQgaXNDYWxsZWVTYXZlKCkgeyByZXR1cm4gdGhp
cy5faXNDYWxsZWVTYXZlOyB9CisgICAgCisgICAgZ2V0IGlzUmVnKCkgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiJSIgKyB0aGlz
Ll9uYW1lOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZXh0cmFjdChhcmcpCisgICAgeworICAg
ICAgICBpZiAoYXJnLmlzUmVnKQorICAgICAgICAgICAgcmV0dXJuIGFyZy5yZWc7CisgICAgICAg
IHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaEZhc3QoYXJnLCBm
dW5jKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFyZy5mb3JFYWNoVG1wRmFzdCh0bXAgPT4gewor
ICAgICAgICAgICAgaWYgKCF0bXAuaXNSZWcpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgcmV0dXJuIGZ1bmModG1wKTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBmb3JFYWNoKGFyZywgYXJnUm9sZSwgYXJnVHlwZSwgYXJnV2lkdGgsIGZ1bmMpCisg
ICAgeworICAgICAgICByZXR1cm4gYXJnLmZvckVhY2hUbXAoCisgICAgICAgICAgICBhcmdSb2xl
LCBhcmdUeXBlLCBhcmdXaWR0aCwKKyAgICAgICAgICAgICh0bXAsIHJvbGUsIHR5cGUsIHdpZHRo
KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKCF0bXAuaXNSZWcpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyh0bXAsIHJvbGUsIHR5cGUs
IHdpZHRoKTsKKyAgICAgICAgICAgIH0pOworICAgIH0KK30KKworeworICAgIFJlZy5yZWdzID0g
W107CisgICAgZnVuY3Rpb24gbmV3UmVnKC4uLmFyZ3MpCisgICAgeworICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IFJlZyguLi5hcmdzKTsKKyAgICAgICAgUmVnLnJlZ3MucHVzaChyZXN1bHQpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8vIERlZmluZSBYODZfNjQgR1BS
cworICAgIHsKKyAgICAgICAgbGV0IGluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rpb24gbmV3R1BS
KG5hbWUsIGlzQ2FsbGVlU2F2ZSkgeyByZXR1cm4gbmV3UmVnKGluZGV4KyssIEdQLCBuYW1lLCBp
c0NhbGxlZVNhdmUpOyB9CisgICAgICAgIAorICAgICAgICBSZWcucmF4ID0gbmV3R1BSKCJyYXgi
KTsKKyAgICAgICAgUmVnLnJjeCA9IG5ld0dQUigicmN4Iik7CisgICAgICAgIFJlZy5yZHggPSBu
ZXdHUFIoInJkeCIpOworICAgICAgICBSZWcucmJ4ID0gbmV3R1BSKCJyYngiLCB0cnVlKTsKKyAg
ICAgICAgUmVnLnJzcCA9IG5ld0dQUigicnNwIik7CisgICAgICAgIFJlZy5yYnAgPSBuZXdHUFIo
InJicCIsIHRydWUpOworICAgICAgICBSZWcucnNpID0gbmV3R1BSKCJyc2kiKTsKKyAgICAgICAg
UmVnLnJkaSA9IG5ld0dQUigicmRpIik7CisgICAgICAgIGZvciAobGV0IGkgPSA4OyBpIDw9IDE1
OyArK2kpCisgICAgICAgICAgICBSZWdbInIiICsgaV0gPSBuZXdHUFIoInIiICsgaSwgaSA+PSAx
Mik7CisgICAgfQorCisgICAgLy8gRGVmaW5lIFg4Nl82NCBGUFJzLgorICAgIGZvciAobGV0IGkg
PSAwOyBpIDw9IDE1OyArK2kpCisgICAgICAgIFJlZ1sieG1tIiArIGldID0gbmV3UmVnKGksIEZQ
LCAieG1tIiArIGkpOworCisgICAgUmVnLmdwcnMgPSBbXQorICAgIFJlZy5mcHJzID0gW10KKyAg
ICBSZWcuY2FsbGVlU2F2ZUdQUnMgPSBbXQorICAgIFJlZy5jYWxsZWVTYXZlRlBScyA9IFtdCisg
ICAgUmVnLmNhbGxlZVNhdmVzID0gW10KKyAgICBmb3IgKGxldCByZWcgb2YgUmVnLnJlZ3MpIHsK
KyAgICAgICAgaWYgKHJlZy5pc0dQKSB7CisgICAgICAgICAgICBSZWcuZ3Bycy5wdXNoKHJlZyk7
CisgICAgICAgICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2ZSkKKyAgICAgICAgICAgICAgICBSZWcu
Y2FsbGVlU2F2ZUdQUnMucHVzaChyZWcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
UmVnLmZwcnMucHVzaChyZWcpOworICAgICAgICAgICAgaWYgKHJlZy5pc0NhbGxlZVNhdmUpCisg
ICAgICAgICAgICAgICAgUmVnLmNhbGxlZVNhdmVGUFJTLnB1c2gocmVnKTsKKyAgICAgICAgfQor
ICAgICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2ZSkKKyAgICAgICAgICAgIFJlZy5jYWxsZWVTYXZl
cy5wdXNoKHJlZyk7CisgICAgfQorICAgIAorICAgIFJlZy5jYWxsRnJhbWVSZWdpc3RlciA9IFJl
Zy5yYnA7CisgICAgUmVnLnN0YWNrUG9pbnRlclJlZ2lzdGVyID0gUmVnLnJzcDsKK30KSW5kZXg6
IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3RhY2tfc2xvdC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJm
b3JtYW5jZVRlc3RzL0pTQWlyL3N0YWNrX3Nsb3QuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3Jt
YW5jZVRlc3RzL0pTQWlyL3N0YWNrX3Nsb3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5
NyBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCitjbGFzcyBTdGFja1Nsb3QgeworICAgIGNvbnN0cnVjdG9yKGluZGV4LCBieXRl
U2l6ZSwga2luZCkKKyAgICB7CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAg
IHRoaXMuX2J5dGVTaXplID0gYnl0ZVNpemU7CisgICAgICAgIHRoaXMuX2tpbmQgPSBraW5kOwor
ICAgIH0KKyAgICAKKyAgICBnZXQgYnl0ZVNpemUoKSB7IHJldHVybiB0aGlzLl9ieXRlU2l6ZTsg
fQorICAgIGdldCBraW5kKCkgeyByZXR1cm4gdGhpcy5fa2luZDsgfQorICAgIAorICAgIGdldCBp
c0xvY2tlZCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gTG9ja2VkOyB9CisgICAgZ2V0IGlzU3Bp
bGwoKSB7IHJldHVybiB0aGlzLl9raW5kID09IFNwaWxsOyB9CisgICAgCisgICAgZ2V0IGluZGV4
KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKworICAgIGVuc3VyZVNpemUoc2l6ZSkKKyAgICB7
CisgICAgICAgIGlmICh0aGlzLl9vZmZzZXRGcm9tRlApCisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIlN0YWNrIHNsb3QgYWxyZWFkeSBhbGxvY2F0ZWQiKTsKKyAgICAgICAgdGhpcy5fYnl0
ZVNpemUgPSBNYXRoLm1heCh0aGlzLl9ieXRlU2l6ZSwgc2l6ZSk7CisgICAgfQorICAgIAorICAg
IGdldCBhbGlnbm1lbnQoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2J5dGVTaXplIDw9IDEp
CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgaWYgKHRoaXMuX2J5dGVTaXplIDw9IDIp
CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgaWYgKHRoaXMuX2J5dGVTaXplIDw9IDQp
CisgICAgICAgICAgICByZXR1cm4gNDsKKyAgICAgICAgcmV0dXJuIDg7CisgICAgfQorICAgIAor
ICAgIGdldCBvZmZzZXRGcm9tRlAoKSB7IHJldHVybiB0aGlzLl9vZmZzZXRGcm9tRlA7IH0KKyAg
ICAKKyAgICBzZXRPZmZzZXRGcm9tRlAodmFsdWUpIHsgdGhpcy5fb2Zmc2V0RnJvbUZQID0gdmFs
dWU7IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gIiIgKyAo
dGhpcy5pc1NwaWxsID8gInNwaWxsIiA6ICJzdGFjayIpICsgdGhpcy5faW5kZXggKyAiPCIgKyB0
aGlzLl9ieXRlU2l6ZSArCisgICAgICAgICAgICAodGhpcy5fb2Zmc2V0RnJvbUZQID8gIiwgb2Zm
c2V0ID0gIiArIHRoaXMuX29mZnNldEZyb21GUCA6ICIiKSArICI+IjsKKyAgICB9CisgICAgCisg
ICAgc3RhdGljIGV4dHJhY3QoYXJnKQorICAgIHsKKyAgICAgICAgaWYgKGFyZy5pc1N0YWNrKQor
ICAgICAgICAgICAgcmV0dXJuIGFyZy5zdGFja1Nsb3Q7CisgICAgICAgIHJldHVybiBudWxsOwor
ICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaEZhc3QoYXJnLCBmdW5jKQorICAgIHsKKyAg
ICAgICAgaWYgKCFhcmcuaXNTdGFjaykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisg
ICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhh
cmcuc3RhY2tTbG90KSkKKyAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlU3RhY2socmVwbGFj
ZW1lbnQsIHRoaXMuX29mZnNldCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNoKGFy
Zywgcm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmMpCisgICAgeworICAgICAgICBpZiAoIWFyZy5pc1N0
YWNrKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgbGV0IHJlcGxhY2Vt
ZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGFyZy5zdGFja1Nsb3QsIHJvbGUs
IHR5cGUsIHdpZHRoKSkKKyAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlU3RhY2socmVwbGFj
ZW1lbnQsIHRoaXMuX29mZnNldCk7CisgICAgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9K
U0Fpci9zeW1ib2xzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3lt
Ym9scy5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9scy5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc1IEBACisidXNlIHN0cmljdCI7CisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIFRoaXMgZmlsZSBpcyBm
b3IgbWlzYyBzeW1ib2xzLgorCisvLyBBcmcgdHlwZQorY29uc3QgR1AgPSBTeW1ib2woIkdQIik7
Citjb25zdCBGUCA9IFN5bWJvbCgiRlAiKTsKKworLy8gU3RhY2sgc2xvdCBraW5kCitjb25zdCBM
b2NrZWQgPSBTeW1ib2woIkxvY2tlZCIpOworY29uc3QgU3BpbGwgPSBTeW1ib2woIlNwaWxsIik7
CisKKy8vIEZyZXF1ZW5jeSBjbGFzcworY29uc3QgTm9ybWFsID0gU3ltYm9sKCJOb3JtYWwiKTsK
K2NvbnN0IFJhcmUgPSBTeW1ib2woIlJhcmUiKTsKKworLy8gUmVsYXRpb25hbCBjb25kaXRpb25z
Citjb25zdCBFcXVhbCA9IFN5bWJvbCgiRXF1YWwiKTsKK2NvbnN0IE5vdEVxdWFsID0gU3ltYm9s
KCJOb3RFcXVhbCIpOworY29uc3QgQWJvdmUgPSBTeW1ib2woIkFib3ZlIik7Citjb25zdCBBYm92
ZU9yRXF1YWwgPSBTeW1ib2woIkFib3ZlT3JFcXVhbCIpOworY29uc3QgQmVsb3cgPSBTeW1ib2wo
IkJlbG93Iik7Citjb25zdCBCZWxvd09yRXF1YWwgPSBTeW1ib2woIkJlbG93T3JFcXVhbCIpOwor
Y29uc3QgR3JlYXRlclRoYW4gPSBTeW1ib2woIkdyZWF0ZXJUaGFuIik7Citjb25zdCBHcmVhdGVy
VGhhbk9yRXF1YWwgPSBTeW1ib2woIkdyZWF0ZXJUaGFuT3JFcXVhbCIpOworY29uc3QgTGVzc1Ro
YW4gPSBTeW1ib2woIkxlc3NUaGFuIik7Citjb25zdCBMZXNzVGhhbk9yRXF1YWwgPSBTeW1ib2wo
Ikxlc3NUaGFuT3JFcXVhbCIpOworCisvLyBSZXN1bHQgY29uZGl0aW9ucworY29uc3QgT3ZlcmZs
b3cgPSBTeW1ib2woIk92ZXJmbG93Iik7Citjb25zdCBTaWduZWQgPSBTeW1ib2woIlNpZ25lZCIp
OworY29uc3QgUG9zaXRpdmVPclplcm8gPSBTeW1ib2woIlBvc2l0aXZlT3JaZXJvIik7Citjb25z
dCBaZXJvID0gU3ltYm9sKCJaZXJvIik7Citjb25zdCBOb25aZXJvID0gU3ltYm9sKCJOb25aZXJv
Iik7CisKKy8vIERvdWJsZSBjb25kaXRpb25zCitjb25zdCBEb3VibGVFcXVhbCA9IFN5bWJvbCgi
RG91YmxlRXF1YWwiKTsKK2NvbnN0IERvdWJsZU5vdEVxdWFsID0gU3ltYm9sKCJEb3VibGVOb3RF
cXVhbCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW4gPSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJU
aGFuIik7Citjb25zdCBEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwgPSBTeW1ib2woIkRvdWJsZUdy
ZWF0ZXJUaGFuT3JFcXVhbCIpOworY29uc3QgRG91YmxlTGVzc1RoYW4gPSBTeW1ib2woIkRvdWJs
ZUxlc3NUaGFuIik7Citjb25zdCBEb3VibGVMZXNzVGhhbk9yRXF1YWwgPSBTeW1ib2woIkRvdWJs
ZUxlc3NUaGFuT3JFcXVhbCIpOworY29uc3QgRG91YmxlRXF1YWxPclVub3JkZXJlZCA9IFN5bWJv
bCgiRG91YmxlRXF1YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlTm90RXF1YWxPclVub3Jk
ZXJlZCA9IFN5bWJvbCgiRG91YmxlTm90RXF1YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91Ymxl
R3JlYXRlclRoYW5PclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRoYW5PclVub3Jk
ZXJlZCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW5PckVxdWFsT3JVbm9yZGVyZWQgPSBTeW1i
b2woIkRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbE9yVW5vcmRlcmVkIik7Citjb25zdCBEb3VibGVM
ZXNzVGhhbk9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9yVW5vcmRlcmVkIik7
Citjb25zdCBEb3VibGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IFN5bWJvbCgiRG91Ymxl
TGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQiKTsKKworLy8gRGVmaW5lIHBvaW50ZXJUeXBlKCkK
K2NvbnN0IFB0ciA9IDY0OwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90ZXN0LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdGVzdC5qcwkocmV2aXNpb24gMCkK
KysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdGVzdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDcgQEAKKyJ1c2Ugc3RyaWN0IjsKKworbG9hZCgiYWxsLmpzIik7CisKK2xvYWQoInBheWxv
YWQuanMiKTsKKworcHJpbnQoY29kZSk7CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Rt
cC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3RtcC5qcwkocmV2aXNp
b24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTkgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgVG1wIGV4dGVuZHMgVG1wQmFzZSB7CisgICAgY29u
c3RydWN0b3IoaW5kZXgsIHR5cGUpCisgICAgeworICAgICAgICBzdXBlcigpOworICAgICAgICB0
aGlzLl9pbmRleCA9IGluZGV4OworICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKKyAgICB9Cisg
ICAgCisgICAgc3RhdGljIGZyb21SZWcocmVnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlZzsK
KyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAg
ICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KKyAgICAKKyAgICBnZXQgaXNSZWco
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAg
IHJldHVybiAiJSIgKyAodGhpcy5pc0dQID8gIiIgOiAiZiIpICsgInRtcCIgKyB0aGlzLl9pbmRl
eDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGV4dHJhY3QoYXJnKQorICAgIHsKKyAgICAgICAg
aWYgKGFyZy5pc1RtcCkKKyAgICAgICAgICAgIHJldHVybiBhcmcudG1wOworICAgICAgICByZXR1
cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0aWMgZm9yRWFjaEZhc3QoYXJnLCBmdW5jKSB7IHJl
dHVybiBhcmcuZm9yRWFjaFRtcEZhc3QoZnVuYyk7IH0KKyAgICBzdGF0aWMgZm9yRWFjaChhcmcs
IHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKSB7IHJldHVybiBhcmcuZm9yRWFjaFRtcChyb2xlLCB0
eXBlLCB3aWR0aCwgZnVuYyk7IH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1w
X2Jhc2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXBfYmFzZS5q
cwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wX2Jhc2UuanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw1NSBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBUbXBCYXNlIHsKKyAgICBn
ZXQgaXNHUCgpIHsgcmV0dXJuIHRoaXMudHlwZSA9PSBHUDsgfQorICAgIGdldCBpc0ZQKCkgeyBy
ZXR1cm4gdGhpcy50eXBlID09IEZQOyB9CisgICAgCisgICAgZ2V0IGlzR1BSKCkgeyByZXR1cm4g
dGhpcy5pc1JlZyAmJiB0aGlzLmlzR1A7IH0KKyAgICBnZXQgaXNGUFIoKSB7IHJldHVybiB0aGlz
LmlzUmVnICYmIHRoaXMuaXNGUDsgfQorICAgIAorICAgIGdldCByZWcoKQorICAgIHsKKyAgICAg
ICAgaWYgKCF0aGlzLmlzUmVnKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQg
LnJlZyBvbiBub24tUmVnIik7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIGdl
dCBncHIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzR1BSKQorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJDYWxsZWQgLmdwciBvbiBub24tR1BSIik7CisgICAgICAgIHJldHVybiB0
aGlzOworICAgIH0KKyAgICAKKyAgICBnZXQgZnByKCkKKyAgICB7CisgICAgICAgIGlmICghdGhp
cy5pc0ZQUikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5mcHIgb24gbm9u
LUZQUiIpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9Cit9CisKSW5kZXg6IFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvdXRpbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pT
QWlyL3V0aWwuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3V0aWwu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorInVzZSBzdHJpY3QiOworLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitmdW5jdGlvbiBpc1JlcHJl
c2VudGFibGVBc0ludDMyKHZhbHVlKQoreworICAgIHJldHVybiAodmFsdWUgfCAwKSA9PT0gdmFs
dWU7Cit9CisKK2Z1bmN0aW9uIGFkZEluZGV4ZWQobGlzdCwgY29ucywgLi4uYXJncykKK3sKKyAg
ICBsZXQgcmVzdWx0ID0gbmV3IGNvbnMobGlzdC5sZW5ndGgsIC4uLmFyZ3MpOworICAgIGxpc3Qu
cHVzaChyZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NvbnN0IHN0YWNrQWxpZ25t
ZW50Qnl0ZXMgPSAxNjsKKworZnVuY3Rpb24gcm91bmRVcFRvTXVsdGlwbGVPZihhbW91bnQsIHZh
bHVlKQoreworICAgIHJldHVybiAodmFsdWUgKyBhbW91bnQgLSAxKSAvIGFtb3VudCAqIGFtb3Vu
dDsKK30KKworZnVuY3Rpb24gc3ltYm9sTmFtZShzeW1ib2wpCit7CisgICAgbGV0IGZ1bGxTdHJp
bmcgPSBzeW1ib2wudG9TdHJpbmcoKTsKKyAgICByZXR1cm4gZnVsbFN0cmluZy5zdWJzdHJpbmco
IlN5bWJvbCgiLmxlbmd0aCwgZnVsbFN0cmluZy5sZW5ndGggLSAiKSIubGVuZ3RoKTsKK30KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5Myw4ICsxOTkzLDI1IEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHN0YXRpYyB2b2lkIGR1bXBFeGNlcHRpb24o
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgZXhjZXB0aW9uKQogewogICAgIHBy
aW50ZigiRXhjZXB0aW9uOiAlc1xuIiwgZXhjZXB0aW9uLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpKS51dGY4KCkuZGF0YSgpKTsKKworICAgIElkZW50aWZpZXIgbmFtZUlE
ID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgIm5h
bWUiKTsKKyAgICBJZGVudGlmaWVyIGZpbGVOYW1lSUQgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCAic291cmNlVVJMIik7CisgICAgSWRlbnRpZmll
ciBsaW5lTnVtYmVySUQgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRXhlYygpLCAibGluZSIpOwogICAgIElkZW50aWZpZXIgc3RhY2tJRCA9IElkZW50aWZpZXI6
OmZyb21TdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksICJzdGFjayIpOworICAgIAor
ICAgIEpTVmFsdWUgbmFtZVZhbHVlID0gZXhjZXB0aW9uLmdldChnbG9iYWxPYmplY3QtPmdsb2Jh
bEV4ZWMoKSwgbmFtZUlEKTsKKyAgICBKU1ZhbHVlIGZpbGVOYW1lVmFsdWUgPSBleGNlcHRpb24u
Z2V0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBmaWxlTmFtZUlEKTsKKyAgICBKU1ZhbHVl
IGxpbmVOdW1iZXJWYWx1ZSA9IGV4Y2VwdGlvbi5nZXQoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVj
KCksIGxpbmVOdW1iZXJJRCk7CiAgICAgSlNWYWx1ZSBzdGFja1ZhbHVlID0gZXhjZXB0aW9uLmdl
dChnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgc3RhY2tJRCk7CisgICAgCisgICAgaWYgKG5h
bWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSkgPT0gIlN5bnRh
eEVycm9yIgorICAgICAgICAmJiAoIWZpbGVOYW1lVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSB8
fCAhbGluZU51bWJlclZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpKSB7CisgICAgICAgIHByaW50
ZigKKyAgICAgICAgICAgICJhdCAlczolc1xuIiwKKyAgICAgICAgICAgIGZpbGVOYW1lVmFsdWUu
dG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCkpLnV0ZjgoKS5kYXRhKCksCisg
ICAgICAgICAgICBsaW5lTnVtYmVyVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCkpLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKyAgICAKICAgICBpZiAoIXN0YWNrVmFs
dWUuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcHJpbnRmKCIlc1xuIiwgc3RhY2tWYWx1
ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSkudXRmOCgpLmRhdGEoKSk7
CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjAxNzE2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiArMTk4Myw4IEBACiAJCURDMTdFODFB
MUM5QzkxRTkwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIEND
YWxsSGVscGVycy5jcHAgKi87IH07CiAJCURDMjE0MzA3MUNBMzJFNTUwMDBBODg2OSAvKiBJQ1N0
YXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzIx
NDMwNjFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5oICovOyB9OwogCQlEQzIxNDMwODFDQTMy
RTU4MDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAg
Ki87IH07CisJCURDNDU0QjhDMUQwMEU4MjIwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QTFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwICovOyB9OworCQlEQzQ1NEI4RDFEMDBFODI0
MDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5o
ICovOyB9OwogCQlEQzYwNUI1RDFDRTI2RUEwMDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1OTFD
RTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgKi87IH07CiAJCURDNjA1QjVFMUNF
MjZFQTIwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmls
ZXJFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCURDNjA1QjVGMUNFMjZFQTUwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1QjFDRTI2RTk4MDA1
OTM3MTggLyogUHJvZmlsZXJVSUQuY3BwICovOyB9OwpAQCAtNDE5Nyw2ICs0MTk5LDggQEAKIAkJ
REMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3Rh
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzQ1NEI4QTFEMDBFODFGMDA0QzE4QUYgLyogQWlyRHVt
cEFzSlMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRHVtcEFz
SlMuY3BwOyBwYXRoID0gYjMvYWlyL0FpckR1bXBBc0pTLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFpckR1bXBBc0pTLmg7IHBhdGggPSBiMy9h
aXIvQWlyRHVtcEFzSlMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2MDVCNTkx
Q0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gUHJvZmlsZXJFdmVudC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9m
aWxlckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2MDVCNUExQ0Uy
NkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUHJvZmlsZXJFdmVudC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QjFDRTI2RTk4MDA1OTM3MTgg
LyogUHJvZmlsZXJVSUQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UHJvZmlsZXJVSUQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDgyMSw2ICs0ODI1LDggQEAKIAkJCQkwRkVDODU1MTFC
REFDREM3MDA4MEZGNzQgLyogQWlyQ29kZS5oICovLAogCQkJCTBGNjE4MzIyMUM0NUJGMDcwMDcy
NDUwQiAvKiBBaXJDdXN0b20uY3BwICovLAogCQkJCTBGMTBGMUEyMUM0MjBCRjAwMDFDMDdEMiAv
KiBBaXJDdXN0b20uaCAqLywKKwkJCQlEQzQ1NEI4QTFEMDBFODFGMDA0QzE4QUYgLyogQWlyRHVt
cEFzSlMuY3BwICovLAorCQkJCURDNDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNK
Uy5oICovLAogCQkJCTBGNDU3MDM2MUJFNDRDOTEwMDYyQTYyOSAvKiBBaXJFbGltaW5hdGVEZWFk
Q29kZS5jcHAgKi8sCiAJCQkJMEY0NTcwMzcxQkU0NEM5MTAwNjJBNjI5IC8qIEFpckVsaW1pbmF0
ZURlYWRDb2RlLmggKi8sCiAJCQkJMEY2MTgzMjMxQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckVtaXRT
aHVmZmxlLmNwcCAqLywKQEAgLTcwMjIsNiArNzAyOCw3IEBACiAJCQkJMEZFQzg1MDYxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ2hlY2tTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUw
ODFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVDODUwQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CURDNDU0QjhEMUQwMEU4MjQwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZFQzg1MEMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZFQzg1MEUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3QzMlZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUxMDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25z
dDY0VmFsdWUuaCBpbiBIZWFkZXJzICovLApAQCAtOTEwNiw2ICs5MTEzLDcgQEAKIAkJCQkxNDA1
NjZENjEwN0VDMjcxMDA1REJDOEQgLyogSlNGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjRBMzhGOTFDOEUxM0RGMDAxOTAzMTggLyogU3VwZXJTYW1wbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTc5N0UwN0E5MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxFbnZp
cm9ubWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzQ1NEI4QzFEMDBFODIyMDA0QzE4QUYg
LyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDIxMDdFQzM3NjAw
NDI3QTQ4IC8qIEpTR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1RkQwMDg1
MTg5QjFCN0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNUMzQTFBNTE4QzA0OTAyMDBDOTU5M0EgLyogSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVN0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCShyZXZpc2lvbiAyMDE3MTYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisj
aW5jbHVkZSAiQWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRl
ICJBaXJJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCShyZXZpc2lvbiAyMDE3MTYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02
ODgsNyArNjg4LDE1IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTb21lSW1tKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiBpc0ltbSgpIHx8IGlzQmlnSW1tKCkgfHwgaXNCaXRJbW0oKSB8
fCBpc0JpdEltbTY0KCk7CisgICAgICAgIHN3aXRjaCAoa2luZCgpKSB7CisgICAgICAgIGNhc2Ug
SW1tOgorICAgICAgICBjYXNlIEJpZ0ltbToKKyAgICAgICAgY2FzZSBCaXRJbW06CisgICAgICAg
IGNhc2UgQml0SW1tNjQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGJv
b2wgaXNBZGRyKCkgY29uc3QKQEAgLTk5MywzMyArMTAwMSw2IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIHRtcCgpLnRtcEluZGV4KCk7CiAgICAgfQogCi0gICAgLy8gSWYgJ3RoaXMnIGlzIGFu
IGFkZHJlc3MgQXJnLCB0aGVuIGl0IHJldHVybnMgYSBuZXcgYWRkcmVzcyBBcmcgd2l0aCB0aGUg
YWRkaXRpb25hbCBvZmZzZXQgYXBwbGllZC4KLSAgICAvLyBOb3RlIHRoYXQgdGhpcyBkb2VzIG5v
dCBjb25zaWRlciB3aGV0aGVyIGRvaW5nIHNvIHByb2R1Y2VzIGEgdmFsaWQgQXJnIG9yIG5vdC4g
VW5sZXNzIHlvdSByZWFsbHkKLSAgICAvLyBrbm93IHdoYXQgeW91J3JlIGRvaW5nLCB5b3Ugc2hv
dWxkIGNhbGwgQXJnOjppc1ZhbGlkRm9ybSgpIG9uIHRoZSByZXN1bHQuIFNvbWUgY29kZSB3b24n
dCBkbyB0aGF0LAotICAgIC8vIGxpa2UgaWYgeW91J3JlIGFwcGx5aW5nIGEgdmVyeSBzbWFsbCBv
ZmZzZXQgdG8gYSBBcmc6OnN0YWNrKCkgdGhhdCB5b3Uga25vdyBoYXMgbm8gb2Zmc2V0IHRvIGJl
Z2luCi0gICAgLy8gd2l0aC4gSXQncyBzYWZlIHRvIGFzc3VtZSB0aGF0IGFsbCB0YXJnZXRzIGFs
bG93IHNtYWxsIG9mZnNldHMgKGxpa2UsIDAuLjcpIGZvciBBZGRyLCBTdGFjaywgYW5kCi0gICAg
Ly8gQ2FsbEFyZy4KLSAgICBBcmcgd2l0aE9mZnNldChpbnQ2NF90IGFkZGl0aW9uYWxPZmZzZXQp
IGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIWhhc09mZnNldCgpKQotICAgICAgICAgICAgcmV0
dXJuIEFyZygpOwotICAgICAgICBpZiAoc3VtT3ZlcmZsb3dzPGludDY0X3Q+KG9mZnNldCgpLCBh
ZGRpdGlvbmFsT2Zmc2V0KSkKLSAgICAgICAgICAgIHJldHVybiBBcmcoKTsKLSAgICAgICAgc3dp
dGNoIChraW5kKCkpIHsKLSAgICAgICAgY2FzZSBBZGRyOgotICAgICAgICAgICAgcmV0dXJuIGFk
ZHIoYmFzZSgpLCBvZmZzZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAgICBjYXNlIFN0
YWNrOgotICAgICAgICAgICAgcmV0dXJuIHN0YWNrKHN0YWNrU2xvdCgpLCBvZmZzZXQoKSArIGFk
ZGl0aW9uYWxPZmZzZXQpOwotICAgICAgICBjYXNlIENhbGxBcmc6Ci0gICAgICAgICAgICByZXR1
cm4gY2FsbEFyZyhvZmZzZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAgICBjYXNlIElu
ZGV4OgotICAgICAgICAgICAgcmV0dXJuIGluZGV4KGJhc2UoKSwgaW5kZXgoKSwgc2NhbGUoKSwg
b2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0KTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm4gQXJn
KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkSW1tRm9ybShp
bnQ2NF90IHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGlzWDg2KCkpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZ0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZ0lubGluZXMuaAkocmV2aXNpb24gMjAxNzE2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmdJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTg0LDYgKzg0LDg4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ1RoaW5nSGVs
cGVyPEFyZz4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ1RoaW5nSGVscGVy
PFN0YWNrU2xvdCo+IHsKKyAgICBzdGF0aWMgYm9vbCBpcyhjb25zdCBBcmcmIGFyZykKKyAgICB7
CisgICAgICAgIHJldHVybiBhcmcuaXNTdGFjaygpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
U3RhY2tTbG90KiBhcyhjb25zdCBBcmcmIGFyZykKKyAgICB7CisgICAgICAgIHJldHVybiBhcmcu
c3RhY2tTbG90KCk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+
CisgICAgc3RhdGljIHZvaWQgZm9yRWFjaEZhc3QoQXJnJiBhcmcsIGNvbnN0IEZ1bmN0b3ImIGZ1
bmN0b3IpCisgICAgeworICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKCkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIAorICAgICAgICBTdGFja1Nsb3QqIHN0YWNrU2xvdCA9IGFyZy5zdGFj
a1Nsb3QoKTsKKyAgICAgICAgZnVuY3RvcihzdGFja1Nsb3QpOworICAgICAgICBhcmcgPSBBcmc6
OnN0YWNrKHN0YWNrU2xvdCwgYXJnLm9mZnNldCgpKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEFyZyYgYXJnLCBB
cmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgsIGNvbnN0IEZ1
bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKCkpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBTdGFja1Nsb3QqIHN0YWNrU2xvdCA9
IGFyZy5zdGFja1Nsb3QoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdh
eSB0b28gb3B0aW1pc3RpYyBhYm91dCB0aGUgbWVhbmluZyBvZiAiRGVmIi4gSXQgZ2V0cyBsdWNr
eSBmb3IKKyAgICAgICAgLy8gbm93IGJlY2F1c2Ugb3VyIG9ubHkgdXNlIG9mICJBbm9ueW1vdXMi
IHN0YWNrIHNsb3RzIGhhcHBlbnMgdG8gd2FudCB0aGUgb3B0aW1pc3RpYworICAgICAgICAvLyBz
ZW1hbnRpY3MuIFdlIGNvdWxkIGZpeCB0aGlzIGJ5IGp1c3QgY2hhbmdpbmcgdGhlIGNvbW1lbnRz
IHRoYXQgZGVzY3JpYmUgdGhlCisgICAgICAgIC8vIHNlbWFudGljcyBvZiAiQW5vbnltb3VzIi4K
KyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTEy
OAorICAgICAgICAKKyAgICAgICAgZnVuY3RvcihzdGFja1Nsb3QsIHJvbGUsIHR5cGUsIHdpZHRo
KTsKKyAgICAgICAgYXJnID0gQXJnOjpzdGFjayhzdGFja1Nsb3QsIGFyZy5vZmZzZXQoKSk7Cisg
ICAgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJnVGhpbmdIZWxwZXI8UmVnPiB7CisgICAg
c3RhdGljIGJvb2wgaXMoY29uc3QgQXJnJiBhcmcpCisgICAgeworICAgICAgICByZXR1cm4gYXJn
LmlzUmVnKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBSZWcgYXMoY29uc3QgQXJnJiBhcmcp
CisgICAgeworICAgICAgICByZXR1cm4gYXJnLnJlZygpOworICAgIH0KKyAgICAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHN0YXRpYyB2b2lkIGZvckVhY2hGYXN0KEFyZyYg
YXJnLCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgYXJnLmZvckVhY2hU
bXBGYXN0KAorICAgICAgICAgICAgWyZdIChUbXAmIHRtcCkgeworICAgICAgICAgICAgICAgIGlm
ICghdG1wLmlzUmVnKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBSZWcgcmVnID0gdG1wLnJlZygpOworICAgICAgICAgICAg
ICAgIGZ1bmN0b3IocmVnKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAocmVnKTsKKyAgICAg
ICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgor
ICAgIHN0YXRpYyB2b2lkIGZvckVhY2goQXJnJiBhcmcsIEFyZzo6Um9sZSBhcmdSb2xlLCBBcmc6
OlR5cGUgYXJnVHlwZSwgQXJnOjpXaWR0aCBhcmdXaWR0aCwgY29uc3QgRnVuY3RvciYgZnVuY3Rv
cikKKyAgICB7CisgICAgICAgIGFyZy5mb3JFYWNoVG1wKAorICAgICAgICAgICAgYXJnUm9sZSwg
YXJnVHlwZSwgYXJnV2lkdGgsCisgICAgICAgICAgICBbJl0gKFRtcCYgdG1wLCBBcmc6OlJvbGUg
cm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIXRtcC5pc1JlZygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgUmVnIHJlZyA9IHRtcC5yZWcoKTsKKyAgICAgICAg
ICAgICAgICBmdW5jdG9yKHJlZywgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAgICAgICAgICAg
IHRtcCA9IFRtcChyZWcpOworICAgICAgICAgICAgfSk7CisgICAgfQorfTsKKwogdGVtcGxhdGU8
dHlwZW5hbWUgVGhpbmc+CiBib29sIEFyZzo6aXMoKSBjb25zdAogewpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWlyRHVtcEFzSlMuaCIK
KworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJBaXJDb2RlLmgiCisjaW5jbHVkZSAi
QWlySW5zdElubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVz
cGFjZSBBaXIgeworCituYW1lc3BhY2UgeworCitDU3RyaW5nIHZhck5hbWVGb3JCbG9ja0F0SW5k
ZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIHRvQ1N0cmluZygiYmIiLCBpbmRleCk7
Cit9CisKK0NTdHJpbmcgdmFyTmFtZShCYXNpY0Jsb2NrKiBibG9jaykKK3sKKyAgICByZXR1cm4g
dmFyTmFtZUZvckJsb2NrQXRJbmRleChibG9jay0+aW5kZXgoKSk7Cit9CisKK0NTdHJpbmcgdmFy
TmFtZUZvclN0YWNrU2xvdEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIHRv
Q1N0cmluZygic2xvdCIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFN0YWNrU2xvdCog
c2xvdCkKK3sKKyAgICByZXR1cm4gdmFyTmFtZUZvclN0YWNrU2xvdEF0SW5kZXgoc2xvdC0+aW5k
ZXgoKSk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShSZWcgcmVnKQoreworICAgIHJldHVybiB0b0NT
dHJpbmcoIlJlZy4iLCByZWcuZGVidWdOYW1lKCkpOworfQorCitDU3RyaW5nIHZhck5hbWVGb3JU
bXBXaXRoVHlwZUFuZEluZGV4KEFyZzo6VHlwZSB0eXBlLCB1bnNpZ25lZCBpbmRleCkKK3sKKyAg
ICByZXR1cm4gdG9DU3RyaW5nKHR5cGUgPT0gQXJnOjpGUCA/ICJmIiA6ICIiLCAidG1wIiwgaW5k
ZXgpOworfQorCitDU3RyaW5nIHZhck5hbWUoVG1wIHRtcCkKK3sKKyAgICBpZiAodG1wLmlzUmVn
KCkpCisgICAgICAgIHJldHVybiB2YXJOYW1lKHRtcC5yZWcoKSk7CisgICAgcmV0dXJuIHZhck5h
bWVGb3JUbXBXaXRoVHlwZUFuZEluZGV4KEFyZyh0bXApLnR5cGUoKSwgdG1wLnRtcEluZGV4KCkp
OworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwordm9pZCBkdW1wQXNKUyhDb2RlJiBj
b2RlLCBQcmludFN0cmVhbSYgb3V0KQoreworICAgIG91dC5wcmludGxuKCJsZXQgY29kZSA9IG5l
dyBDb2RlKCk7Iik7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvZGUuc2l6
ZSgpOyArK2kpCisgICAgICAgIG91dC5wcmludGxuKCJsZXQgIiwgdmFyTmFtZUZvckJsb2NrQXRJ
bmRleChpKSwgIiA9IGNvZGUuYWRkQmxvY2soKTsiKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgY29kZS5zdGFja1Nsb3RzKCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgU3Rh
Y2tTbG90KiBzbG90ID0gY29kZS5zdGFja1Nsb3RzKClbaV07CisgICAgICAgIGlmIChzbG90KQor
ICAgICAgICAgICAgb3V0LnByaW50bG4oImxldCAiLCB2YXJOYW1lKHNsb3QpLCAiID0gY29kZS5h
ZGRTdGFja1Nsb3QoIiwgc2xvdC0+Ynl0ZVNpemUoKSwgIiwgIiwgc2xvdC0+a2luZCgpLCAiKTsi
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50bG4oImNvZGUuYWRkU3RhY2tT
bG90KDEsIFNwaWxsKTsiKTsKKyAgICB9CisgICAgCisgICAgQXJnOjpmb3JFYWNoVHlwZSgKKyAg
ICAgICAgWyZdIChBcmc6OlR5cGUgdHlwZSkgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gY29kZS5udW1UbXBzKHR5cGUpOyBpLS07KSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50
bG4oCisgICAgICAgICAgICAgICAgICAgICJsZXQgIiwgdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5k
SW5kZXgodHlwZSwgaSksICIgPSBjb2RlLm5ld1RtcCgiLCB0eXBlLCAiKTsiKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSk7CisgICAgCisgICAgb3V0LnByaW50bG4oImxldCBpbnN0OyIpOwor
ICAgIG91dC5wcmludGxuKCJsZXQgYXJnOyIpOworICAgIAorICAgIGZvciAoQmFzaWNCbG9jayog
YmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGZvciAoRnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6
IGJsb2NrLT5zdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAg
ICAgICAgICAgIHZhck5hbWUoYmxvY2spLCAiLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRl
ZEJsb2NrKCIsCisgICAgICAgICAgICAgICAgdmFyTmFtZShzdWNjZXNzb3IuYmxvY2soKSksICIs
ICIsIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSwgIikpOyIpOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHByZWRlY2Vzc29yIDogYmxvY2stPnByZWRlY2Vzc29y
cygpKQorICAgICAgICAgICAgb3V0LnByaW50bG4odmFyTmFtZShibG9jayksICIucHJlZGVjZXNz
b3JzLnB1c2goIiwgdmFyTmFtZShwcmVkZWNlc3NvciksICIpOyIpOworICAgICAgICAKKyAgICAg
ICAgZm9yIChJbnN0JiBpbnN0IDogKmJsb2NrKSB7CisgICAgICAgICAgICBvdXQucHJpbnRsbigi
aW5zdCA9IG5ldyBJbnN0KCIsIGluc3Qub3Bjb2RlLCAiKTsiKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKAorICAgICAgICAgICAgICAgIFsmXSAoQXJnJiBhcmcs
IEFyZzo6Um9sZSwgQXJnOjpUeXBlLCBBcmc6OldpZHRoKSB7CisgICAgICAgICAgICAgICAgICAg
IHN3aXRjaCAoYXJnLmtpbmQoKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6SW52
YWxpZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6VG1wOgorICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVUbXAoIiwgdmFyTmFtZShhcmcu
dG1wKCkpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpJbW06CisgICAg
ICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUltbSgiLCBh
cmcudmFsdWUoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6QmlnSW1t
OgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVC
aWdJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBB
cmc6OkJpdEltbToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBB
cmcuY3JlYXRlQml0SW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmlu
dGxuKCJhcmcgPSBBcmcuY3JlYXRlQml0SW1tNjQoIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkFkZHI6CisgICAgICAgICAgICAgICAgICAgICAg
ICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnID0gQXJnLmNy
ZWF0ZUFkZHIoIiwgdmFyTmFtZShhcmcuYmFzZSgpKSwgIiwgIiwgYXJnLm9mZnNldCgpLCAiKTsi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpTdGFjazoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmcg
PSBBcmcuY3JlYXRlU3RhY2soIiwgdmFyTmFtZShhcmcuc3RhY2tTbG90KCkpLCAiLCAiLCBhcmcu
b2Zmc2V0KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkNhbGxBcmc6
CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUNh
bGxBcmcoIiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
QXJnOjpJbmRleDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJhcmcgPSBBcmcuY3JlYXRlSW5kZXgoIiwgdmFyTmFtZShh
cmcuYmFzZSgpKSwgIiwgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJOYW1lKGFy
Zy5pbmRleCgpKSwgIiwgIiwgYXJnLnNjYWxlKCksICIsICIsIGFyZy5vZmZzZXQoKSwgIik7Iik7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6UmVsQ29uZDoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZCgiLCBhcmcuYXNS
ZWxhdGlvbmFsQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBB
cmc6OlJlc0NvbmQ6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0g
QXJnLmNyZWF0ZVJlc0NvbmQoIiwgYXJnLmFzUmVzdWx0Q29uZGl0aW9uKCksICIpOyIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkRvdWJsZUNvbmQ6CisgICAgICAgICAgICAgICAg
ICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoIiwgYXJnLmFz
RG91YmxlQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6
OlNwZWNpYWw6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBKUy1BaXIgZG9lc24ndCBoYXZl
IFNwZWNpYWxzLgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OldpZHRoQXJnOgorICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVXaWR0aEFy
ZygiLCBhcmcud2lkdGgoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgb3V0LnByaW50bG4oImluc3QuYXJncy5wdXNoKGFyZyk7Iik7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbnN0Lm9wY29kZSA9PSBQ
YXRjaCkgeworICAgICAgICAgICAgICAgIGlmIChpbnN0Lmhhc05vbkFyZ0VmZmVjdHMoKSkKKyAg
ICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3Rz
ID0gdHJ1ZTsiKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRs
bigiaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsiKTsKKyAgICAgICAg
ICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
Iik7CisgICAgICAgICAgICAgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncygpLmZvckVh
Y2goCisgICAgICAgICAgICAgICAgICAgIFsmXSAoUmVnIHJlZykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRkKCIs
IHZhck5hbWUocmVnKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzKCkuZm9yRWFjaCgKKyAgICAgICAgICAgICAg
ICAgICAgWyZdIChSZWcgcmVnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRs
bigiaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKCIsIHZhck5hbWUocmVnKSwgIik7Iik7Cisg
ICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgICAgICBvdXQucHJpbnRsbih2YXJOYW1lKGJsb2NrKSwgIi5hcHBlbmQoaW5zdCk7Iik7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK30gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKwor
I2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRHVtcEFzSlMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckR1bXBBc0pTLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckR1bXBBc0pTLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFp
ckR1bXBBc0pTX2gKKyNkZWZpbmUgQWlyRHVtcEFzSlNfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkK
KworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisKK2NsYXNzIENvZGU7CisKKy8vIFRoaXMgaXMgYSBq
b2tlLiBWYXJpb3VzIG9wZXJhdGlvbnMgb24gQWlyIGFyZSBpbnRlcmVzdGluZyBmcm9tIGEgYmVu
Y2htYXJraW5nIHN0YW5kcG9pbnQuIFdlIGNhbgorLy8gd3JpdGUgc29tZSBBaXIgcGhhc2VzIGlu
IEpTIGFuZCB0aGVuIHVzZSB0aGF0IHRvIGJlbmNobWFyayBKUy4KK3ZvaWQgZHVtcEFzSlMoQ29k
ZSYsIFByaW50U3RyZWFtJik7CisKK30gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKwor
I2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBBaXJEdW1wQXNKU19oCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhPYnZpb3Vz
U3BpbGxzLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJGaXhPYnZpb3VzU3BpbGxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIK
ICNpbmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKICNpbmNs
dWRlICJBaXJQaGFzZVNjb3BlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIkFpckFsbG9jYXRlU3RhY2suaCIKICNpbmNsdWRlICJBaXJDb2Rl
LmgiCisjaW5jbHVkZSAiQWlyRHVtcEFzSlMuaCIKICNpbmNsdWRlICJBaXJFbGltaW5hdGVEZWFk
Q29kZS5oIgogI2luY2x1ZGUgIkFpckZpeE9idmlvdXNTcGlsbHMuaCIKICNpbmNsdWRlICJBaXJG
aXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuaCIKQEAgLTEwMiw2ICsxMDMsMTEgQEAgdm9pZCBwcmVw
YXJlRm9yR2VuZXJhdGlvbihDb2RlJiBjb2RlKQogICAgIC8vIFByaW9yIHRvIHRoaXMgcG9pbnQg
dGhlIHByb2xvZ3VlIGFuZCBlcGlsb2d1ZSBpcyBpbXBsaWNpdC4gVGhpcyBtYWtlcyBpdCBleHBs
aWNpdC4gSXQgYWxzbwogICAgIC8vIGRvZXMgdGhpbmdzIGxpa2UgaWRlbnRpZnkgd2hpY2ggY2Fs
bGVlLXNhdmVzIHdlJ3JlIHVzaW5nIGFuZCBzYXZlcyB0aGVtLgogICAgIGhhbmRsZUNhbGxlZVNh
dmVzKGNvZGUpOworICAgIAorICAgIGlmIChPcHRpb25zOjpkdW1wQWlyQXNKU0JlZm9yZUFsbG9j
YXRlU3RhY2soKSkgeworICAgICAgICBkYXRhTG9nKCJEdW1waW5nIEFpciBhcyBKUyBiZWZvcmUg
YWxsb2NhdGVTdGFjazpcbiIpOworICAgICAgICBkdW1wQXNKUyhjb2RlLCBXVEY6OmRhdGFGaWxl
KCkpOworICAgIH0KIAogICAgIC8vIFRoaXMgdHVybnMgYWxsIFN0YWNrIGFuZCBDYWxsQXJnIEFy
Z3MgaW50byBBZGRyIGFyZ3MgdGhhdCB1c2UgdGhlIGZyYW1lIHBvaW50ZXIuIEl0IGRvZXMKICAg
ICAvLyB0aGlzIGJ5IGZpcnN0LWZpdCBhbGxvY2F0aW5nIHN0YWNrIHNsb3RzLiBJdCBzaG91bGQg
YmUgcHJldHR5IGRhcm4gY2xvc2UgdG8gb3B0aW1hbCwgc28gd2UKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgJKHJldmlzaW9uIDIwMTcxNikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNjUgKzM2LDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeyBuYW1lc3BhY2UgQWlyIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEZvckVh
Y2g7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNoPFRtcD4gewotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQgZm9yRWFjaChJbnN0JiBpbnN0LCBjb25zdCBG
dW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAgICAgaW5zdC5mb3JFYWNoVG1wKGZ1bmN0b3Ip
OwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8QXJnPiB7Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEluc3QmIGlu
c3QsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAgICAgICBpbnN0LmZvckVhY2hB
cmcoZnVuY3Rvcik7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxTdGFj
a1Nsb3QqPiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9p
ZCBmb3JFYWNoKEluc3QmIGluc3QsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAg
ICAgICBpbnN0LmZvckVhY2hBcmcoCi0gICAgICAgICAgICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJv
bGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIWFyZy5pc1N0YWNrKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgICAgICBTdGFja1Nsb3QqIHN0YWNrU2xvdCA9IGFyZy5zdGFja1Nsb3QoKTsKLQot
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdheSB0b28gb3B0aW1pc3RpYyBhYm91
dCB0aGUgbWVhbmluZyBvZiAiRGVmIi4gSXQgZ2V0cyBsdWNreSBmb3IKLSAgICAgICAgICAgICAg
ICAvLyBub3cgYmVjYXVzZSBvdXIgb25seSB1c2Ugb2YgIkFub255bW91cyIgc3RhY2sgc2xvdHMg
aGFwcGVucyB0byB3YW50IHRoZSBvcHRpbWlzdGljCi0gICAgICAgICAgICAgICAgLy8gc2VtYW50
aWNzLiBXZSBjb3VsZCBmaXggdGhpcyBieSBqdXN0IGNoYW5naW5nIHRoZSBjb21tZW50cyB0aGF0
IGRlc2NyaWJlIHRoZQotICAgICAgICAgICAgICAgIC8vIHNlbWFudGljcyBvZiAiQW5vbnltb3Vz
Ii4KLSAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUxMTI4Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZnVuY3Rvcihz
dGFja1Nsb3QsIHJvbGUsIHR5cGUsIHdpZHRoKTsKLSAgICAgICAgICAgICAgICBhcmcgPSBBcmc6
OnN0YWNrKHN0YWNrU2xvdCwgYXJnLm9mZnNldCgpKTsKLSAgICAgICAgICAgIH0pOwotICAgIH0K
LX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8UmVnPiB7Ci0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEluc3QmIGluc3QsIGNvbnN0
IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAgICAgICBpbnN0LmZvckVhY2hUbXAoCi0gICAg
ICAgICAgICBbJl0gKFRtcCYgdG1wLCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFy
Zzo6V2lkdGggd2lkdGgpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXRtcC5pc1JlZygpKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBSZWcgcmVnID0gdG1w
LnJlZygpOwotICAgICAgICAgICAgICAgIGZ1bmN0b3IocmVnLCByb2xlLCB0eXBlLCB3aWR0aCk7
Ci0gICAgICAgICAgICAgICAgdG1wID0gVG1wKHJlZyk7Ci0gICAgICAgICAgICB9KTsKLSAgICB9
Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUaGluZywgdHlwZW5hbWUgRnVuY3Rvcj4KIHZvaWQg
SW5zdDo6Zm9yRWFjaChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQogewotICAgIEZvckVhY2g8VGhp
bmc+Ojpmb3JFYWNoKCp0aGlzLCBmdW5jdG9yKTsKKyAgICBmb3JFYWNoQXJnKAorICAgICAgICBb
Jl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGgg
d2lkdGgpIHsKKyAgICAgICAgICAgIGFyZy5mb3JFYWNoPFRoaW5nPihyb2xlLCB0eXBlLCB3aWR0
aCwgZnVuY3Rvcik7CisgICAgICAgIH0pOwogfQogCiBpbmxpbmUgY29uc3QgUmVnaXN0ZXJTZXQm
IEluc3Q6OmV4dHJhQ2xvYmJlcmVkUmVncygpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckxvZ1JlZ2lzdGVyUHJlc3N1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG9nUmVnaXN0ZXJQcmVzc3VyZS5jcHAJKHJldmlzaW9u
IDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG9nUmVnaXN0ZXJQ
cmVzc3VyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJM
RShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29k
ZS5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyTGl2ZW5lc3Mu
aCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUmVwb3J0VXNlZFJlZ2lz
dGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJS
ZXBvcnRVc2VkUmVnaXN0ZXJzLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJSZXBvcnRVc2VkUmVnaXN0ZXJzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFp
ckFyZ0lubGluZXMuaCIKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zdElu
bGluZXMuaCIKICNpbmNsdWRlICJBaXJMaXZlbmVzcy5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BpbGxFdmVyeXRoaW5nLmNwcAkocmV2aXNpb24g
MjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNf
SklUKQogCisjaW5jbHVkZSAiQWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIK
ICNpbmNsdWRlICJBaXJJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5o
IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVy
YXRvci5yYgkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9vcGNvZGVfZ2VuZXJhdG9yLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xMDkwLDMgKzEwOTAsOTYg
QEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgb3V0cC5wdXRzICJ9IH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMzo6QWlyIgogfQogCisjIFRoaXMgaXMgYSBoYWNrIGZvciBKU0Fpci4g
SXQncyBhIGpva2UuCitGaWxlLm9wZW4oIkpTQWlyX29wY29kZS5qcyIsICJ3IikgeworICAgIHwg
b3V0cCB8CisgICAgb3V0cC5wdXRzICJcInVzZSBzdHJpY3RcIjsiCisgICAgb3V0cC5wdXRzICIv
LyBHZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYiBmcm9tICN7JGZpbGVOYW1lfSAtLSBk
byBub3QgZWRpdCEiCisgICAgCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8
IG9wY29kZSB8CisgICAgICAgIG91dHAucHV0cyAiY29uc3QgI3tvcGNvZGUubmFtZX0gPSBTeW1i
b2woI3tvcGNvZGUubmFtZS5pbnNwZWN0fSk7IgorICAgIH0KKyAgICAKKyAgICBvdXRwLnB1dHMg
ImZ1bmN0aW9uIEluc3RfZm9yRWFjaEFyZyhpbnN0LCBmdW5jKSIKKyAgICBvdXRwLnB1dHMgInsi
CisgICAgb3V0cC5wdXRzICJsZXQgcmVwbGFjZW1lbnQ7IgorICAgIG91dHAucHV0cyAic3dpdGNo
IChpbnN0Lm9wY29kZSkgeyIKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwg
b3Bjb2RlIHwKKyAgICAgICAgb3V0cC5wdXRzICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAg
ICAgaWYgb3Bjb2RlLmN1c3RvbQorICAgICAgICAgICAgb3V0cC5wdXRzICIje29wY29kZS5uYW1l
fUN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOyIKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbmVlZE92ZXJsb2FkU3dpdGNoID0gb3Bjb2RlLm92ZXJsb2Fkcy5zaXplICE9IDEKKyAgICAg
ICAgICAgIG91dHAucHV0cyAic3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7IiBpZiBuZWVkT3Zl
cmxvYWRTd2l0Y2gKKyAgICAgICAgICAgIG9wY29kZS5vdmVybG9hZHMuZWFjaCB7CisgICAgICAg
ICAgICAgICAgfCBvdmVybG9hZCB8CisgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJjYXNlICN7
b3ZlcmxvYWQuc2lnbmF0dXJlLmxlbmd0aH06IiBpZiBuZWVkT3ZlcmxvYWRTd2l0Y2gKKyAgICAg
ICAgICAgICAgICBvdmVybG9hZC5zaWduYXR1cmUuZWFjaF93aXRoX2luZGV4IHsKKyAgICAgICAg
ICAgICAgICAgICAgfCBhcmcsIGluZGV4IHwKKyAgICAgICAgICAgICAgICAgICAgcm9sZSA9IG5p
bAorICAgICAgICAgICAgICAgICAgICBjYXNlIGFyZy5yb2xlCisgICAgICAgICAgICAgICAgICAg
IHdoZW4gIlUiCisgICAgICAgICAgICAgICAgICAgICAgICByb2xlID0gIlVzZSIKKyAgICAgICAg
ICAgICAgICAgICAgd2hlbiAiRCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiRGVm
IgorICAgICAgICAgICAgICAgICAgICB3aGVuICJaRCIKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJvbGUgPSAiWkRlZiIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiVUQiCisgICAgICAgICAg
ICAgICAgICAgICAgICByb2xlID0gIlVzZURlZiIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAi
VVpEIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJVc2VaRGVmIgorICAgICAgICAg
ICAgICAgICAgICB3aGVuICJVQSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNl
QWRkciIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiUyIKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJvbGUgPSAiU2NyYXRjaCIKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBvdXRwLnB1dHMgImlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWyN7aW5kZXh9XSwgQXJnLiN7cm9sZX0sICN7YXJnLnR5cGV9UCwg
I3thcmcud2lkdGh9KSkiCisgICAgICAgICAgICAgICAgICAgIG91dHAucHV0cyAiaW5zdC5hcmdz
WyN7aW5kZXh9XSA9IHJlcGxhY2VtZW50OyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiBuZWVkT3ZlcmxvYWRTd2l0Y2gKKyAgICAgICAgICAgICAgICBv
dXRwLnB1dHMgImRlZmF1bHQ6IgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAidGhyb3cgXCJC
YWQgb3ZlcmxvYWRcIjsiCisgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJicmVhazsiCisgICAg
ICAgICAgICAgICAgb3V0cC5wdXRzICJ9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAor
ICAgICAgICBvdXRwLnB1dHMgImJyZWFrOyIKKyAgICB9CisgICAgb3V0cC5wdXRzICJkZWZhdWx0
OiIKKyAgICBvdXRwLnB1dHMgInRocm93IFwiQmFkIG9wY29kZVwiOyIKKyAgICBvdXRwLnB1dHMg
In0iCisgICAgb3V0cC5wdXRzICJ9IgorICAgIAorICAgIG91dHAucHV0cyAiZnVuY3Rpb24gSW5z
dF9oYXNOb25BcmdFZmZlY3RzKGluc3QpIgorICAgIG91dHAucHV0cyAieyIKKyAgICBvdXRwLnB1
dHMgInN3aXRjaCAoaW5zdC5vcGNvZGUpIHsiCisgICAgZm91bmRUcnVlID0gZmFsc2UKKyAgICAk
b3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwKKyAgICAgICAgaWYgb3Bj
b2RlLmF0dHJpYnV0ZXNbOnRlcm1pbmFsXSBvciBvcGNvZGUuYXR0cmlidXRlc1s6ZWZmZWN0c10K
KyAgICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAg
ICBmb3VuZFRydWUgPSB0cnVlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBpZiBmb3VuZFRydWUK
KyAgICAgICAgb3V0cC5wdXRzICJyZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisgICAgJG9wY29kZXMu
dmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5jdXN0
b20KKyAgICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAg
ICAgICBvdXRwLnB1dHMgInJldHVybiAje29wY29kZS5uYW1lfUN1c3RvbS5oYXNOb25BcmdOb25D
b250cm9sRWZmZWN0cyhpbnN0KTsiCisgICAgICAgIGVuZAorICAgIH0KKyAgICBvdXRwLnB1dHMg
ImRlZmF1bHQ6IgorICAgIG91dHAucHV0cyAicmV0dXJuIGZhbHNlOyIKKyAgICBvdXRwLnB1dHMg
In0iCisgICAgb3V0cC5wdXRzICJ9IgorfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcu
Y3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDE1IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitj
b25zdCBjaGFyKiBSZWc6OmRlYnVnTmFtZSgpIGNvbnN0Cit7CisgICAgaWYgKCEqdGhpcykKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlzR1BSKCkpCisgICAgICAgIHJldHVybiBH
UFJJbmZvOjpkZWJ1Z05hbWUoZ3ByKCkpOworICAgIHJldHVybiBGUFJJbmZvOjpkZWJ1Z05hbWUo
ZnByKCkpOworfQorCiB2b2lkIFJlZzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewog
ICAgIGlmICghKnRoaXMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHJldmlzaW9uIDIw
MTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE3Miw2ICsxNzIsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2luZGV4OwogICAg
IH0KICAgICAKKyAgICBjb25zdCBjaGFyKiBkZWJ1Z05hbWUoKSBjb25zdDsKKyAgICAKICAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKIAogICAgIGNsYXNzIEFsbFJlZ3NJdGVyYWJs
ZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCShy
ZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVy
cm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw0ICsxMjEsNTEgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCiAKK25hbWVzcGFjZSBXVEYgeworCitpbmxpbmUgdm9pZCBwcmludElu
dGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQzo6UGFyc2VyRXJyb3I6OlN5bnRheEVycm9yVHlw
ZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJv
cjo6U3ludGF4RXJyb3JOb25lOgorICAgICAgICBvdXQucHJpbnQoIlN5bnRheEVycm9yTm9uZSIp
OworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpTeW50YXhFcnJv
cklycmVjb3ZlcmFibGU6CisgICAgICAgIG91dC5wcmludCgiU3ludGF4RXJyb3JJcnJlY292ZXJh
YmxlIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6OlN5bnRh
eEVycm9yVW50ZXJtaW5hdGVkTGl0ZXJhbDoKKyAgICAgICAgb3V0LnByaW50KCJTeW50YXhFcnJv
clVudGVybWluYXRlZExpdGVyYWwiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQ
YXJzZXJFcnJvcjo6U3ludGF4RXJyb3JSZWNvdmVyYWJsZToKKyAgICAgICAgb3V0LnByaW50KCJT
eW50YXhFcnJvclJlY292ZXJhYmxlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworaW5saW5lIHZvaWQgcHJpbnRJ
bnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OlBhcnNlckVycm9yOjpFcnJvclR5cGUgdHlw
ZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6OkVy
cm9yTm9uZToKKyAgICAgICAgb3V0LnByaW50KCJFcnJvck5vbmUiKTsKKyAgICAgICAgcmV0dXJu
OworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3RhY2tPdmVyZmxvdzoKKyAgICAgICAgb3V0
LnByaW50KCJTdGFja092ZXJmbG93Iik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6
UGFyc2VyRXJyb3I6OkV2YWxFcnJvcjoKKyAgICAgICAgb3V0LnByaW50KCJFdmFsRXJyb3IiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6T3V0T2ZNZW1vcnk6
CisgICAgICAgIG91dC5wcmludCgiT3V0T2ZNZW1vcnkiKTsKKyAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3I6CisgICAgICAgIG91dC5wcmludCgi
U3ludGF4RXJyb3IiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogI2VuZGlm
IC8vIFBhcnNlckVycm9yX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zLmgJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzY4LDYgKzM2OCw4IEBAIHR5cGVkZWYgY29u
c3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIHYoYm9vbCwgZHVtcE1vZHVsZUxvYWRpbmdTdGF0
ZSwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgZXhwb3NlSW50ZXJuYWxN
b2R1bGVMb2FkZXIsIGZhbHNlLCBOb3JtYWwsICJleHBvc2UgdGhlIGludGVybmFsIG1vZHVsZSBs
b2FkZXIgb2JqZWN0IHRvIHRoZSBnbG9iYWwgc3BhY2UgZm9yIGRlYnVnZ2luZyIpIFwKICAgICBc
CisgICAgdihib29sLCBkdW1wQWlyQXNKU0JlZm9yZUFsbG9jYXRlU3RhY2ssIGZhbHNlLCBOb3Jt
YWwsIG51bGxwdHIpIFwKKyAgICBcCiAgICAgdihib29sLCB1c2VTdXBlclNhbXBsZXIsIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpCiAKIGVudW0gT3B0aW9uRXF1aXZhbGVuY2UgewpJbmRleDogU291
cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9Q
cmludFN0cmVhbS5oCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvV1RGL3d0Zi9QcmludFN0
cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCwxMyBAQCBwdWJsaWM6CiAgICAgICAg
IHByaW50SW50ZXJuYWwoKnRoaXMsIHZhbHVlKTsKICAgICAgICAgcHJpbnQocmVtYWluaW5nVmFs
dWVzLi4uKTsKICAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+Cisg
ICAgdm9pZCBwcmludGxuKGNvbnN0IFR5cGVzJi4uLiB2YWx1ZXMpCisgICAgeworICAgICAgICBw
cmludCh2YWx1ZXMuLi4pOworICAgICAgICBwcmludCgiXG4iKTsKKyAgICB9CiB9OwogCiBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgY29uc3QgY2hh
ciopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280666</attachid>
            <date>2016-06-06 20:37:01 -0700</date>
            <delta_ts>2016-06-07 12:11:59 -0700</delta_ts>
            <desc>added customs</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>167275</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYWxsLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvYWxsLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9hbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorInVzZSBzdHJp
Y3QiOworCitsb2FkKCJzeW1ib2xzLmpzIik7Citsb2FkKCJ0bXBfYmFzZS5qcyIpOworbG9hZCgi
YXJnLmpzIik7Citsb2FkKCJiYXNpY19ibG9jay5qcyIpOworbG9hZCgiY29kZS5qcyIpOworbG9h
ZCgiZnJlcXVlbnRlZF9ibG9jay5qcyIpOworbG9hZCgiaW5zdC5qcyIpOworbG9hZCgib3Bjb2Rl
LmpzIik7Citsb2FkKCJyZWcuanMiKTsKK2xvYWQoInN0YWNrX3Nsb3QuanMiKTsKK2xvYWQoInRt
cC5qcyIpOworbG9hZCgidXRpbC5qcyIpOworCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWly
L2FyZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FyZy5qcwkocmV2
aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsOTI2IEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIEFyZyB7CisgICAgY29uc3RydWN0b3IoKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fa2luZCA9IEFyZy5JbnZhbGlkOworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgaXNBbnlVc2Uocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgewor
ICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAg
IGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2Fz
ZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNh
c2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBB
cmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRy
OgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNDb2xkVXNlKHJvbGUpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToK
KyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAg
IGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNh
c2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNl
QWRkcjoKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlE
ZWY6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgc3RhdGljIGlzV2FybVVzZShyb2xlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFyZy5p
c0FueVVzZShyb2xlKSAmJiAhQXJnLmlzQ29sZFVzZShyb2xlKTsKKyAgICB9CisgICAgCisgICAg
c3RhdGljIGNvb2xlZChyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKQorICAgICAg
ICB7CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xk
VXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6
CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAg
Y2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2Fz
ZSBBcmcuRWFybHlEZWY6CisgICAgICAgICAgICByZXR1cm4gcm9sZTsKKyAgICAgICAgY2FzZSBB
cmcuVXNlOgorICAgICAgICAgICAgcmV0dXJuIEFyZy5Db2xkVXNlOworICAgICAgICBjYXNlIEFy
Zy5MYXRlVXNlOgorICAgICAgICAgICAgcmV0dXJuIEFyZy5MYXRlQ29sZFVzZTsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHN0YXRpYyBpc0Vhcmx5VXNlKHJvbGUpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFy
Zy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVz
ZVpEZWY6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuRGVmOgor
ICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAg
ICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAg
ICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGlj
IGlzTGF0ZVVzZShyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAg
IGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAg
ICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNh
c2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcu
VXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5EZWY6
CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAg
ICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOworICAg
ICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0FueURlZihyb2xlKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2Fz
ZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBB
cmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNl
RGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgor
ICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0
YXRpYyBpc0Vhcmx5RGVmKHJvbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAg
ICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBj
YXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNl
IEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRl
ZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRV
c2U6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVm
OgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7
CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzTGF0ZURlZihyb2xlKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAg
ICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAg
Y2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgIGNh
c2UgQXJnLlNjcmF0Y2g6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJn
LlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRl
ZjoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQorICAgIAor
ICAgIHN0YXRpYyBpc1pEZWYocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgewor
ICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAg
IGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNh
c2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5F
YXJseURlZjoKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuTGF0
ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLlpE
ZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgdHlwZUZvckIzVHlwZSh0eXBl
KQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgSW50MzI6Cisg
ICAgICAgIGNhc2UgSW50NjQ6CisgICAgICAgICAgICByZXR1cm4gR1A7CisgICAgICAgIGNhc2Ug
RmxvYXQ6CisgICAgICAgIGNhc2UgRG91YmxlOgorICAgICAgICAgICAgcmV0dXJuIEZQOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgQjMgdHlwZSIp
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyB3aWR0aEZvckIzVHlwZSh0eXBl
KQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgSW50MzI6Cisg
ICAgICAgIGNhc2UgRmxvYXQ6CisgICAgICAgICAgICByZXR1cm4gMzI7CisgICAgICAgIGNhc2Ug
SW50NjQ6CisgICAgICAgIGNhc2UgRG91YmxlOgorICAgICAgICAgICAgcmV0dXJuIDY0OworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgQjMgdHlwZSIp
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjb25zZXJ2YXRpdmVXaWR0aCh0
eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gR1AgPyBQdHIgOiA2NDsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIG1pbmltdW1XaWR0aCh0eXBlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHR5cGUgPT0gR1AgPyA4IDogMzI7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBieXRlcyh3
aWR0aCkKKyAgICB7CisgICAgICAgIHJldHVybiB3aWR0aCAvIDg7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyB3aWR0aEZvckJ5dGVzKGJ5dGVzKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChieXRl
cykgeworICAgICAgICBjYXNlIDA6CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVy
biA4OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXR1cm4gMTY7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmV0dXJuIDMyOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgaWYgKGJ5dGVzID4gOCkKKyAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkJhZCBudW1iZXIgb2YgYnl0ZXMiKTsKKyAgICAgICAgICAgIHJldHVybiA2
NDsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlVG1wKHRtcCkKKyAg
ICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2lu
ZCA9IEFyZy5UbXA7CisgICAgICAgIHJlc3VsdC5fdG1wID0gdG1wOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZnJvbVJlZyhyZWcpCisgICAgeworICAg
ICAgICByZXR1cm4gQXJnLmNyZWF0ZVRtcChyZWcpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
Y3JlYXRlSW1tKHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsK
KyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9
IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
Y3JlYXRlQmlnSW1tKHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmco
KTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkJpZ0ltbTsKKyAgICAgICAgcmVzdWx0Ll92
YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBz
dGF0aWMgY3JlYXRlQml0SW1tKHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkJpdEltbTsKKyAgICAgICAgcmVz
dWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgY3JlYXRlQml0SW1tNjQodmFsdWUpCisgICAgeworICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuQml0SW1tNjQ7Cisg
ICAgICAgIHJlc3VsdC5fdmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUFkZHIoYmFzZSwgb2Zmc2V0KQorICAgIHsKKyAg
ICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQorICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkFk
ZHI7CisgICAgICAgIHJlc3VsdC5fYmFzZSA9IGJhc2U7CisgICAgICAgIHJlc3VsdC5fb2Zmc2V0
ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0
aWMgY3JlYXRlU3RhY2soc2xvdCwgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA9
PSBudWxsKQorICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlN0YWNrOworICAgICAgICByZXN1
bHQuX3Nsb3QgPSBzbG90OworICAgICAgICByZXN1bHQuX29mZnNldCA9IG9mZnNldDsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUNhbGxBcmco
b2Zmc2V0KQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAg
cmVzdWx0Ll9raW5kID0gQXJnLkNhbGxBcmc7CisgICAgICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zm
c2V0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3Jl
YXRlU3RhY2tBZGRyKG9mZnNldEZyb21GUCwgZnJhbWVTaXplLCB3aWR0aCkKKyAgICB7CisgICAg
ICAgIGxldCByZXN1bHQgPSBBcmcuY3JlYXRlQWRkcihSZWcuY2FsbEZyYW1lUmVnaXN0ZXIsIG9m
ZnNldEZyb21GUCk7CisgICAgICAgIGlmICghcmVzdWx0LmlzVmFsaWRGcm9tKHdpZHRoKSkKKyAg
ICAgICAgICAgIHJlc3VsdCA9IEFyZy5jcmVhdGVBZGRyKFJlZy5zdGFja1BvaW50ZXJSZWdpc3Rl
ciwgb2Zmc2V0RnJvbUZQICsgZnJhbWVTaXplKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIGlzVmFsaWRTY2FsZShzY2FsZSwgd2lkdGgpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHNjYWxlKSB7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgY2FzZSAy
OgorICAgICAgICBjYXNlIDQ6CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBsb2dTY2FsZShzY2FsZSkKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAoc2NhbGUpIHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNl
IDQ6CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAg
cmV0dXJuIDM7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkJhZCBzY2FsZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVJ
bmRleChiYXNlLCBpbmRleCwgc2NhbGUsIG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChzY2Fs
ZSA9PSBudWxsKQorICAgICAgICAgICAgc2NhbGUgPSAxOworICAgICAgICBpZiAob2Zmc2V0ID09
IG51bGwpCisgICAgICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3
IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuSW5kZXg7CisgICAgICAgIHJlc3Vs
dC5fYmFzZSA9IGJhc2U7CisgICAgICAgIHJlc3VsdC5faW5kZXggPSBpbmRleDsKKyAgICAgICAg
cmVzdWx0Ll9zY2FsZSA9IHNjYWxlOworICAgICAgICByZXN1bHQuX29mZnNldCA9IG9mZnNldDsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVJl
bENvbmQoY29uZGl0aW9uKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsK
KyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlJlbENvbmQ7CisgICAgICAgIHJlc3VsdC5fY29u
ZGl0aW9uID0gY29uZGl0aW9uOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgY3JlYXRlUmVzQ29uZChjb25kaXRpb24pCisgICAgeworICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuUmVzQ29uZDsK
KyAgICAgICAgcmVzdWx0Ll9jb25kaXRpb24gPSBjb25kaXRpb247CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVEb3VibGVDb25kKGNvbmRpdGlv
bikKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3Vs
dC5fa2luZCA9IEFyZy5Eb3VibGVDb25kOworICAgICAgICByZXN1bHQuX2NvbmRpdGlvbiA9IGNv
bmRpdGlvbjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGlj
IGNyZWF0ZVdpZHRoKHdpZHRoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmco
KTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLldpZHRoOworICAgICAgICByZXN1bHQuX3dp
ZHRoID0gd2lkdGg7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIGdl
dCBraW5kKCkgeyByZXR1cm4gdGhpcy5fa2luZDsgfQorICAgIGdldCBpc1RtcCgpIHsgcmV0dXJu
IHRoaXMuX2tpbmQgPT0gQXJnLlRtcDsgfQorICAgIGdldCBpc0ltbSgpIHsgcmV0dXJuIHRoaXMu
X2tpbmQgPT0gQXJnLkltbTsgfQorICAgIGdldCBpc0JpZ0ltbSgpIHsgcmV0dXJuIHRoaXMuX2tp
bmQgPT0gQXJnLkJpZ0ltbTsgfQorICAgIGdldCBpc0JpdEltbSgpIHsgcmV0dXJuIHRoaXMuX2tp
bmQgPT0gQXJnLkJpdEltbTsgfQorICAgIGdldCBpc0JpdEltbTY0KCkgeyByZXR1cm4gdGhpcy5f
a2luZCA9PSBBcmcuQml0SW1tNjQ7IH0KKyAgICBnZXQgaXNTb21lSW1tKCkKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbW06CisgICAgICAg
IGNhc2UgQXJnLkJpZ0ltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNl
IEFyZy5CaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIGdldCBp
c0FkZHIoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5BZGRyOyB9CisgICAgZ2V0IGlzU3Rh
Y2soKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5TdGFjazsgfQorICAgIGdldCBpc0NhbGxB
cmcoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5DYWxsQXJnOyB9CisgICAgZ2V0IGlzSW5k
ZXgoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5JbmRleDsgfQorICAgIGdldCBpc01lbW9y
eSgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBB
cmcuQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6CisgICAgICAgIGNhc2UgQXJnLkNhbGxB
cmc6CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAg
ICB9CisgICAgZ2V0IGlzU3RhY2tNZW1vcnkoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlz
Ll9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgICAgICByZXR1cm4gdGhp
cy5fYmFzZSA9PSBSZWcuY2FsbEZyYW1lUmVnaXN0ZXIKKyAgICAgICAgICAgICAgICB8fCB0aGlz
Ll9iYXNlID09IFJlZy5zdGFja1BvaW50ZXJSZWdpc3RlcjsKKyAgICAgICAgY2FzZSBBcmcuU3Rh
Y2s6CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBnZXQgaXNSZWxDb25kKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuUmVs
Q29uZDsgfQorICAgIGdldCBpc1Jlc0NvbmQoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5S
ZXNDb25kOyB9CisgICAgZ2V0IGlzRG91YmxlQ29uZCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0g
QXJnLkRvdWJsZUNvbmQ7IH0KKyAgICBnZXQgaXNDb25kaXRpb24oKQorICAgIHsKKyAgICAgICAg
c3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAg
IGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBnZXQgaXNXaWR0aCgpIHsgcmV0dXJuIHRoaXMu
X2tpbmQgPT0gQXJnLldpZHRoOyB9CisgICAgZ2V0IGlzQWxpdmUoKSB7IHJldHVybiB0aGlzLmlz
VG1wIHx8IHRoaXMuaXNTdGFjazsgfQorICAgIAorICAgIGdldCB0bXAoKQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLlRtcCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQ2FsbGVkIC50bXAgZm9yIG5vbi10bXAiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3RtcDsK
KyAgICB9CisgICAgCisgICAgZ2V0IHZhbHVlKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5p
c1NvbWVJbW0pCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAudmFsdWUgZm9y
IG5vbi1pbW0iKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlOworICAgIH0KKyAgICAKKyAg
ICBnZXQgYmFzZSgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAg
ICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fYmFzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiQ2FsbGVkIC5iYXNlIGZvciBub24tYWRkcmVzcyIpOworICAgICAgICB9CisgICAg
fQorICAgIAorICAgIGdldCBoYXNPZmZzZXQoKSB7IHJldHVybiB0aGlzLmlzTWVtb3J5OyB9Cisg
ICAgCisgICAgZ2V0IG9mZnNldCgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQp
IHsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6CisgICAg
ICAgIGNhc2UgQXJnLlN0YWNrOgorICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX29mZnNldDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQ2FsbGVkIC5vZmZzZXQgZm9yIG5vbi1hZGRyZXNzIik7CisgICAgICAg
IH0KKyAgICB9CisgICAgCisgICAgZ2V0IHN0YWNrU2xvdCgpCisgICAgeworICAgICAgICBpZiAo
dGhpcy5fa2luZCAhPSBBcmcuU3RhY2spCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNh
bGxlZCAuc3RhY2tTbG90IGZvciBub24tYWRkcmVzcyIpOworICAgICAgICByZXR1cm4gdGhpcy5f
c2xvdDsKKyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4KCkKKyAgICB7CisgICAgICAgIGlmICh0
aGlzLl9raW5kICE9IEFyZy5JbmRleCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fs
bGVkIC5pbmRleCBmb3Igbm9uLUluZGV4Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9pbmRleDsK
KyAgICB9CisgICAgCisgICAgZ2V0IHNjYWxlKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9r
aW5kICE9IEFyZy5JbmRleCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5z
Y2FsZSBmb3Igbm9uLUluZGV4Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9zY2FsZTsKKyAgICB9
CisgICAgCisgICAgZ2V0IGxvZ1NjYWxlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBBcmcubG9n
U2NhbGUodGhpcy5zY2FsZSk7CisgICAgfQorICAgIAorICAgIGdldCB3aWR0aCgpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBBcmcuV2lkdGgpCisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkNhbGxlZCAud2lkdGggZm9yIG5vbi1XaWR0aCIpOworICAgICAgICByZXR1cm4g
dGhpcy5fd2lkdGg7CisgICAgfQorICAgIAorICAgIGdldCBpc0dQVG1wKCkgeyByZXR1cm4gdGhp
cy5pc1RtcCAmJiB0aGlzLnRtcC5pc0dQOyB9CisgICAgZ2V0IGlzRlBUbXAoKSB7IHJldHVybiB0
aGlzLmlzVG1wICYmIHRoaXMudG1wLmlzRlA7IH0KKyAgICAKKyAgICBnZXQgaXNHUCgpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgor
ICAgICAgICBjYXNlIEFyZy5CaWdJbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAg
ICAgY2FzZSBBcmcuQml0SW1tNjQ6CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNh
c2UgQXJnLkluZGV4OgorICAgICAgICBjYXNlIEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcu
Q2FsbEFyZzoKKyAgICAgICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVz
Q29uZDoKKyAgICAgICAgY2FzZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuV2lk
dGg6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuVG1wOgorICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuaXNHUFRtcDsKKyAgICAgICAgY2FzZSBBcmcuSW52YWxpZDoK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQmFkIGtpbmQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAg
ICBnZXQgaXNGUCgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAg
ICAgY2FzZSBBcmcuSW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW06CisgICAgICAgIGNhc2Ug
QXJnLkJpdEltbTY0OgorICAgICAgICBjYXNlIEFyZy5SZWxDb25kOgorICAgICAgICBjYXNlIEFy
Zy5SZXNDb25kOgorICAgICAgICBjYXNlIEFyZy5Eb3VibGVDb25kOgorICAgICAgICBjYXNlIEFy
Zy5XaWR0aDoKKyAgICAgICAgY2FzZSBBcmcuSW52YWxpZDoKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6Cisg
ICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAg
ICBjYXNlIEFyZy5CaWdJbW06CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2Fz
ZSBBcmcuVG1wOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNGUFRtcDsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGtpbmQiKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICBnZXQgaGFzVHlwZSgpCisgICAgeworICAgICAgICBzd2l0Y2gg
KHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAgICBjYXNlIEFyZy5C
aXRJbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbTY0OgorICAgICAgICBjYXNlIEFyZy5UbXA6
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgdHlwZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5pc0dQID8gR1AgOiBGUDsKKyAgICB9CisgICAgCisg
ICAgaXNUeXBlKHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAg
Y2FzZSBBcmcuR1A6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5pc0dQOworICAgICAgICBjYXNl
IEFyZy5GUDoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRlA7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB0eXBlIik7CisgICAgICAgIH0KKyAg
ICB9CisgICAgCisgICAgaXNDb21wYXRpYmxlVHlwZShvdGhlcikKKyAgICB7CisgICAgICAgIGlm
ICh0aGlzLmhhc1R5cGUpCisgICAgICAgICAgICByZXR1cm4gb3RoZXIuaXNUeXBlKHRoaXMudHlw
ZSk7CisgICAgICAgIGlmIChvdGhlci5oYXNUeXBlKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMu
aXNUeXBlKG90aGVyLnR5cGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisg
ICAgZ2V0IGlzR1BSKCkgeyByZXR1cm4gdGhpcy5pc1RtcCAmJiB0aGlzLnRtcC5pc0dQUjsgfQor
ICAgIGdldCBncHIoKSB7IHJldHVybiB0aGlzLnRtcC5ncHI7IH0KKyAgICBnZXQgaXNGUFIoKSB7
IHJldHVybiB0aGlzLmlzVG1wICYmIHRoaXMudG1wLmlzRlBSOyB9CisgICAgZ2V0IGZwcigpIHsg
cmV0dXJuIHRoaXMudG1wLmZwcjsgfQorICAgIGdldCBpc1JlZygpIHsgcmV0dXJuIHRoaXMuaXNU
bXAgJiYgdGhpcy50bXAuaXNSZWc7IH0KKyAgICBnZXQgcmVnKCkgeyByZXR1cm4gdGhpcy50bXAu
cmVnOyB9CisgICAgCisgICAgc3RhdGljIGlzVmFsaWRJbW1Gb3JtKHZhbHVlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGlzUmVwcmVzZW50YWJsZUFzSW50MzIodmFsdWUpOworICAgIH0KKyAgICBz
dGF0aWMgaXNWYWxpZEJpdEltbUZvcm0odmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gaXNS
ZXByZXNlbnRhYmxlQXNJbnQzMih2YWx1ZSk7CisgICAgfQorICAgIHN0YXRpYyBpc1ZhbGlkQml0
SW1tNjRGb3JtKHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzUmVwcmVzZW50YWJsZUFz
SW50MzIodmFsdWUpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNWYWxpZEFkZHJGb3JtKG9m
ZnNldCwgd2lkdGgpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisg
ICAgc3RhdGljIGlzVmFsaWRJbmRleEZvcm0oc2NhbGUsIG9mZnNldCwgd2lkdGgpCisgICAgewor
ICAgICAgICBpZiAoIWlzVmFsaWRTY2FsZShzY2FsZSwgd2lkdGgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgaXNWYWxp
ZEZvcm0od2lkdGgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAg
ICAgY2FzZSBBcmcuSW52YWxpZDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
Y2FzZSBBcmcuVG1wOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJn
LkltbToKKyAgICAgICAgICAgIHJldHVybiBBcmcuaXNWYWxpZEltbUZvcm0odGhpcy52YWx1ZSk7
CisgICAgICAgIGNhc2UgQXJnLkJpZ0ltbToKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBjYXNlIEFyZy5CaXRJbW06CisgICAgICAgICAgICByZXR1cm4gQXJnLmlzVmFsaWRCaXRJ
bW1Gb3JtKHRoaXMudmFsdWUpOworICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAg
ICAgIHJldHVybiBBcmcuaXNWYWxpZEJpdEltbTY0Rm9ybSh0aGlzLnZhbHVlKTsKKyAgICAgICAg
Y2FzZSBBcmcuQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6CisgICAgICAgIGNhc2UgQXJn
LkNhbGxBcmc6CisgICAgICAgICAgICByZXR1cm4gaXNWYWxpZEFkZHJGb3JtKHRoaXMub2Zmc2V0
LCB3aWR0aCk7CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICAgICAgcmV0dXJuIGlz
VmFsaWRJbmRleEZvcm0odGhpcy5zY2FsZSwgdGhpcy5vZmZzZXQsIHdpZHRoKTsKKyAgICAgICAg
Y2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoKKyAgICAgICAgY2Fz
ZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuV2lkdGg6CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIGtpbmQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBmb3JFYWNoVG1wRmFz
dChmdW5jKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNh
c2UgQXJnLlRtcDogeworICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50OworICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl90bXApKQorICAgICAgICAgICAgICAgIHJldHVy
biBBcmcuY3JlYXRlVG1wKHJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICAgIGNhc2UgQXJnLkFkZHI6IHsKKyAgICAgICAgICAgIGxldCByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmModGhpcy5fYmFzZSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIEFyZy5jcmVhdGVBZGRyKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZz
ZXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBBcmcuSW5k
ZXg6IHsKKyAgICAgICAgICAgIGxldCBiYXNlUmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2Jhc2Up
OworICAgICAgICAgICAgbGV0IGluZGV4UmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2luZGV4KTsK
KyAgICAgICAgICAgIGlmIChiYXNlUmVwbGFjZW1lbnQgfHwgaW5kZXhSZXBsYWNlbWVudCkgewor
ICAgICAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlSW5kZXgoCisgICAgICAgICAgICAgICAg
ICAgIGJhc2VSZXBsYWNlbWVudCA/IGJhc2VSZXBsYWNlbWVudCA6IHRoaXMuX2Jhc2UsCisgICAg
ICAgICAgICAgICAgICAgIGluZGV4UmVwbGFjZW1lbnQgPyBpbmRleFJlcGxhY2VtZW50IDogdGhp
cy5faW5kZXgsCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NjYWxlLCB0aGlzLl9vZmZzZXQp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIAorICAg
IHVzZXNUbXAoZXhwZWN0ZWRUbXApCisgICAgeworICAgICAgICBsZXQgdXNlc1RtcCA9IGZhbHNl
OworICAgICAgICBmb3JFYWNoVG1wRmFzdCh0bXAgPT4geworICAgICAgICAgICAgdXNlc1RtcCB8
PSB0bXAgPT0gZXhwZWN0ZWRUbXA7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdXNlc1Rt
cDsKKyAgICB9CisgICAgCisgICAgZm9yRWFjaFRtcChyb2xlLCB0eXBlLCB3aWR0aCwgZnVuYykK
KyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5U
bXA6IHsKKyAgICAgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmModGhpcy5fdG1wLCByb2xlLCB0eXBlLCB3aWR0aCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIEFyZy5jcmVhdGVUbXAocmVwbGFjZW1lbnQpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBBcmcuQWRkcjogeworICAgICAgICAgICAgbGV0
IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9i
YXNlLCBBcmcuVXNlLCBHUCwgcm9sZSA9PSBBcmcuVXNlQWRkciA/IHdpZHRoIDogUHRyKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZUFkZHIocmVwbGFjZW1lbnQsIHRoaXMuX29m
ZnNldCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFyZy5J
bmRleDogeworICAgICAgICAgICAgbGV0IGJhc2VSZXBsYWNlbWVudCA9IGZ1bmModGhpcy5fYmFz
ZSwgQXJnLlVzZSwgR1AsIHJvbGUgPT0gQXJnLlVzZUFkZHIgPyB3aWR0aCA6IFB0cik7CisgICAg
ICAgICAgICBsZXQgaW5kZXhSZXBsYWNlbWVudCA9IGZ1bmModGhpcy5faW5kZXgsIEFyZy5Vc2Us
IEdQLCByb2xlID09IEFyZy5Vc2VBZGRyID8gd2lkdGggOiBQdHIpOworICAgICAgICAgICAgaWYg
KGJhc2VSZXBsYWNlbWVudCB8fCBpbmRleFJlcGxhY2VtZW50KSB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIEFyZy5jcmVhdGVJbmRleCgKKyAgICAgICAgICAgICAgICAgICAgYmFzZVJlcGxhY2Vt
ZW50ID8gYmFzZVJlcGxhY2VtZW50IDogdGhpcy5fYmFzZSwKKyAgICAgICAgICAgICAgICAgICAg
aW5kZXhSZXBsYWNlbWVudCA/IGluZGV4UmVwbGFjZW1lbnQgOiB0aGlzLl9pbmRleCwKKyAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fc2NhbGUsIHRoaXMuX29mZnNldCk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaXModGhpbmcpIHsgcmV0
dXJuICEhdGhpbmcuZXh0cmFjdCh0aGlzKTsgfQorICAgIGFzKHRoaW5nKSB7IHJldHVybiB0aGlu
Zy5leHRyYWN0KHRoaXMpOyB9CisgICAgCisgICAgLy8gVGhpcyBsZXRzIHlvdSBzYXkgdGhpbmdz
IGxpa2U6CisgICAgLy8gYXJnLmZvckVhY2goVG1wIHwgUmVnIHwgQXJnIHwgU3RhY2tTbG90LCAu
Li4pCisgICAgLy8KKyAgICAvLyBJdCdzIHVzZWQgZm9yIGFic3RyYWN0IGxpdmVuZXNzIGFuYWx5
c2lzLgorICAgIGZvckVhY2hGYXN0KHRoaW5nLCBmdW5jKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaW5nLmZvckVhY2hGYXN0KHRoaXMsIGZ1bmMpOworICAgIH0KKyAgICBmb3JFYWNoKHRoaW5n
LCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYykKKyAgICB7CisgICAgICAgIHJldHVybiB0aGluZy5m
b3JFYWNoKHRoaXMsIHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKTsKKyAgICB9CisgICAgCisgICAg
c3RhdGljIGV4dHJhY3QoYXJnKSB7IHJldHVybiBhcmc7IH0KKyAgICBzdGF0aWMgZm9yRWFjaEZh
c3QoYXJnLCBmdW5jKSB7IHJldHVybiBmdW5jKGFyZyk7IH0KKyAgICBzdGF0aWMgZm9yRWFjaChh
cmcsIHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKSB7IHJldHVybiBmdW5jKGFyZywgcm9sZSwgdHlw
ZSwgd2lkdGgpOyB9CisKKyAgICBnZXQgY29uZGl0aW9uKCkKKyAgICB7CisgICAgICAgIHN3aXRj
aCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5SZWxDb25kOgorICAgICAgICBjYXNl
IEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFyZy5Eb3VibGVDb25kOgorICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX2NvbmRpdGlvbjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQ2FsbGVkIC5jb25kaXRpb24gZm9yIG5vbi1jb25kaXRpb24iKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgaXNJbnZlcnRpYmxlKCkKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5SZWxDb25kOgorICAg
ICAgICBjYXNlIEFyZy5Eb3VibGVDb2xkOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuX2NvbmRpdGlv
bikgeworICAgICAgICAgICAgY2FzZSBaZXJvOgorICAgICAgICAgICAgY2FzZSBOb25aZXJvOgor
ICAgICAgICAgICAgY2FzZSBTaWduZWQ6CisgICAgICAgICAgICBjYXNlIFBvc2l0aXZlT3JaZXJv
OgorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisg
ICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAg
ICAgIGNhc2UgQXJnLkludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4gIjxpbnZhbGlkPiI7Cisg
ICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl90bXAudG9TdHJp
bmcoKTsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW06Cisg
ICAgICAgICAgICByZXR1cm4gIiQiICsgdGhpcy5fdmFsdWU7CisgICAgICAgIGNhc2UgQXJnLkJp
Z0ltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tNjQ6CisgICAgICAgICAgICByZXR1cm4gIiQw
eCIgKyB0aGlzLl92YWx1ZS50b1N0cmluZygxNik7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6Cisg
ICAgICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhpcy5fb2Zmc2V0IDogIiIp
ICsgIigiICsgdGhpcy5fYmFzZSArICIpIjsKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6CisgICAg
ICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhpcy5fb2Zmc2V0IDogIiIpICsg
IigiICsgdGhpcy5fYmFzZSArCisgICAgICAgICAgICAgICAgIiwiICsgdGhpcy5faW5kZXggKyAo
dGhpcy5fc2NhbGUgPT0gMSA/ICIiIDogIiwiICsgdGhpcy5fc2NhbGUpICsgIikiOworICAgICAg
ICBjYXNlIEFyZy5TdGFjazoKKyAgICAgICAgICAgIHJldHVybiAiIiArICh0aGlzLl9vZmZzZXQg
PyB0aGlzLl9vZmZzZXQgOiAiIikgKyAiKCIgKyB0aGlzLl9zbG90ICsgIikiOworICAgICAgICBj
YXNlIEFyZy5DYWxsQXJnOgorICAgICAgICAgICAgcmV0dXJuICIiICsgKHRoaXMuX29mZnNldCA/
IHRoaXMuX29mZnNldCA6ICIiKSArICIoY2FsbEFyZykiOworICAgICAgICBjYXNlIEFyZy5SZWxD
b25kOgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFyZy5Eb3VibGVD
b25kOgorICAgICAgICBjYXNlIEFyZy5XaWR0aDoKKyAgICAgICAgICAgIHJldHVybiBzeW1ib2xO
YW1lKHRoaXMuX2NvbmRpdGlvbik7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkJhZCBraW5kIik7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEFyZyBr
aW5kcworQXJnLkludmFsaWQgPSBTeW1ib2woIkludmFsaWQiKTsKK0FyZy5UbXAgPSBTeW1ib2wo
IlRtcCIpOworQXJnLkltbSA9IFN5bWJvbCgiSW1tIik7CitBcmcuQmlnSW1tID0gU3ltYm9sKCJC
aWdJbW0iKTsKK0FyZy5CaXRJbW0gPSBTeW1ib2woIkJpdEltbSIpOworQXJnLkJpdEltbTY0ID0g
U3ltYm9sKCJCaXRJbW02NCIpOworQXJnLkFkZHIgPSBTeW1ib2woIkFkZHIiKTsKK0FyZy5TdGFj
ayA9IFN5bWJvbCgiU3RhY2siKTsKK0FyZy5DYWxsQXJnID0gU3ltYm9sKCJDYWxsQXJnIik7CitB
cmcuSW5kZXggPSBTeW1ib2woIkluZGV4Iik7CitBcmcuUmVsQ29uZCA9IFN5bWJvbCgiUmVsQ29u
ZCIpOworQXJnLlJlc0NvbmQgPSBTeW1ib2woIlJlc0NvbmQiKTsKK0FyZy5Eb3VibGVDb25kID0g
U3ltYm9sKCJEb3VibGVDb25kIik7CitBcmcuV2lkdGggPSBTeW1ib2woIldpZHRoIik7CisKKy8v
IEFyZyByb2xlcworQXJnLlVzZSA9IFN5bWJvbCgiVXNlIik7CitBcmcuQ29sZFVzZSA9IFN5bWJv
bCgiQ29sZFVzZSIpOworQXJnLkxhdGVVc2UgPSBTeW1ib2woIkxhdGVVc2UiKTsKK0FyZy5MYXRl
Q29sZFVzZSA9IFN5bWJvbCgiTGF0ZUNvbGRVc2UiKTsKK0FyZy5EZWYgPSBTeW1ib2woIkRlZiIp
OworQXJnLlpEZWYgPSBTeW1ib2woIlpEZWYiKTsKK0FyZy5Vc2VEZWYgPSBTeW1ib2woIlVzZURl
ZiIpOworQXJnLlVzZVpEZWYgPSBTeW1ib2woIlVzZVpEZWYiKTsKK0FyZy5FYXJseURlZiA9IFN5
bWJvbCgiRWFybHlEZWYiKTsKK0FyZy5TY3JhdGNoID0gU3ltYm9sKCJTY3JhdGNoIik7CitBcmcu
VXNlQWRkciA9IFN5bWJvbCgiVXNlQWRkciIpOworCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pT
QWlyL2Jhc2ljX2Jsb2NrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIv
YmFzaWNfYmxvY2suanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2Jh
c2ljX2Jsb2NrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMzIEBACisidXNlIHN0cmlj
dCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNz
IEJhc2ljQmxvY2sgeworICAgIGNvbnN0cnVjdG9yKGluZGV4LCBmcmVxdWVuY3kpCisgICAgewor
ICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OworICAgICAgICB0aGlzLl9mcmVxdWVuY3kgPSBm
cmVxdWVuY3k7CisgICAgICAgIHRoaXMuX2luc3RzID0gW107CisgICAgICAgIHRoaXMuX3N1Y2Nl
c3NvcnMgPSBbXTsKKyAgICAgICAgdGhpcy5fcHJlZGVjZXNzb3JzID0gW107CisgICAgfQorICAg
IAorICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9CisgICAgZ2V0IHNpemUo
KSB7IHJldHVybiB0aGlzLl9pbnN0cy5sZW5ndGg7IH0KKyAgICAKKyAgICBbU3ltYm9sLml0ZXJh
dG9yXSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5faW5zdHNbU3ltYm9sLml0ZXJhdG9y
XSgpOworICAgIH0KKyAgICAKKyAgICBhdChpbmRleCkKKyAgICB7CisgICAgICAgIGlmIChpbmRl
eCA+PSB0aGlzLl9pbnN0cy5sZW5ndGgpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk91
dCBvZiBib3VuZHMgYWNjZXNzIik7CisgICAgICAgIHJldHVybiB0aGlzLl9pbnN0c1tpbmRleF07
CisgICAgfQorICAgIAorICAgIGdldChpbmRleCkKKyAgICB7CisgICAgICAgIGlmIChpbmRleCA+
PSB0aGlzLl9pbnN0cy5sZW5ndGgpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX2luc3RzW2luZGV4XTsKKyAgICB9CisgICAgCisgICAgZ2V0IGxhc3QoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RzW3RoaXMuX2luc3RzLmxlbmd0aCAtIDFd
OworICAgIH0KKyAgICAKKyAgICBnZXQgaW5zdHMoKSB7IHJldHVybiB0aGlzLl9pbnN0czsgfQor
ICAgIAorICAgIGFwcGVuZChpbnN0KSB7IHRoaXMuX2luc3RzLnB1c2goaW5zdCk7IH0KKyAgICAK
KyAgICBnZXQgbnVtU3VjY2Vzc29ycygpIHsgcmV0dXJuIHRoaXMuX3N1Y2Nlc3NvcnMubGVuZ3Ro
OyB9CisgICAgc3VjY2Vzc29yKGluZGV4KSB7IHJldHVybiB0aGlzLl9zdWNjZXNzb3JzW2luZGV4
XTsgfQorICAgIGdldCBzdWNjZXNzb3JzKCkgeyByZXR1cm4gdGhpcy5fc3VjY2Vzc29yczsgfQor
ICAgIAorICAgIHN1Y2Nlc3NvckJsb2NrKGluZGV4KSB7IHJldHVybiB0aGlzLl9zdWNjZXNzb3Jz
W2luZGV4XS5ibG9jazsgfQorICAgIGdldCBzdWNjZXNzb3JCbG9ja3MoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG5ldyBQcm94eSh0aGlzLl9zdWNjZXNzb3JzLCB7CisgICAgICAgICAgICBnZXQ6
IGZ1bmN0aW9uKHRhcmdldCwgcHJvcGVydHkpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHByb3Bl
cnR5IHwgMCkgPT0gcHJvcGVydHkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRb
cHJvcGVydHldLmJsb2NrOworICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXRbcHJvcGVydHld
OworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc2V0OiBmdW5jdGlv
bih0YXJnZXQsIHByb3BlcnR5LCB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmICgocHJvcGVy
dHkgfCAwKSA9PSBwcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgb2xkVmFsdWUg
PSB0YXJnZXRbcHJvcGVydHldOworICAgICAgICAgICAgICAgICAgICB0YXJnZXRbcHJvcGVydHld
ID0gbmV3IEZyZXF1ZW50ZWRCbG9jaygKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLCBv
bGRWYWx1ZSA/IG9sZFZhbHVlLmZyZXF1ZW5jeSA6IE5vcm1hbCk7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgdGFyZ2V0W3Byb3BlcnR5XSA9IHZhbHVlOworICAgICAgICAgICAgfQorICAgICAg
ICB9KTsKKyAgICB9CisgICAgCisgICAgZ2V0IG51bVByZWRlY2Vzc29ycygpIHsgcmV0dXJuIHRo
aXMuX3ByZWRlY2Vzc29ycy5sZW5ndGg7IH0KKyAgICBwcmVkZWNlc3NvcihpbmRleCkgeyByZXR1
cm4gdGhpcy5fcHJlZGVjZXNzb3JzW2luZGV4XTsgfQorICAgIGdldCBwcmVkZWNlc3NvcnMoKSB7
IHJldHVybiB0aGlzLl9wcmVkZWNlc3NvcnM7IH0KKyAgICAKKyAgICBnZXQgZnJlcXVlbmN5KCkg
eyByZXR1cm4gdGhpcy5fZnJlcXVlbmN5OyB9CisKKyAgICB0b1N0cmluZygpCisgICAgeworICAg
ICAgICByZXR1cm4gIiMiICsgdGhpcy5faW5kZXg7CisgICAgfQorICAgIAorICAgIGdldCBoZWFk
ZXJTdHJpbmcoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9ICIiOworICAgICAgICByZXN1
bHQgKz0gIkJCIiArIHRoaXMgKyAiOiA7IGZyZXF1ZW5jeSA9ICIgKyB0aGlzLl9mcmVxdWVuY3kg
KyAiXG4iOworICAgICAgICBpZiAodGhpcy5fcHJlZGVjZXNzb3JzLmxlbmd0aCkKKyAgICAgICAg
ICAgIHJlc3VsdCArPSAiICBQcmVkZWNlc3NvcnM6ICIgKyB0aGlzLl9wcmVkZWNlc3NvcnMuam9p
bigiLCAiKSArICJcbiI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAg
IGdldCBmb290ZXJTdHJpbmcoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9ICIiOworICAg
ICAgICBpZiAodGhpcy5fc3VjY2Vzc29ycy5sZW5ndGgpCisgICAgICAgICAgICByZXN1bHQgKz0g
IiAgU3VjY2Vzc29yczogIiArIHRoaXMuX3N1Y2Nlc3NvcnMuam9pbigiLCAiKSArICJcbiI7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHRvU3RyaW5nRGVlcCgpCisg
ICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIHJlc3VsdCArPSB0aGlzLmhl
YWRlclN0cmluZzsKKyAgICAgICAgZm9yIChsZXQgaW5zdCBvZiB0aGlzKQorICAgICAgICAgICAg
cmVzdWx0ICs9ICIgICAgIiArIGluc3QgKyAiXG4iOworICAgICAgICByZXN1bHQgKz0gdGhpcy5m
b290ZXJTdHJpbmc7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQorCkluZGV4OiBQ
ZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2NvZGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VU
ZXN0cy9KU0Fpci9jb2RlLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fp
ci9jb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTggQEAKKyJ1c2Ugc3RyaWN0IjsK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgQ29k
ZSB7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgdGhpcy5fYmxvY2tzID0gW107
CisgICAgICAgIHRoaXMuX3N0YWNrU2xvdHMgPSBbXTsKKyAgICAgICAgdGhpcy5fZ3BUbXBzID0g
W107CisgICAgICAgIHRoaXMuX2ZwVG1wcyA9IFtdOworICAgICAgICB0aGlzLl9jYWxsQXJnQXJl
YVNpemUgPSAwOworICAgICAgICB0aGlzLl9mcmFtZVNpemUgPSAwOworICAgIH0KKyAgICAKKyAg
ICBhZGRCbG9jayhmcmVxdWVuY3kpCisgICAgeworICAgICAgICBpZiAoZnJlcXVlbmN5ID09IG51
bGwpCisgICAgICAgICAgICBmcmVxdWVuY3kgPSAxOworICAgICAgICBsZXQgcmVzdWx0ID0gYWRk
SW5kZXhlZCh0aGlzLl9ibG9ja3MsIEJhc2ljQmxvY2ssIGZyZXF1ZW5jeSk7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIGFkZFN0YWNrU2xvdChieXRlU2l6ZSwga2lu
ZCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBhZGRJbmRleGVkKHRoaXMuX3N0YWNrU2xv
dHMsIFN0YWNrU2xvdCwgYnl0ZVNpemUsIGtpbmQpOworICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgIH0KKyAgICAKKyAgICBuZXdUbXAodHlwZSkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQg
PSBhZGRJbmRleGVkKHRoaXNbIl8iICsgc3ltYm9sTmFtZSh0eXBlKS50b0xvd2VyQ2FzZSgpICsg
IlRtcHMiXSwgVG1wLCB0eXBlKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAg
CisgICAgZ2V0IHNpemUoKSB7IHJldHVybiB0aGlzLl9ibG9ja3MubGVuZ3RoOyB9CisgICAgCisg
ICAgW1N5bWJvbC5pdGVyYXRvcl0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Jsb2Nr
c1tTeW1ib2wuaXRlcmF0b3JdKCk7CisgICAgfQorICAgIAorICAgIGdldCBibG9ja3MoKSB7IHJl
dHVybiB0aGlzLl9ibG9ja3M7IH0KKyAgICBnZXQgc3RhY2tTbG90cygpIHsgcmV0dXJuIHRoaXMu
X3N0YWNrU2xvdHM7IH0KKyAgICAKKyAgICB0bXBzKHR5cGUpIHsgcmV0dXJuIHRoaXNbIl8iICsg
c3ltYm9sTmFtZSh0eXBlKS50b0xvd2VyQ2FzZSgpICsgIlRtcHMiXTsgfQorICAgIAorICAgIGdl
dCBjYWxsQXJnQXJlYVNpemUoKSB7IHJldHVybiB0aGlzLl9jYWxsQXJnQXJlYVNpemU7IH0KKyAg
ICAKKyAgICByZXF1ZXN0Q2FsbEFyZ0FyZWFTaXplKHNpemUpCisgICAgeworICAgICAgICB0aGlz
Ll9jYWxsQXJnQXJlYVNpemUgPSBNYXRoLm1heCh0aGlzLl9jYWxsQXJnQXJlYVNpemUsIHJvdW5k
VXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcywgc2l6ZSkpOworICAgIH0KKyAgICAK
KyAgICBnZXQgZnJhbWVTaXplKCkgeyByZXR1cm4gdGhpcy5fZnJhbWVTaXplOyB9CisgICAgCisg
ICAgc2V0RnJhbWVTaXplKGZyYW1lU2l6ZSkgeyB0aGlzLl9mcmFtZVNpemUgPSBmcmFtZVNpemU7
IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7
CisgICAgICAgIGZvciAobGV0IGJsb2NrIG9mIHRoaXMpIHsKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBibG9jay50b1N0cmluZ0RlZXAoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5zdGFj
a1Nsb3RzLmxlbmd0aCkgeworICAgICAgICAgICAgcmVzdWx0ICs9ICJTdGFjayBzbG90czpcbiI7
CisgICAgICAgICAgICBmb3IgKGxldCBzbG90IG9mIHRoaXMuc3RhY2tTbG90cykKKyAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gIiAgICAiICsgc2xvdCArICJcbiI7CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKHRoaXMuX2ZyYW1lU2l6ZSkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiRnJhbWUgc2l6
ZTogIiArIHRoaXMuX2ZyYW1lU2l6ZSArICJcbiI7CisgICAgICAgIGlmICh0aGlzLl9jYWxsQXJn
QXJlYVNpemUpCisgICAgICAgICAgICByZXN1bHQgKz0gIkNhbGwgYXJnIGFyZWEgc2l6ZTogIiAr
IHRoaXMuX2NhbGxBcmdBcmVhU2l6ZSArICJcbiI7CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9jdXN0b20uanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9jdXN0b20uanMJKHJldmlzaW9uIDApCisrKyBQ
ZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2N1c3RvbS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDEwNCBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCitjb25zdCBTaHVmZmxlQ3VzdG9tID0geworICAgIGZvckVhY2hBcmcoaW5z
dCwgZnVuYykKKyAgICB7CisgICAgICAgIHZhciBsaW1pdCA9IGluc3QuYXJncy5sZW5ndGggLyAz
ICogMzsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSAzKSB7CisgICAg
ICAgICAgICBsZXQgc3JjID0gaW5zdC5hcmdzW2kgKyAwXTsKKyAgICAgICAgICAgIGxldCBkc3Qg
PSBpbnN0LmFyZ3NbaSArIDFdOworICAgICAgICAgICAgbGV0IHdpZHRoQXJnID0gaW5zdC5hcmdz
W2kgKyAyXTsKKyAgICAgICAgICAgIGxldCB3aWR0aCA9IHdpZHRoQXJnLndpZHRoOworICAgICAg
ICAgICAgbGV0IHR5cGUgPSBzcmMuaXNHUCAmJiBkc3QuaXNHUCA/IEdQIDogRlA7CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKGkgKyAwLCBmdW5jLCBBcmcuVXNlLCB0eXBlLCB3aWR0aCk7Cisg
ICAgICAgICAgICBpbnN0LnZpc2l0QXJnKGkgKyAxLCBmdW5jLCBBcmcuRGVmLCB0eXBlLCB3aWR0
aCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKGkgKyAyLCBmdW5jLCBBcmcuVXNlLCBHUCwg
OCk7CisgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZl
Y3RzKGluc3QpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfTsKKworY29u
c3QgUGF0Y2hDdXN0b20gPSB7CisgICAgZm9yRWFjaEFyZyhpbnN0LCBmdW5jKQorICAgIHsKKyAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnN0LmFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoCisgICAgICAgICAgICAgICAgaSwgZnVuYywgaW5zdC5wYXRj
aEFyZ0RhdGFbaV0ucm9sZSwgaW5zdC5wYXRjaEFyZ0RhdGFbaV0udHlwZSwKKyAgICAgICAgICAg
ICAgICBpbnN0LnBhdGNoQXJnRGF0YVtpXS53aWR0aCk7CisgICAgICAgIH0KKyAgICB9LAorICAg
IAorICAgIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpCisgICAgeworICAgICAgICBy
ZXR1cm4gaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHM7CisgICAgfQorfTsKKworY29uc3QgQ0Nh
bGxDdXN0b20gPSB7CisgICAgZm9yRWFjaEFyZyhpbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAg
bGV0IGluZGV4ID0gMDsKKyAgICAgICAgaW5zdC52aXNpdEFyZyhpbmRleCsrLCBmdW5jLCBBcmcu
VXNlLCBHUCwgUHRyKTsgLy8gY2FsbGVlCisgICAgICAgIAorICAgICAgICBpZiAoaW5zdC5jQ2Fs
bFR5cGUgIT0gVm9pZCkgeworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygKKyAgICAgICAgICAg
ICAgICBpbmRleCsrLCBmdW5jLCBBcmcuRGVmLCBBcmcudHlwZUZvckIzVHlwZShpbnN0LmNDYWxs
VHlwZSksCisgICAgICAgICAgICAgICAgQXJnLndpZHRoRm9yQjNUeXBlKGluc3QuY0NhbGxUeXBl
KSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgaW5zdC5j
Q2FsbEFyZ1R5cGVzKSB7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKAorICAgICAgICAgICAg
ICAgIGluZGV4KyssIGZ1bmMsIEFyZy5Vc2UsIEFyZy50eXBlRm9yQjNUeXBlKHR5cGUpLCBBcmcu
d2lkdGhGb3JCM1R5cGUodHlwZSkpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGhhc05v
bkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpCisgICAgeworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9Cit9OworCitjb25zdCBDb2xkQ0NhbGxDdXN0b20gPSB7CisgICAgZm9yRWFjaEFyZyhp
bnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgQ0NhbGxDdXN0b20uZm9yRWFjaEFyZygKKyAgICAg
ICAgICAgIGluc3QsCisgICAgICAgICAgICAoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4gewor
ICAgICAgICAgICAgICAgIHJldHVybiBmdW5jKGFyZywgQXJnLmNvb2xlZChyb2xlKSwgdHlwZSwg
d2lkdGgpOworICAgICAgICAgICAgfSk7CisgICAgfSwKKyAgICAKKyAgICBoYXNOb25BcmdOb25D
b250cm9sRWZmZWN0cyhpbnN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
fTsKKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9mcmVxdWVudGVkX2Jsb2NrLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvZnJlcXVlbnRlZF9ibG9jay5qcwko
cmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvZnJlcXVlbnRlZF9ibG9jay5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACisidXNlIHN0cmljdCI7CisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIEZyZXF1ZW50ZWRC
bG9jayB7CisgICAgY29uc3RydWN0b3IoYmxvY2ssIGZyZXF1ZW5jeSkKKyAgICB7CisgICAgICAg
IHRoaXMuYmxvY2sgPSBibG9jazsKKyAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSBmcmVxdWVuY3k7
CisgICAgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAodGhp
cy5mcmVxdWVuY3kgPT0gTm9ybWFsID8gIiIgOiAiUmFyZToiKSArIHRoaXMuYmxvY2s7CisgICAg
fQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9pbnN0LmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvaW5zdC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvaW5zdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyNyBAQAor
InVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCitjbGFzcyBJbnN0IHsKKyAgICBjb25zdHJ1Y3RvcihvcGNvZGUsIGFyZ3MpCisgICAgewor
ICAgICAgICB0aGlzLl9vcGNvZGUgPSBvcGNvZGU7CisgICAgICAgIHRoaXMuX2FyZ3MgPSBhcmdz
ID09IG51bGwgPyBbXSA6IGFyZ3M7CisgICAgfQorICAgIAorICAgIGFwcGVuZCguLi5hcmdzKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fYXJncy5wdXNoKC4uLmFyZ3MpOworICAgIH0KKyAgICAKKyAg
ICBnZXQgb3Bjb2RlKCkgeyByZXR1cm4gdGhpcy5fb3Bjb2RlOyB9CisgICAgZ2V0IGFyZ3MoKSB7
IHJldHVybiB0aGlzLl9hcmdzOyB9CisgICAgCisgICAgdmlzaXRBcmcoaW5kZXgsIGZ1bmMsIC4u
LmFyZ3MpCisgICAgeworICAgICAgICBsZXQgcmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2FyZ3Nb
aW5kZXhdLCAuLi5hcmdzKTsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50KQorICAgICAgICAgICAg
dGhpcy5fYXJnc1tpbmRleF0gPSByZXBsYWNlbWVudDsKKyAgICB9CisgICAgCisgICAgZm9yRWFj
aFRtcEZhc3QoZnVuYykKKyAgICB7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5f
YXJncy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gdGhpcy5fYXJnc1tpXS5mb3JFYWNoVG1wRmFzdChmdW5j
KSkKKyAgICAgICAgICAgICAgICB0aGlzLl9hcmdzW2ldID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
IH0KKyAgICB9CisgICAgCisgICAgZm9yRWFjaEFyZyhmdW5jKQorICAgIHsKKyAgICAgICAgSW5z
dF9mb3JFYWNoQXJnKHRoaXMsIGZ1bmMpOworICAgIH0KKyAgICAKKyAgICBmb3JFYWNoVG1wKGZ1
bmMpCisgICAgeworICAgICAgICBmb3JFYWNoQXJnKChhcmcsIHJvbGUsIHR5cGUsIHdpZHRoKSA9
PiB7CisgICAgICAgICAgICByZXR1cm4gYXJnLmZvckVhY2hUbXAocm9sZSwgdHlwZSwgd2lkdGgs
IGZ1bmMpOworICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgZm9yRWFjaCh0aGluZywgZnVu
YykKKyAgICB7CisgICAgICAgIGZvckVhY2hBcmcoKGFyZywgcm9sZSwgdHlwZSwgd2lkdGgpID0+
IHsKKyAgICAgICAgICAgIHJldHVybiBhcmcuZm9yRWFjaCh0aGluZywgcm9sZSwgdHlwZSwgd2lk
dGgsIGZ1bmMpOworICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZvckVhY2hE
ZWYodGhpbmcsIHByZXZJbnN0LCBuZXh0SW5zdCwgZnVuYykKKyAgICB7CisgICAgICAgIGlmIChw
cmV2SW5zdCkgeworICAgICAgICAgICAgcHJldkluc3QuZm9yRWFjaCgKKyAgICAgICAgICAgICAg
ICB0aGluZywKKyAgICAgICAgICAgICAgICAodmFsdWUsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNMYXRlRGVmKHJvbGUpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsdWUsIHJvbGUsIHR5cGUsIHdpZHRoKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG5leHRJ
bnN0KSB7CisgICAgICAgICAgICBuZXh0SW5zdC5mb3JFYWNoKAorICAgICAgICAgICAgICAgIHRo
aW5nLAorICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKEFyZy5pc0Vhcmx5RGVmKHJvbGUpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsdWUsIHJvbGUsIHR5cGUsIHdpZHRoKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFj
aERlZldpdGhFeHRyYUNsb2JiZXJlZFJlZ3ModGhpbmcsIHByZXZJbnN0LCBuZXh0SW5zdCwgZnVu
YykKKyAgICB7CisgICAgICAgIGZvckVhY2hEZWYodGhpbmcsIHByZXZJbnN0LCBuZXh0SW5zdCwg
ZnVuYyk7CisgICAgICAgIAorICAgICAgICBsZXQgcmVnRGVmUm9sZTsKKyAgICAgICAgCisgICAg
ICAgIGxldCByZXBvcnRSZWcgPSByZWcgPT4geworICAgICAgICAgICAgbGV0IHR5cGUgPSByZWcu
aXNHUFIgPyBHUCA6IEZQOworICAgICAgICAgICAgZnVuYyh0aGluZy5mcm9tUmVnKHJlZyksIHJl
Z0RlZlJvbGUsIHR5cGUsIEFyZy5jb25zZXJ2YXRpdmVXaWR0aCh0eXBlKSk7CisgICAgICAgIH07
CisgICAgICAgIAorICAgICAgICBpZiAocHJldkluc3QgJiYgcHJldkluc3Qub3Bjb2RlID09IFBh
dGNoKSB7CisgICAgICAgICAgICByZWdEZWZSb2xlID0gQXJnLkRlZjsKKyAgICAgICAgICAgIHBy
ZXZJbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5mb3JFYWNoKHJlcG9ydFJlZyk7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIGlmIChuZXh0SW5zdCAmJiBuZXh0SW5zdC5vcGNvZGUgPT0gUGF0
Y2gpIHsKKyAgICAgICAgICAgIHJlZ0RlZlJvbGUgPSBBcmcuRWFybHlEZWY7CisgICAgICAgICAg
ICBuZXh0SW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncy5mb3JFYWNoKHJlcG9ydFJlZyk7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0IGhhc05vbkFyZ0VmZmVjdHMoKSB7IHJldHVy
biBJbnN0X2hhc05vbkFyZ0VmZmVjdHModGhpcyk7IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisg
ICAgeworICAgICAgICByZXR1cm4gIiIgKyBzeW1ib2xOYW1lKHRoaXMuX29wY29kZSkgKyAiICIg
KyB0aGlzLl9hcmdzLmpvaW4oIiwgIik7CisgICAgfQorfQorCkluZGV4OiBQZXJmb3JtYW5jZVRl
c3RzL0pTQWlyL29wY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWly
L29wY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2Rl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTY4MyBAQAorInVzZSBzdHJpY3QiOworLy8g
R2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIgZnJvbSBKYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyT3Bjb2RlLm9wY29kZXMgLS0gZG8gbm90IGVkaXQhCitjb25zdCBOb3AgPSBTeW1ib2wo
Ik5vcCIpOworY29uc3QgQWRkMzIgPSBTeW1ib2woIkFkZDMyIik7Citjb25zdCBBZGQ4ID0gU3lt
Ym9sKCJBZGQ4Iik7Citjb25zdCBBZGQxNiA9IFN5bWJvbCgiQWRkMTYiKTsKK2NvbnN0IEFkZDY0
ID0gU3ltYm9sKCJBZGQ2NCIpOworY29uc3QgQWRkRG91YmxlID0gU3ltYm9sKCJBZGREb3VibGUi
KTsKK2NvbnN0IEFkZEZsb2F0ID0gU3ltYm9sKCJBZGRGbG9hdCIpOworY29uc3QgU3ViMzIgPSBT
eW1ib2woIlN1YjMyIik7Citjb25zdCBTdWI2NCA9IFN5bWJvbCgiU3ViNjQiKTsKK2NvbnN0IFN1
YkRvdWJsZSA9IFN5bWJvbCgiU3ViRG91YmxlIik7Citjb25zdCBTdWJGbG9hdCA9IFN5bWJvbCgi
U3ViRmxvYXQiKTsKK2NvbnN0IE5lZzMyID0gU3ltYm9sKCJOZWczMiIpOworY29uc3QgTmVnNjQg
PSBTeW1ib2woIk5lZzY0Iik7Citjb25zdCBOZWdhdGVEb3VibGUgPSBTeW1ib2woIk5lZ2F0ZURv
dWJsZSIpOworY29uc3QgTXVsMzIgPSBTeW1ib2woIk11bDMyIik7Citjb25zdCBNdWw2NCA9IFN5
bWJvbCgiTXVsNjQiKTsKK2NvbnN0IE11bHRpcGx5QWRkMzIgPSBTeW1ib2woIk11bHRpcGx5QWRk
MzIiKTsKK2NvbnN0IE11bHRpcGx5QWRkNjQgPSBTeW1ib2woIk11bHRpcGx5QWRkNjQiKTsKK2Nv
bnN0IE11bHRpcGx5U3ViMzIgPSBTeW1ib2woIk11bHRpcGx5U3ViMzIiKTsKK2NvbnN0IE11bHRp
cGx5U3ViNjQgPSBTeW1ib2woIk11bHRpcGx5U3ViNjQiKTsKK2NvbnN0IE11bHRpcGx5TmVnMzIg
PSBTeW1ib2woIk11bHRpcGx5TmVnMzIiKTsKK2NvbnN0IE11bHRpcGx5TmVnNjQgPSBTeW1ib2wo
Ik11bHRpcGx5TmVnNjQiKTsKK2NvbnN0IERpdjMyID0gU3ltYm9sKCJEaXYzMiIpOworY29uc3Qg
RGl2NjQgPSBTeW1ib2woIkRpdjY0Iik7Citjb25zdCBNdWxEb3VibGUgPSBTeW1ib2woIk11bERv
dWJsZSIpOworY29uc3QgTXVsRmxvYXQgPSBTeW1ib2woIk11bEZsb2F0Iik7Citjb25zdCBEaXZE
b3VibGUgPSBTeW1ib2woIkRpdkRvdWJsZSIpOworY29uc3QgRGl2RmxvYXQgPSBTeW1ib2woIkRp
dkZsb2F0Iik7Citjb25zdCBYODZDb252ZXJ0VG9Eb3VibGVXb3JkMzIgPSBTeW1ib2woIlg4NkNv
bnZlcnRUb0RvdWJsZVdvcmQzMiIpOworY29uc3QgWDg2Q29udmVydFRvUXVhZFdvcmQ2NCA9IFN5
bWJvbCgiWDg2Q29udmVydFRvUXVhZFdvcmQ2NCIpOworY29uc3QgWDg2RGl2MzIgPSBTeW1ib2wo
Ilg4NkRpdjMyIik7Citjb25zdCBYODZEaXY2NCA9IFN5bWJvbCgiWDg2RGl2NjQiKTsKK2NvbnN0
IExlYSA9IFN5bWJvbCgiTGVhIik7Citjb25zdCBBbmQzMiA9IFN5bWJvbCgiQW5kMzIiKTsKK2Nv
bnN0IEFuZDY0ID0gU3ltYm9sKCJBbmQ2NCIpOworY29uc3QgQW5kRG91YmxlID0gU3ltYm9sKCJB
bmREb3VibGUiKTsKK2NvbnN0IEFuZEZsb2F0ID0gU3ltYm9sKCJBbmRGbG9hdCIpOworY29uc3Qg
WG9yRG91YmxlID0gU3ltYm9sKCJYb3JEb3VibGUiKTsKK2NvbnN0IFhvckZsb2F0ID0gU3ltYm9s
KCJYb3JGbG9hdCIpOworY29uc3QgTHNoaWZ0MzIgPSBTeW1ib2woIkxzaGlmdDMyIik7Citjb25z
dCBMc2hpZnQ2NCA9IFN5bWJvbCgiTHNoaWZ0NjQiKTsKK2NvbnN0IFJzaGlmdDMyID0gU3ltYm9s
KCJSc2hpZnQzMiIpOworY29uc3QgUnNoaWZ0NjQgPSBTeW1ib2woIlJzaGlmdDY0Iik7Citjb25z
dCBVcnNoaWZ0MzIgPSBTeW1ib2woIlVyc2hpZnQzMiIpOworY29uc3QgVXJzaGlmdDY0ID0gU3lt
Ym9sKCJVcnNoaWZ0NjQiKTsKK2NvbnN0IE9yMzIgPSBTeW1ib2woIk9yMzIiKTsKK2NvbnN0IE9y
NjQgPSBTeW1ib2woIk9yNjQiKTsKK2NvbnN0IFhvcjMyID0gU3ltYm9sKCJYb3IzMiIpOworY29u
c3QgWG9yNjQgPSBTeW1ib2woIlhvcjY0Iik7Citjb25zdCBOb3QzMiA9IFN5bWJvbCgiTm90MzIi
KTsKK2NvbnN0IE5vdDY0ID0gU3ltYm9sKCJOb3Q2NCIpOworY29uc3QgQWJzRG91YmxlID0gU3lt
Ym9sKCJBYnNEb3VibGUiKTsKK2NvbnN0IEFic0Zsb2F0ID0gU3ltYm9sKCJBYnNGbG9hdCIpOwor
Y29uc3QgQ2VpbERvdWJsZSA9IFN5bWJvbCgiQ2VpbERvdWJsZSIpOworY29uc3QgQ2VpbEZsb2F0
ID0gU3ltYm9sKCJDZWlsRmxvYXQiKTsKK2NvbnN0IEZsb29yRG91YmxlID0gU3ltYm9sKCJGbG9v
ckRvdWJsZSIpOworY29uc3QgRmxvb3JGbG9hdCA9IFN5bWJvbCgiRmxvb3JGbG9hdCIpOworY29u
c3QgU3FydERvdWJsZSA9IFN5bWJvbCgiU3FydERvdWJsZSIpOworY29uc3QgU3FydEZsb2F0ID0g
U3ltYm9sKCJTcXJ0RmxvYXQiKTsKK2NvbnN0IENvbnZlcnRJbnQzMlRvRG91YmxlID0gU3ltYm9s
KCJDb252ZXJ0SW50MzJUb0RvdWJsZSIpOworY29uc3QgQ29udmVydEludDY0VG9Eb3VibGUgPSBT
eW1ib2woIkNvbnZlcnRJbnQ2NFRvRG91YmxlIik7Citjb25zdCBDb252ZXJ0SW50MzJUb0Zsb2F0
ID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0Zsb2F0Iik7Citjb25zdCBDb252ZXJ0SW50NjRUb0Zs
b2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50NjRUb0Zsb2F0Iik7Citjb25zdCBDb3VudExlYWRpbmda
ZXJvczMyID0gU3ltYm9sKCJDb3VudExlYWRpbmdaZXJvczMyIik7Citjb25zdCBDb3VudExlYWRp
bmdaZXJvczY0ID0gU3ltYm9sKCJDb3VudExlYWRpbmdaZXJvczY0Iik7Citjb25zdCBDb252ZXJ0
RG91YmxlVG9GbG9hdCA9IFN5bWJvbCgiQ29udmVydERvdWJsZVRvRmxvYXQiKTsKK2NvbnN0IENv
bnZlcnRGbG9hdFRvRG91YmxlID0gU3ltYm9sKCJDb252ZXJ0RmxvYXRUb0RvdWJsZSIpOworY29u
c3QgTW92ZSA9IFN5bWJvbCgiTW92ZSIpOworY29uc3QgU3dhcDMyID0gU3ltYm9sKCJTd2FwMzIi
KTsKK2NvbnN0IFN3YXA2NCA9IFN5bWJvbCgiU3dhcDY0Iik7Citjb25zdCBNb3ZlMzIgPSBTeW1i
b2woIk1vdmUzMiIpOworY29uc3QgU3RvcmVaZXJvMzIgPSBTeW1ib2woIlN0b3JlWmVybzMyIik7
Citjb25zdCBTaWduRXh0ZW5kMzJUb1B0ciA9IFN5bWJvbCgiU2lnbkV4dGVuZDMyVG9QdHIiKTsK
K2NvbnN0IFplcm9FeHRlbmQ4VG8zMiA9IFN5bWJvbCgiWmVyb0V4dGVuZDhUbzMyIik7Citjb25z
dCBTaWduRXh0ZW5kOFRvMzIgPSBTeW1ib2woIlNpZ25FeHRlbmQ4VG8zMiIpOworY29uc3QgWmVy
b0V4dGVuZDE2VG8zMiA9IFN5bWJvbCgiWmVyb0V4dGVuZDE2VG8zMiIpOworY29uc3QgU2lnbkV4
dGVuZDE2VG8zMiA9IFN5bWJvbCgiU2lnbkV4dGVuZDE2VG8zMiIpOworY29uc3QgTW92ZUZsb2F0
ID0gU3ltYm9sKCJNb3ZlRmxvYXQiKTsKK2NvbnN0IE1vdmVEb3VibGUgPSBTeW1ib2woIk1vdmVE
b3VibGUiKTsKK2NvbnN0IE1vdmVaZXJvVG9Eb3VibGUgPSBTeW1ib2woIk1vdmVaZXJvVG9Eb3Vi
bGUiKTsKK2NvbnN0IE1vdmU2NFRvRG91YmxlID0gU3ltYm9sKCJNb3ZlNjRUb0RvdWJsZSIpOwor
Y29uc3QgTW92ZTMyVG9GbG9hdCA9IFN5bWJvbCgiTW92ZTMyVG9GbG9hdCIpOworY29uc3QgTW92
ZURvdWJsZVRvNjQgPSBTeW1ib2woIk1vdmVEb3VibGVUbzY0Iik7Citjb25zdCBNb3ZlRmxvYXRU
bzMyID0gU3ltYm9sKCJNb3ZlRmxvYXRUbzMyIik7Citjb25zdCBMb2FkOCA9IFN5bWJvbCgiTG9h
ZDgiKTsKK2NvbnN0IFN0b3JlOCA9IFN5bWJvbCgiU3RvcmU4Iik7Citjb25zdCBMb2FkOFNpZ25l
ZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQ4U2lnbmVkRXh0ZW5kVG8zMiIpOworY29uc3QgTG9h
ZDE2ID0gU3ltYm9sKCJMb2FkMTYiKTsKK2NvbnN0IExvYWQxNlNpZ25lZEV4dGVuZFRvMzIgPSBT
eW1ib2woIkxvYWQxNlNpZ25lZEV4dGVuZFRvMzIiKTsKK2NvbnN0IFN0b3JlMTYgPSBTeW1ib2wo
IlN0b3JlMTYiKTsKK2NvbnN0IENvbXBhcmUzMiA9IFN5bWJvbCgiQ29tcGFyZTMyIik7Citjb25z
dCBDb21wYXJlNjQgPSBTeW1ib2woIkNvbXBhcmU2NCIpOworY29uc3QgVGVzdDMyID0gU3ltYm9s
KCJUZXN0MzIiKTsKK2NvbnN0IFRlc3Q2NCA9IFN5bWJvbCgiVGVzdDY0Iik7Citjb25zdCBDb21w
YXJlRG91YmxlID0gU3ltYm9sKCJDb21wYXJlRG91YmxlIik7Citjb25zdCBDb21wYXJlRmxvYXQg
PSBTeW1ib2woIkNvbXBhcmVGbG9hdCIpOworY29uc3QgQnJhbmNoOCA9IFN5bWJvbCgiQnJhbmNo
OCIpOworY29uc3QgQnJhbmNoMzIgPSBTeW1ib2woIkJyYW5jaDMyIik7Citjb25zdCBCcmFuY2g2
NCA9IFN5bWJvbCgiQnJhbmNoNjQiKTsKK2NvbnN0IEJyYW5jaFRlc3Q4ID0gU3ltYm9sKCJCcmFu
Y2hUZXN0OCIpOworY29uc3QgQnJhbmNoVGVzdDMyID0gU3ltYm9sKCJCcmFuY2hUZXN0MzIiKTsK
K2NvbnN0IEJyYW5jaFRlc3Q2NCA9IFN5bWJvbCgiQnJhbmNoVGVzdDY0Iik7Citjb25zdCBCcmFu
Y2hEb3VibGUgPSBTeW1ib2woIkJyYW5jaERvdWJsZSIpOworY29uc3QgQnJhbmNoRmxvYXQgPSBT
eW1ib2woIkJyYW5jaEZsb2F0Iik7Citjb25zdCBCcmFuY2hBZGQzMiA9IFN5bWJvbCgiQnJhbmNo
QWRkMzIiKTsKK2NvbnN0IEJyYW5jaEFkZDY0ID0gU3ltYm9sKCJCcmFuY2hBZGQ2NCIpOworY29u
c3QgQnJhbmNoTXVsMzIgPSBTeW1ib2woIkJyYW5jaE11bDMyIik7Citjb25zdCBCcmFuY2hNdWw2
NCA9IFN5bWJvbCgiQnJhbmNoTXVsNjQiKTsKK2NvbnN0IEJyYW5jaFN1YjMyID0gU3ltYm9sKCJC
cmFuY2hTdWIzMiIpOworY29uc3QgQnJhbmNoU3ViNjQgPSBTeW1ib2woIkJyYW5jaFN1YjY0Iik7
Citjb25zdCBCcmFuY2hOZWczMiA9IFN5bWJvbCgiQnJhbmNoTmVnMzIiKTsKK2NvbnN0IEJyYW5j
aE5lZzY0ID0gU3ltYm9sKCJCcmFuY2hOZWc2NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHkz
MiA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHkzMiIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFs
bHk2NCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHk2NCIpOworY29uc3QgTW92ZUNvbmRpdGlv
bmFsbHlUZXN0MzIgPSBTeW1ib2woIk1vdmVDb25kaXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBN
b3ZlQ29uZGl0aW9uYWxseVRlc3Q2NCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlUZXN0NjQi
KTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5RG91YmxlID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9u
YWxseURvdWJsZSIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgiTW92
ZUNvbmRpdGlvbmFsbHlGbG9hdCIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkzMiA9
IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkzMiIpOworY29uc3QgTW92ZURvdWJsZUNv
bmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHk2NCIpOworY29u
c3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0MzIgPSBTeW1ib2woIk1vdmVEb3VibGVDb25k
aXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2NCA9
IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0NjQiKTsKK2NvbnN0IE1vdmVEb3Vi
bGVDb25kaXRpb25hbGx5RG91YmxlID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseURv
dWJsZSIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgiTW92
ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCIpOworY29uc3QgSnVtcCA9IFN5bWJvbCgiSnVtcCIp
OworY29uc3QgUmV0MzIgPSBTeW1ib2woIlJldDMyIik7Citjb25zdCBSZXQ2NCA9IFN5bWJvbCgi
UmV0NjQiKTsKK2NvbnN0IFJldEZsb2F0ID0gU3ltYm9sKCJSZXRGbG9hdCIpOworY29uc3QgUmV0
RG91YmxlID0gU3ltYm9sKCJSZXREb3VibGUiKTsKK2NvbnN0IE9vcHMgPSBTeW1ib2woIk9vcHMi
KTsKK2NvbnN0IFNodWZmbGUgPSBTeW1ib2woIlNodWZmbGUiKTsKK2NvbnN0IFBhdGNoID0gU3lt
Ym9sKCJQYXRjaCIpOworY29uc3QgQ0NhbGwgPSBTeW1ib2woIkNDYWxsIik7Citjb25zdCBDb2xk
Q0NhbGwgPSBTeW1ib2woIkNvbGRDQ2FsbCIpOworZnVuY3Rpb24gSW5zdF9mb3JFYWNoQXJnKGlu
c3QsIGZ1bmMpCit7CisgICAgbGV0IHJlcGxhY2VtZW50OworICAgIHN3aXRjaCAoaW5zdC5vcGNv
ZGUpIHsKKyAgICBjYXNlIE5vcDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBZGQzMjoKKyAg
ICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAz
MikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
ICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAz
MikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
IGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5Vc2VaRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJl
cGxhY2VtZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVy
bG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEFkZDg6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgOCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VE
ZWYsIEdQLCA4KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEFkZDE2OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDE2KSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDE2KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9
IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZDY0OgorICAgICAgICBz
d2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
RGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFk
ZERvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LkRlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBZGRGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdWIzMjoKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAg
aW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3Vi
NjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwg
NjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU3ViRG91YmxlOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5n
dGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAg
ICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgNjQpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1YkZsb2F0OgorICAgICAgICBzd2l0
Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgMzIpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
RlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVm
LCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5lZzMy
OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZVpE
ZWYsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOZWc2NDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2VEZWYsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOZWdhdGVE
b3VibGU6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwg
NjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTXVsMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkg
eworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3Nb
MF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAg
ICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAgICAgICAg
ICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWw2NDoKKyAgICAgICAgc3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCkpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMzoKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgR1As
IDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWx0aXBseUFk
ZDMyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMy
KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAg
ICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1l
bnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICBp
bnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWx0
aXBseUFkZDY0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50
OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwg
R1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDY0KSkK
KyAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLkRlZiwgR1AsIDY0KSkKKyAgICAgICAg
ICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IE11bHRpcGx5U3ViMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwg
MzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAg
ICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE11bHRpcGx5U3ViNjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNl
LCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuRGVmLCBHUCwgNjQp
KQorICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTXVsdGlwbHlOZWczMjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3Nb
MF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFy
Zy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsdGlwbHlOZWc2NDoKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGl2MzI6CisgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQor
ICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAg
ICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3Qu
YXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpdjY0Ogor
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAg
ICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgR1AsIDY0KSkKKyAgICAgICAgICAg
IGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE11
bERvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LkRlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNdWxGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1syXSwgQXJnLkRlZiwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgRlAsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXZEb3VibGU6CisgICAgICAgIHN3
aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAg
ICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VE
ZWYsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGl2
RmxvYXQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50
OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5E
ZWYsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sw
XSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgWDg2Q29udmVydFRvRG91YmxlV29yZDMyOgorICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAg
ICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYODZDb252
ZXJ0VG9RdWFkV29yZDY0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LkRlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFg4NkRpdjMyOgorICAgICAgICBpZiAocmVwbGFjZW1l
bnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQLCAzMikpCisgICAgICAgICAg
ICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5z
dC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWDg2RGl2NjQ6CisgICAg
ICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlWkRlZiwgR1As
IDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCA2NCkp
CisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBMZWE6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlQWRkciwgR1AsIFB0cikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYs
IEdQLCBQdHIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQW5kMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxl
bmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKSkKKyAg
ICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmQ2NDoKKyAgICAgICAgc3dp
dGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLkRlZiwgR1AsIDY0KSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2Us
IEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURl
ZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBbmRE
b3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNl
IDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcu
VXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50
OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5E
ZWYsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sw
XSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQW5kRmxvYXQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEZQLCAzMikpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWG9yRG91YmxlOgorICAgICAgICBzd2l0
Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
RlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVm
LCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFhvckZs
b2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuRGVm
LCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuVXNlRGVmLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sx
XSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJh
ZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICBjYXNlIExzaGlmdDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgp
IHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3Nb
MV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzJdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3Nb
Ml0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAg
ICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMikpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTHNoaWZ0NjQ6CisgICAgICAgIHN3aXRj
aCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgNjQpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVm
LCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFJzaGlm
dDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVz
ZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuWkRl
ZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZVpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAi
QmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUnNoaWZ0NjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAg
ICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlRGVmLCBHUCwgNjQpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFVyc2hpZnQzMjoKKyAgICAgICAgc3dp
dGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Va
RGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFVy
c2hpZnQ2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJn
LlpEZWYsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5h
cmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgT3IzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3Ro
KSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1syXSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE9yNjQ6CisgICAgICAgIHN3aXRjaCAo
aW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAg
ICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5EZWYsIEdQLCA2NCkpCisgICAgICAgICAg
ICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
NjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQ
LCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWG9yMzI6Cisg
ICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwg
MzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5aRGVmLCBHUCwg
MzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sw
XSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFd
LCBBcmcuVXNlWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3Zl
cmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBYb3I2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAg
ICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJl
cGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
MV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sy
XSwgQXJnLkRlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5z
dC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZURlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBp
bnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOb3QzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3Mu
bGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGlu
c3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGlu
c3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZVpEZWYsIEdQLCAzMikp
CisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTm90NjQ6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBHUCwgNjQpKQor
ICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZURlZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQi
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBYnNEb3VibGU6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVm
LCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQWJzRmxvYXQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5h
cmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ2VpbERvdWJsZToKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkp
CisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDZWlsRmxvYXQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVm
LCBGUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRmxvb3JEb3VibGU6CisgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5z
dC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRmxvb3JGbG9hdDoKKyAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAz
MikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMikpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBTcXJ0RG91YmxlOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LkRlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNxcnRGbG9hdDoKKyAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICBp
bnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3Nb
MV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0SW50MzJU
b0RvdWJsZToKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQ
LCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb252ZXJ0SW50NjRUb0RvdWJsZToKKyAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAg
ICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0SW50
MzJUb0Zsb2F0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50
OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwg
RlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRJbnQ2NFRvRmxvYXQ6CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAg
ICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5h
cmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ291bnRMZWFk
aW5nWmVyb3MzMjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVm
LCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ291bnRMZWFkaW5nWmVyb3M2NDoKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0
RG91YmxlVG9GbG9hdDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5E
ZWYsIEZQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBDb252ZXJ0RmxvYXRUb0RvdWJsZToKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAgICAgICBp
bnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3Zl
OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIFB0cikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCBQdHIp
KQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU3dhcDMyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZURlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9
IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZURlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN3YXA2NDoKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2VEZWYsIEdQLCA2NCkpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2VEZWYsIEdQLCA2NCkpCisgICAgICAgICAg
ICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBN
b3ZlMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1As
IDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JlWmVybzMyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNpZ25FeHRlbmQz
MlRvUHRyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1As
IFB0cikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBaZXJvRXh0ZW5kOFRvMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgOCkpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2lnbkV4dGVuZDhUbzMy
OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDgpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKSkK
KyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFplcm9FeHRlbmQxNlRvMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMTYpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJl
cGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNpZ25FeHRlbmQxNlRvMzI6Cisg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MTYpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAg
ICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE1vdmVGbG9hdDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMF0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFy
Zy5EZWYsIEZQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91YmxlOgorICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAg
IGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVaZXJvVG9E
b3VibGU6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
RGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZTY0VG9Eb3VibGU6CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAg
ICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5h
cmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZTMyVG9G
bG9hdDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5V
c2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEZQLCAz
MikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNb3ZlRG91YmxlVG82NDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5EZWYsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRmxvYXRUbzMyOgorICAg
ICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgRlAsIDMy
KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLkRlZiwgR1AsIDMyKSkKKyAgICAg
ICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIExvYWQ4OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwg
QXJnLlVzZSwgR1AsIDgpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwg
R1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFN0b3JlODoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCA4KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sw
XSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1sxXSwgQXJnLkRlZiwgR1AsIDgpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZDhTaWduZWRFeHRlbmRUbzMyOgor
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDgpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAg
ICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIExvYWQxNjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEdQLCAxNikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5a
RGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9hZDE2U2lnbmVkRXh0ZW5kVG8zMjoKKyAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAxNikpCisg
ICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAg
ICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U3RvcmUxNjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAxNikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5EZWYsIEdQ
LCAxNikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb21wYXJlMzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBB
cmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwg
R1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENvbXBhcmU2NDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0s
IEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5aRGVm
LCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgVGVzdDMyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJl
cGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50
OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlpEZWYs
IEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBUZXN0NjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBB
cmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuWkRlZiwg
R1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENvbXBhcmVEb3VibGU6CisgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5z
dC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcu
WkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBhcmVGbG9hdDoKKyAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAg
ICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFy
Z3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10s
IEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoODoKKyAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAg
ICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA4KSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1syXSwgQXJnLlVzZSwgR1AsIDgpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoMzI6CisgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAg
ICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAg
aW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoNjQ6Cisg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwg
MzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAg
ICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAg
aW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJh
bmNoVGVzdDg6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBH
UCwgOCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQLCA4KSkKKyAg
ICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEJyYW5jaFRlc3QzMjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0
LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2Us
IEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hUZXN0NjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5z
dC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzJdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoRG91YmxlOgorICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAg
ICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAg
IGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJn
c1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaEZsb2F0
OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgRlAsIDMyKSkK
KyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAg
ICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEJyYW5jaEFkZDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAg
ICAgY2FzZSA0OgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
MF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sx
XSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJd
LCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10s
IEFyZy5aRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGlu
c3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaEFkZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3Qu
YXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAg
ICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1l
bnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAg
IGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5aRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgICAg
IGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQor
ICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VEZWYsIEdQLCA2NCkp
CisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTXVsMzI6Cisg
ICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1As
IDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwg
MzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VaRGVmLCBH
UCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSBy
ZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJl
cGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3Nb
Ml0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sz
XSwgQXJnLlpEZWYsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGlu
c3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5z
dC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzNdLCBBcmcuU2NyYXRjaCwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBp
bnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuU2NyYXRjaCwgR1AsIDMyKSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbNV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hNdWw2NDoKKyAgICAgICAgc3dpdGNoIChp
bnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAg
ICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZVpEZWYsIEdQLCA2NCkpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgNjoKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1As
IDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuU2NyYXRjaCwg
R1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuU2NyYXRj
aCwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuWkRl
ZiwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbNV0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFu
Y2hTdWIzMjoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQ
LCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2VaRGVmLCBHUCwgMzIp
KQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJhbmNoU3ViNjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlRGVmLCBHUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTmVnMzI6CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAg
ICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlWkRlZiwgR1AsIDMyKSkKKyAgICAgICAgICAgIGlu
c3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5j
aE5lZzY0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJn
LlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZVpEZWYs
IEdQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseTMyOgorICAgICAgICBzd2l0Y2gg
KGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAg
ICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAg
ICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VEZWYsIEdQLCBQdHIpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1s0XSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDY6Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAg
ICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBH
UCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAg
ICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEdQ
LCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgR1As
IFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZSwgR1As
IFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzRdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwgR1As
IFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzVdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRp
dGlvbmFsbHk2NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAg
IGNhc2UgNToKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBd
LCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0s
IEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwg
QXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBB
cmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNl
bWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzRdLCBB
cmcuVXNlRGVmLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbNF0gPSByZXBs
YWNlbWVudDsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0g
ZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5z
dC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0
LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1s0XSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVu
YyhpbnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3Qu
YXJnc1s1XSA9IHJlcGxhY2VtZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgIkJhZCBvdmVybG9hZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRpb25hbGx5VGVzdDMyOgorICAgICAgICBzd2l0
Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAg
ICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAg
ICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEdQLCBQdHIpKQorICAgICAg
ICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2VEZWYsIEdQLCBQdHIpKQorICAg
ICAgICAgICAgICAgIGluc3QuYXJnc1s0XSA9IHJlcGxhY2VtZW50OworICAgICAgICBjYXNlIDY6
CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVz
ZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsK
KyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNl
LCBHUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50Owor
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2Us
IEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwg
R1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s0XSwgQXJnLlVzZSwg
R1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzRdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s1XSwgQXJnLkRlZiwg
R1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzVdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyAiQmFkIG92ZXJsb2FkIjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNv
bmRpdGlvbmFsbHlUZXN0NjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgewor
ICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3Qu
YXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMF0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9
IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFy
Z3NbMl0sIEFyZy5Vc2UsIEdQLCA2NCkpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1szXSwgQXJnLlVzZSwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzNdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1s0XSwgQXJnLlVzZURlZiwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzRd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAg
ICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2Vt
ZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAg
ICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1l
bnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRyKSkKKyAgICAgICAgICAgICAg
ICBpbnN0LmFyZ3NbNV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9uYWxseURvdWJsZToKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAg
ICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIp
KQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCA2NCkp
CisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDY0KSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBHUCwgUHRyKSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzVdLCBBcmcuRGVmLCBHUCwgUHRyKSkK
KyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbNV0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgY2Fz
ZSA1OgorICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFy
Zy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJn
LlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcu
VXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50
OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5V
c2UsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1szXSA9IHJlcGxhY2VtZW50
OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5V
c2VEZWYsIEdQLCBQdHIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJnc1s0XSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgIkJhZCBvdmVybG9hZCI7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNl
IE1vdmVDb25kaXRpb25hbGx5RmxvYXQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgICAgICBpbnN0LmFy
Z3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBGUCwgMzIpKQorICAgICAgICAgICAgICAgIGluc3QuYXJn
c1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1szXSwgQXJnLlVzZSwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1s0XSwgQXJnLlVzZSwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzRdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1s1XSwgQXJnLkRlZiwgR1AsIFB0cikpCisgICAgICAgICAgICAgICAgaW5zdC5hcmdz
WzVdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAg
ICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxh
Y2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2UsIEZQLCAzMikpCisgICAgICAgICAg
ICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFj
ZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAg
ICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBHUCwgUHRyKSkKKyAgICAgICAgICAg
ICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlRGVmLCBHUCwgUHRyKSkKKyAgICAgICAg
ICAgICAgICBpbnN0LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRocm93ICJCYWQgb3ZlcmxvYWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTMy
OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwg
R1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAg
ICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1sxXSwgQXJnLlVzZSwgR1AsIDMyKSkK
KyAgICAgICAgICAgIGluc3QuYXJnc1sxXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1syXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAg
ICAgIGluc3QuYXJnc1syXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKGluc3QuYXJnc1szXSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3Qu
YXJnc1szXSA9IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1s0XSwgQXJnLlVzZSwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1s0XSA9
IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1s1
XSwgQXJnLkRlZiwgRlAsIDY0KSkKKyAgICAgICAgICAgIGluc3QuYXJnc1s1XSA9IHJlcGxhY2Vt
ZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5NjQ6
CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNlLCBH
UCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgNjQpKQor
ICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAgICAgICAg
ICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5h
cmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzRdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzVd
LCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzVdID0gcmVwbGFjZW1l
bnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0
MzI6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcuVXNl
LCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7CisgICAg
ICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwgMzIp
KQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgMzIpKQorICAgICAg
ICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVu
dCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5z
dC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
aW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzRd
ID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdz
WzVdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzVdID0gcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlU
ZXN0NjQ6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBBcmcu
VXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7Cisg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBHUCwg
NjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlm
IChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBHUCwgNjQpKQorICAg
ICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNl
bWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAg
aW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdz
WzRdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5h
cmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzVdID0gcmVw
bGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFs
bHlEb3VibGU6CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzBdLCBB
cmcuVXNlLCBHUCwgMzIpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzBdID0gcmVwbGFjZW1lbnQ7
CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzFdLCBBcmcuVXNlLCBG
UCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzFdID0gcmVwbGFjZW1lbnQ7CisgICAgICAg
IGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzJdLCBBcmcuVXNlLCBGUCwgNjQpKQor
ICAgICAgICAgICAgaW5zdC5hcmdzWzJdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IGZ1bmMoaW5zdC5hcmdzWzNdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAg
ICAgaW5zdC5hcmdzWzNdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9
IGZ1bmMoaW5zdC5hcmdzWzRdLCBBcmcuVXNlLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5h
cmdzWzRdID0gcmVwbGFjZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoaW5z
dC5hcmdzWzVdLCBBcmcuRGVmLCBGUCwgNjQpKQorICAgICAgICAgICAgaW5zdC5hcmdzWzVdID0g
cmVwbGFjZW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlv
bmFsbHlGbG9hdDoKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0s
IEFyZy5Vc2UsIEdQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVu
dDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMV0sIEFyZy5Vc2Us
IEZQLCAzMikpCisgICAgICAgICAgICBpbnN0LmFyZ3NbMV0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMl0sIEFyZy5Vc2UsIEZQLCAzMikp
CisgICAgICAgICAgICBpbnN0LmFyZ3NbMl0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbM10sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAg
ICAgICBpbnN0LmFyZ3NbM10gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50
ID0gZnVuYyhpbnN0LmFyZ3NbNF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0
LmFyZ3NbNF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhp
bnN0LmFyZ3NbNV0sIEFyZy5EZWYsIEZQLCA2NCkpCisgICAgICAgICAgICBpbnN0LmFyZ3NbNV0g
PSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKdW1wOgorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFJldDMyOgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGlu
c3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9
IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJldDY0OgorICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJnc1swXSwgQXJnLlVzZSwgR1AsIDY0KSkKKyAg
ICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxhY2VtZW50OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJldEZsb2F0OgorICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKGluc3QuYXJn
c1swXSwgQXJnLlVzZSwgRlAsIDMyKSkKKyAgICAgICAgICAgIGluc3QuYXJnc1swXSA9IHJlcGxh
Y2VtZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJldERvdWJsZToKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhpbnN0LmFyZ3NbMF0sIEFyZy5Vc2UsIEZQLCA2NCkpCisgICAg
ICAgICAgICBpbnN0LmFyZ3NbMF0gPSByZXBsYWNlbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBPb3BzOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIFNodWZmbGU6CisgICAgICAgIFNo
dWZmbGVDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBQYXRjaDoKKyAgICAgICAgUGF0Y2hDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQ2FsbDoKKyAgICAgICAgQ0NhbGxDdXN0b20uZm9y
RWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xkQ0NhbGw6
CisgICAgICAgIENvbGRDQ2FsbEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICB0aHJvdyAiQmFkIG9wY29kZSI7CisgICAg
fQorfQorZnVuY3Rpb24gSW5zdF9oYXNOb25BcmdFZmZlY3RzKGluc3QpCit7CisgICAgc3dpdGNo
IChpbnN0Lm9wY29kZSkgeworICAgIGNhc2UgQnJhbmNoODoKKyAgICBjYXNlIEJyYW5jaDMyOgor
ICAgIGNhc2UgQnJhbmNoNjQ6CisgICAgY2FzZSBCcmFuY2hUZXN0ODoKKyAgICBjYXNlIEJyYW5j
aFRlc3QzMjoKKyAgICBjYXNlIEJyYW5jaFRlc3Q2NDoKKyAgICBjYXNlIEJyYW5jaERvdWJsZToK
KyAgICBjYXNlIEJyYW5jaEZsb2F0OgorICAgIGNhc2UgQnJhbmNoQWRkMzI6CisgICAgY2FzZSBC
cmFuY2hBZGQ2NDoKKyAgICBjYXNlIEJyYW5jaE11bDMyOgorICAgIGNhc2UgQnJhbmNoTXVsNjQ6
CisgICAgY2FzZSBCcmFuY2hTdWIzMjoKKyAgICBjYXNlIEJyYW5jaFN1YjY0OgorICAgIGNhc2Ug
QnJhbmNoTmVnMzI6CisgICAgY2FzZSBCcmFuY2hOZWc2NDoKKyAgICBjYXNlIEp1bXA6CisgICAg
Y2FzZSBSZXQzMjoKKyAgICBjYXNlIFJldDY0OgorICAgIGNhc2UgUmV0RmxvYXQ6CisgICAgY2Fz
ZSBSZXREb3VibGU6CisgICAgY2FzZSBPb3BzOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBj
YXNlIFNodWZmbGU6CisgICAgICAgIHJldHVybiBTaHVmZmxlQ3VzdG9tLmhhc05vbkFyZ05vbkNv
bnRyb2xFZmZlY3RzKGluc3QpOworICAgIGNhc2UgUGF0Y2g6CisgICAgICAgIHJldHVybiBQYXRj
aEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKKyAgICBjYXNlIENDYWxs
OgorICAgICAgICByZXR1cm4gQ0NhbGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMo
aW5zdCk7CisgICAgY2FzZSBDb2xkQ0NhbGw6CisgICAgICAgIHJldHVybiBDb2xkQ0NhbGxDdXN0
b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIv
cmVnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcmVnLmpzCShyZXZp
c2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMzMgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgUmVnIGV4dGVuZHMgVG1wQmFzZSB7CisgICAg
Y29uc3RydWN0b3IoaW5kZXgsIHR5cGUsIG5hbWUsIGlzQ2FsbGVlU2F2ZSkKKyAgICB7CisgICAg
ICAgIHN1cGVyKCk7CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMu
X3R5cGUgPSB0eXBlOworICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKKyAgICAgICAgdGhpcy5f
aXNDYWxsZWVTYXZlID0gISFpc0NhbGxlZVNhdmU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBm
cm9tUmVnKHJlZykKKyAgICB7CisgICAgICAgIHJldHVybiByZWc7CisgICAgfQorICAgIAorICAg
IGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9CisgICAgZ2V0IHR5cGUoKSB7IHJl
dHVybiB0aGlzLl90eXBlOyB9CisgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9
CisgICAgZ2V0IGlzQ2FsbGVlU2F2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzQ2FsbGVlU2F2ZTsgfQor
ICAgIAorICAgIGdldCBpc1JlZygpIHsgcmV0dXJuIHRydWU7IH0KKyAgICAKKyAgICB0b1N0cmlu
ZygpCisgICAgeworICAgICAgICByZXR1cm4gIiUiICsgdGhpcy5fbmFtZTsKKyAgICB9CisgICAg
CisgICAgc3RhdGljIGV4dHJhY3QoYXJnKQorICAgIHsKKyAgICAgICAgaWYgKGFyZy5pc1JlZykK
KyAgICAgICAgICAgIHJldHVybiBhcmcucmVnOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykKKyAgICB7CisgICAgICAg
IHJldHVybiBhcmcuZm9yRWFjaFRtcEZhc3QodG1wID0+IHsKKyAgICAgICAgICAgIGlmICghdG1w
LmlzUmVnKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmdW5j
KHRtcCk7CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaChhcmcs
IGFyZ1JvbGUsIGFyZ1R5cGUsIGFyZ1dpZHRoLCBmdW5jKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFyZy5mb3JFYWNoVG1wKAorICAgICAgICAgICAgYXJnUm9sZSwgYXJnVHlwZSwgYXJnV2lkdGgs
CisgICAgICAgICAgICAodG1wLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAg
ICAgIGlmICghdG1wLmlzUmVnKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZ1bmModG1wLCByb2xlLCB0eXBlLCB3aWR0aCk7CisgICAgICAgICAg
ICB9KTsKKyAgICB9Cit9CisKK3sKKyAgICBSZWcucmVncyA9IFtdOworICAgIGZ1bmN0aW9uIG5l
d1JlZyguLi5hcmdzKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBSZWcoLi4uYXJn
cyk7CisgICAgICAgIFJlZy5yZWdzLnB1c2gocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9CisKKyAgICAvLyBEZWZpbmUgWDg2XzY0IEdQUnMKKyAgICB7CisgICAgICAgIGxl
dCBpbmRleCA9IDA7CisgICAgICAgIGZ1bmN0aW9uIG5ld0dQUihuYW1lLCBpc0NhbGxlZVNhdmUp
IHsgcmV0dXJuIG5ld1JlZyhpbmRleCsrLCBHUCwgbmFtZSwgaXNDYWxsZWVTYXZlKTsgfQorICAg
ICAgICAKKyAgICAgICAgUmVnLnJheCA9IG5ld0dQUigicmF4Iik7CisgICAgICAgIFJlZy5yY3gg
PSBuZXdHUFIoInJjeCIpOworICAgICAgICBSZWcucmR4ID0gbmV3R1BSKCJyZHgiKTsKKyAgICAg
ICAgUmVnLnJieCA9IG5ld0dQUigicmJ4IiwgdHJ1ZSk7CisgICAgICAgIFJlZy5yc3AgPSBuZXdH
UFIoInJzcCIpOworICAgICAgICBSZWcucmJwID0gbmV3R1BSKCJyYnAiLCB0cnVlKTsKKyAgICAg
ICAgUmVnLnJzaSA9IG5ld0dQUigicnNpIik7CisgICAgICAgIFJlZy5yZGkgPSBuZXdHUFIoInJk
aSIpOworICAgICAgICBmb3IgKGxldCBpID0gODsgaSA8PSAxNTsgKytpKQorICAgICAgICAgICAg
UmVnWyJyIiArIGldID0gbmV3R1BSKCJyIiArIGksIGkgPj0gMTIpOworICAgIH0KKworICAgIC8v
IERlZmluZSBYODZfNjQgRlBScy4KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAxNTsgKytpKQor
ICAgICAgICBSZWdbInhtbSIgKyBpXSA9IG5ld1JlZyhpLCBGUCwgInhtbSIgKyBpKTsKKworICAg
IFJlZy5ncHJzID0gW10KKyAgICBSZWcuZnBycyA9IFtdCisgICAgUmVnLmNhbGxlZVNhdmVHUFJz
ID0gW10KKyAgICBSZWcuY2FsbGVlU2F2ZUZQUnMgPSBbXQorICAgIFJlZy5jYWxsZWVTYXZlcyA9
IFtdCisgICAgZm9yIChsZXQgcmVnIG9mIFJlZy5yZWdzKSB7CisgICAgICAgIGlmIChyZWcuaXNH
UCkgeworICAgICAgICAgICAgUmVnLmdwcnMucHVzaChyZWcpOworICAgICAgICAgICAgaWYgKHJl
Zy5pc0NhbGxlZVNhdmUpCisgICAgICAgICAgICAgICAgUmVnLmNhbGxlZVNhdmVHUFJzLnB1c2go
cmVnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFJlZy5mcHJzLnB1c2gocmVnKTsK
KyAgICAgICAgICAgIGlmIChyZWcuaXNDYWxsZWVTYXZlKQorICAgICAgICAgICAgICAgIFJlZy5j
YWxsZWVTYXZlRlBSUy5wdXNoKHJlZyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZy5pc0Nh
bGxlZVNhdmUpCisgICAgICAgICAgICBSZWcuY2FsbGVlU2F2ZXMucHVzaChyZWcpOworICAgIH0K
KyAgICAKKyAgICBSZWcuY2FsbEZyYW1lUmVnaXN0ZXIgPSBSZWcucmJwOworICAgIFJlZy5zdGFj
a1BvaW50ZXJSZWdpc3RlciA9IFJlZy5yc3A7Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pT
QWlyL3N0YWNrX3Nsb3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9z
dGFja19zbG90LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9zdGFj
a19zbG90LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTcgQEAKKyJ1c2Ugc3RyaWN0IjsK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgU3Rh
Y2tTbG90IHsKKyAgICBjb25zdHJ1Y3RvcihpbmRleCwgYnl0ZVNpemUsIGtpbmQpCisgICAgewor
ICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OworICAgICAgICB0aGlzLl9ieXRlU2l6ZSA9IGJ5
dGVTaXplOworICAgICAgICB0aGlzLl9raW5kID0ga2luZDsKKyAgICB9CisgICAgCisgICAgZ2V0
IGJ5dGVTaXplKCkgeyByZXR1cm4gdGhpcy5fYnl0ZVNpemU7IH0KKyAgICBnZXQga2luZCgpIHsg
cmV0dXJuIHRoaXMuX2tpbmQ7IH0KKyAgICAKKyAgICBnZXQgaXNMb2NrZWQoKSB7IHJldHVybiB0
aGlzLl9raW5kID09IExvY2tlZDsgfQorICAgIGdldCBpc1NwaWxsKCkgeyByZXR1cm4gdGhpcy5f
a2luZCA9PSBTcGlsbDsgfQorICAgIAorICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2lu
ZGV4OyB9CisKKyAgICBlbnN1cmVTaXplKHNpemUpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
b2Zmc2V0RnJvbUZQKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTdGFjayBzbG90IGFs
cmVhZHkgYWxsb2NhdGVkIik7CisgICAgICAgIHRoaXMuX2J5dGVTaXplID0gTWF0aC5tYXgodGhp
cy5fYnl0ZVNpemUsIHNpemUpOworICAgIH0KKyAgICAKKyAgICBnZXQgYWxpZ25tZW50KCkKKyAg
ICB7CisgICAgICAgIGlmICh0aGlzLl9ieXRlU2l6ZSA8PSAxKQorICAgICAgICAgICAgcmV0dXJu
IDE7CisgICAgICAgIGlmICh0aGlzLl9ieXRlU2l6ZSA8PSAyKQorICAgICAgICAgICAgcmV0dXJu
IDI7CisgICAgICAgIGlmICh0aGlzLl9ieXRlU2l6ZSA8PSA0KQorICAgICAgICAgICAgcmV0dXJu
IDQ7CisgICAgICAgIHJldHVybiA4OworICAgIH0KKyAgICAKKyAgICBnZXQgb2Zmc2V0RnJvbUZQ
KCkgeyByZXR1cm4gdGhpcy5fb2Zmc2V0RnJvbUZQOyB9CisgICAgCisgICAgc2V0T2Zmc2V0RnJv
bUZQKHZhbHVlKSB7IHRoaXMuX29mZnNldEZyb21GUCA9IHZhbHVlOyB9CisgICAgCisgICAgdG9T
dHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICIiICsgKHRoaXMuaXNTcGlsbCA/ICJzcGls
bCIgOiAic3RhY2siKSArIHRoaXMuX2luZGV4ICsgIjwiICsgdGhpcy5fYnl0ZVNpemUgKworICAg
ICAgICAgICAgKHRoaXMuX29mZnNldEZyb21GUCA/ICIsIG9mZnNldCA9ICIgKyB0aGlzLl9vZmZz
ZXRGcm9tRlAgOiAiIikgKyAiPiI7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBleHRyYWN0KGFy
ZykKKyAgICB7CisgICAgICAgIGlmIChhcmcuaXNTdGFjaykKKyAgICAgICAgICAgIHJldHVybiBh
cmcuc3RhY2tTbG90OworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgc3Rh
dGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlzU3Rh
Y2spCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBsZXQgcmVwbGFjZW1l
bnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoYXJnLnN0YWNrU2xvdCkpCisgICAg
ICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVN0YWNrKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZzZXQp
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaChhcmcsIHJvbGUsIHR5cGUsIHdpZHRo
LCBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKCFhcmcuaXNTdGFjaykKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgCisgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhhcmcuc3RhY2tTbG90LCByb2xlLCB0eXBlLCB3aWR0aCkpCisgICAg
ICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVN0YWNrKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZzZXQp
OworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9scy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHJldmlzaW9uIDAp
CisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw4MiBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisvLyBUaGlzIGZpbGUgaXMgZm9yIG1pc2Mgc3ltYm9scy4KKwor
Ly8gQjMgdHlwZXMKK2NvbnN0IFZvaWQgPSBTeW1ib2woIlZvaWQiKTsKK2NvbnN0IEludDMyID0g
U3ltYm9sKCJJbnQzMiIpOworY29uc3QgSW50NjQgPSBTeW1ib2woIkludDY0Iik7Citjb25zdCBG
bG9hdCA9IFN5bWJvbCgiRmxvYXQiKTsKK2NvbnN0IERvdWJsZSA9IFN5bWJvbCgiRG91YmxlIik7
CisKKy8vIEFyZyB0eXBlCitjb25zdCBHUCA9IFN5bWJvbCgiR1AiKTsKK2NvbnN0IEZQID0gU3lt
Ym9sKCJGUCIpOworCisvLyBTdGFjayBzbG90IGtpbmQKK2NvbnN0IExvY2tlZCA9IFN5bWJvbCgi
TG9ja2VkIik7Citjb25zdCBTcGlsbCA9IFN5bWJvbCgiU3BpbGwiKTsKKworLy8gRnJlcXVlbmN5
IGNsYXNzCitjb25zdCBOb3JtYWwgPSBTeW1ib2woIk5vcm1hbCIpOworY29uc3QgUmFyZSA9IFN5
bWJvbCgiUmFyZSIpOworCisvLyBSZWxhdGlvbmFsIGNvbmRpdGlvbnMKK2NvbnN0IEVxdWFsID0g
U3ltYm9sKCJFcXVhbCIpOworY29uc3QgTm90RXF1YWwgPSBTeW1ib2woIk5vdEVxdWFsIik7Citj
b25zdCBBYm92ZSA9IFN5bWJvbCgiQWJvdmUiKTsKK2NvbnN0IEFib3ZlT3JFcXVhbCA9IFN5bWJv
bCgiQWJvdmVPckVxdWFsIik7Citjb25zdCBCZWxvdyA9IFN5bWJvbCgiQmVsb3ciKTsKK2NvbnN0
IEJlbG93T3JFcXVhbCA9IFN5bWJvbCgiQmVsb3dPckVxdWFsIik7Citjb25zdCBHcmVhdGVyVGhh
biA9IFN5bWJvbCgiR3JlYXRlclRoYW4iKTsKK2NvbnN0IEdyZWF0ZXJUaGFuT3JFcXVhbCA9IFN5
bWJvbCgiR3JlYXRlclRoYW5PckVxdWFsIik7Citjb25zdCBMZXNzVGhhbiA9IFN5bWJvbCgiTGVz
c1RoYW4iKTsKK2NvbnN0IExlc3NUaGFuT3JFcXVhbCA9IFN5bWJvbCgiTGVzc1RoYW5PckVxdWFs
Iik7CisKKy8vIFJlc3VsdCBjb25kaXRpb25zCitjb25zdCBPdmVyZmxvdyA9IFN5bWJvbCgiT3Zl
cmZsb3ciKTsKK2NvbnN0IFNpZ25lZCA9IFN5bWJvbCgiU2lnbmVkIik7Citjb25zdCBQb3NpdGl2
ZU9yWmVybyA9IFN5bWJvbCgiUG9zaXRpdmVPclplcm8iKTsKK2NvbnN0IFplcm8gPSBTeW1ib2wo
Ilplcm8iKTsKK2NvbnN0IE5vblplcm8gPSBTeW1ib2woIk5vblplcm8iKTsKKworLy8gRG91Ymxl
IGNvbmRpdGlvbnMKK2NvbnN0IERvdWJsZUVxdWFsID0gU3ltYm9sKCJEb3VibGVFcXVhbCIpOwor
Y29uc3QgRG91YmxlTm90RXF1YWwgPSBTeW1ib2woIkRvdWJsZU5vdEVxdWFsIik7Citjb25zdCBE
b3VibGVHcmVhdGVyVGhhbiA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRoYW4iKTsKK2NvbnN0IERv
dWJsZUdyZWF0ZXJUaGFuT3JFcXVhbCA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRoYW5PckVxdWFs
Iik7Citjb25zdCBEb3VibGVMZXNzVGhhbiA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW4iKTsKK2Nv
bnN0IERvdWJsZUxlc3NUaGFuT3JFcXVhbCA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW5PckVxdWFs
Iik7Citjb25zdCBEb3VibGVFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVFcXVhbE9y
VW5vcmRlcmVkIik7Citjb25zdCBEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJE
b3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkIik7Citjb25zdCBEb3VibGVHcmVhdGVyVGhhbk9yVW5v
cmRlcmVkID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhhbk9yVW5vcmRlcmVkIik7Citjb25zdCBE
b3VibGVHcmVhdGVyVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlR3JlYXRl
clRoYW5PckVxdWFsT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZUxlc3NUaGFuT3JVbm9yZGVy
ZWQgPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZUxl
c3NUaGFuT3JFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9yRXF1YWxP
clVub3JkZXJlZCIpOworCisvLyBEZWZpbmUgcG9pbnRlclR5cGUoKQorY29uc3QgUHRyID0gNjQ7
CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Rlc3QuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVy
Zm9ybWFuY2VUZXN0cy9KU0Fpci90ZXN0LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VU
ZXN0cy9KU0Fpci90ZXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNyBAQAorInVzZSBz
dHJpY3QiOworCitsb2FkKCJhbGwuanMiKTsKKworbG9hZCgicGF5bG9hZC5qcyIpOworCitwcmlu
dChjb2RlKTsKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9y
bWFuY2VUZXN0cy9KU0Fpci90bXAuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OSBAQAor
InVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCitjbGFzcyBUbXAgZXh0ZW5kcyBUbXBCYXNlIHsKKyAgICBjb25zdHJ1Y3RvcihpbmRleCwg
dHlwZSkKKyAgICB7CisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5k
ZXg7CisgICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMg
ZnJvbVJlZyhyZWcpCisgICAgeworICAgICAgICByZXR1cm4gcmVnOworICAgIH0KKyAgICAKKyAg
ICBnZXQgaW5kZXgoKSB7IHJldHVybiB0aGlzLl9pbmRleDsgfQorICAgIGdldCB0eXBlKCkgeyBy
ZXR1cm4gdGhpcy5fdHlwZTsgfQorICAgIAorICAgIGdldCBpc1JlZygpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICIlIiArICh0
aGlzLmlzR1AgPyAiIiA6ICJmIikgKyAidG1wIiArIHRoaXMuX2luZGV4OworICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgZXh0cmFjdChhcmcpCisgICAgeworICAgICAgICBpZiAoYXJnLmlzVG1wKQor
ICAgICAgICAgICAgcmV0dXJuIGFyZy50bXA7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0K
KworICAgIHN0YXRpYyBmb3JFYWNoRmFzdChhcmcsIGZ1bmMpIHsgcmV0dXJuIGFyZy5mb3JFYWNo
VG1wRmFzdChmdW5jKTsgfQorICAgIHN0YXRpYyBmb3JFYWNoKGFyZywgcm9sZSwgdHlwZSwgd2lk
dGgsIGZ1bmMpIHsgcmV0dXJuIGFyZy5mb3JFYWNoVG1wKHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5j
KTsgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXBfYmFzZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3RtcF9iYXNlLmpzCShyZXZpc2lvbiAwKQor
KysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXBfYmFzZS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDU1IEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKK2NsYXNzIFRtcEJhc2UgeworICAgIGdldCBpc0dQKCkgeyByZXR1
cm4gdGhpcy50eXBlID09IEdQOyB9CisgICAgZ2V0IGlzRlAoKSB7IHJldHVybiB0aGlzLnR5cGUg
PT0gRlA7IH0KKyAgICAKKyAgICBnZXQgaXNHUFIoKSB7IHJldHVybiB0aGlzLmlzUmVnICYmIHRo
aXMuaXNHUDsgfQorICAgIGdldCBpc0ZQUigpIHsgcmV0dXJuIHRoaXMuaXNSZWcgJiYgdGhpcy5p
c0ZQOyB9CisgICAgCisgICAgZ2V0IHJlZygpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNS
ZWcpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAucmVnIG9uIG5vbi1SZWci
KTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorCisgICAgZ2V0IGdwcigpCisgICAgewor
ICAgICAgICBpZiAoIXRoaXMuaXNHUFIpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNh
bGxlZCAuZ3ByIG9uIG5vbi1HUFIiKTsKKyAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgfQorICAg
IAorICAgIGdldCBmcHIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzRlBSKQorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLmZwciBvbiBub24tRlBSIik7CisgICAgICAg
IHJldHVybiB0aGlzOworICAgIH0KK30KKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci91
dGlsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdXRpbC5qcwkocmV2
aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdXRpbC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDUxIEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKK2Z1bmN0aW9uIGlzUmVwcmVzZW50YWJsZUFzSW50MzIo
dmFsdWUpCit7CisgICAgcmV0dXJuICh2YWx1ZSB8IDApID09PSB2YWx1ZTsKK30KKworZnVuY3Rp
b24gYWRkSW5kZXhlZChsaXN0LCBjb25zLCAuLi5hcmdzKQoreworICAgIGxldCByZXN1bHQgPSBu
ZXcgY29ucyhsaXN0Lmxlbmd0aCwgLi4uYXJncyk7CisgICAgbGlzdC5wdXNoKHJlc3VsdCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworY29uc3Qgc3RhY2tBbGlnbm1lbnRCeXRlcyA9IDE2Owor
CitmdW5jdGlvbiByb3VuZFVwVG9NdWx0aXBsZU9mKGFtb3VudCwgdmFsdWUpCit7CisgICAgcmV0
dXJuICh2YWx1ZSArIGFtb3VudCAtIDEpIC8gYW1vdW50ICogYW1vdW50OworfQorCitmdW5jdGlv
biBzeW1ib2xOYW1lKHN5bWJvbCkKK3sKKyAgICBsZXQgZnVsbFN0cmluZyA9IHN5bWJvbC50b1N0
cmluZygpOworICAgIHJldHVybiBmdWxsU3RyaW5nLnN1YnN0cmluZygiU3ltYm9sKCIubGVuZ3Ro
LCBmdWxsU3RyaW5nLmxlbmd0aCAtICIpIi5sZW5ndGgpOworfQorCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OTMsOCArMTk5MywyNSBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCiBzdGF0aWMgdm9pZCBkdW1wRXhjZXB0aW9uKEdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGV4Y2VwdGlvbikKIHsKICAgICBwcmludGYoIkV4Y2VwdGlv
bjogJXNcbiIsIGV4Y2VwdGlvbi50b1dURlN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMo
KSkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBJZGVudGlmaWVyIG5hbWVJRCA9IElkZW50aWZpZXI6
OmZyb21TdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksICJuYW1lIik7CisgICAgSWRl
bnRpZmllciBmaWxlTmFtZUlEID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhnbG9iYWxPYmplY3Qt
Pmdsb2JhbEV4ZWMoKSwgInNvdXJjZVVSTCIpOworICAgIElkZW50aWZpZXIgbGluZU51bWJlcklE
ID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgImxp
bmUiKTsKICAgICBJZGVudGlmaWVyIHN0YWNrSUQgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCAic3RhY2siKTsKKyAgICAKKyAgICBKU1ZhbHVlIG5h
bWVWYWx1ZSA9IGV4Y2VwdGlvbi5nZXQoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIG5hbWVJ
RCk7CisgICAgSlNWYWx1ZSBmaWxlTmFtZVZhbHVlID0gZXhjZXB0aW9uLmdldChnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSwgZmlsZU5hbWVJRCk7CisgICAgSlNWYWx1ZSBsaW5lTnVtYmVyVmFs
dWUgPSBleGNlcHRpb24uZ2V0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBsaW5lTnVtYmVy
SUQpOwogICAgIEpTVmFsdWUgc3RhY2tWYWx1ZSA9IGV4Y2VwdGlvbi5nZXQoZ2xvYmFsT2JqZWN0
LT5nbG9iYWxFeGVjKCksIHN0YWNrSUQpOworICAgIAorICAgIGlmIChuYW1lVmFsdWUudG9XVEZT
dHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCkpID09ICJTeW50YXhFcnJvciIKKyAgICAg
ICAgJiYgKCFmaWxlTmFtZVZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgfHwgIWxpbmVOdW1iZXJW
YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKSkgeworICAgICAgICBwcmludGYoCisgICAgICAgICAg
ICAiYXQgJXM6JXNcbiIsCisgICAgICAgICAgICBmaWxlTmFtZVZhbHVlLnRvV1RGU3RyaW5nKGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKS51dGY4KCkuZGF0YSgpLAorICAgICAgICAgICAgbGlu
ZU51bWJlclZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKS51dGY4
KCkuZGF0YSgpKTsKKyAgICB9CisgICAgCiAgICAgaWYgKCFzdGFja1ZhbHVlLmlzVW5kZWZpbmVk
T3JOdWxsKCkpCiAgICAgICAgIHByaW50ZigiJXNcbiIsIHN0YWNrVmFsdWUudG9XVEZTdHJpbmco
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCkpLnV0ZjgoKS5kYXRhKCkpOwogfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOTgzLDYgKzE5ODMsOCBAQAogCQlEQzE3RTgxQTFDOUM5MUU5MDA4QTZB
QjMgLyogQ0NhbGxIZWxwZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDMTdFODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3Bw
ICovOyB9OwogCQlEQzIxNDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDYxQ0EzMkU1MjAw
MEE4ODY5IC8qIElDU3RhdHMuaCAqLzsgfTsKIAkJREMyMTQzMDgxQ0EzMkU1ODAwMEE4ODY5IC8q
IElDU3RhdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gREMyMTQzMDUxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICovOyB9OworCQlEQzQ1
NEI4QzFEMDBFODIyMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8q
IEFpckR1bXBBc0pTLmNwcCAqLzsgfTsKKwkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFp
ckR1bXBBc0pTLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4QjFEMDBFODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2
MDVCNUQxQ0UyNkVBMDAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4
IC8qIFByb2ZpbGVyRXZlbnQuY3BwICovOyB9OwogCQlEQzYwNUI1RTFDRTI2RUEyMDA1OTM3MTgg
LyogUHJvZmlsZXJFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREM2MDVCNUExQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzYwNUI1RjFD
RTI2RUE1MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2Zp
bGVyVUlELmNwcCAqLzsgfTsKQEAgLTQxOTcsNiArNDE5OSw4IEBACiAJCURDMTdFODE2MUM5Qzgw
MkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ0NhbGxIZWxwZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJREMyMTQzMDUxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSUNTdGF0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElDU3RhdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckR1bXBBc0pTLmNwcDsgcGF0aCA9
IGIzL2Fpci9BaXJEdW1wQXNKUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURD
NDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBBaXJEdW1wQXNKUy5oOyBwYXRoID0gYjMvYWlyL0FpckR1bXBBc0pT
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjU5MUNFMjZFOTgwMDU5Mzcx
OCAvKiBQcm9maWxlckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFByb2ZpbGVyRXZlbnQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVBMUNFMjZFOTgwMDU5MzcxOCAv
KiBQcm9maWxlckV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2Zp
bGVyRXZlbnQuaDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJREM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlE
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVyVUlELmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyVUlELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTQ4MjEsNiArNDgyNSw4IEBACiAJCQkJMEZFQzg1NTExQkRBQ0RDNzAwODBGRjc0
IC8qIEFpckNvZGUuaCAqLywKIAkJCQkwRjYxODMyMjFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyQ3Vz
dG9tLmNwcCAqLywKIAkJCQkwRjEwRjFBMjFDNDIwQkYwMDAxQzA3RDIgLyogQWlyQ3VzdG9tLmgg
Ki8sCisJCQkJREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLywK
KwkJCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLywKIAkJCQkw
RjQ1NzAzNjFCRTQ0QzkxMDA2MkE2MjkgLyogQWlyRWxpbWluYXRlRGVhZENvZGUuY3BwICovLAog
CQkJCTBGNDU3MDM3MUJFNDRDOTEwMDYyQTYyOSAvKiBBaXJFbGltaW5hdGVEZWFkQ29kZS5oICov
LAogCQkJCTBGNjE4MzIzMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJFbWl0U2h1ZmZsZS5jcHAgKi8s
CkBAIC03MDIyLDYgKzcwMjgsNyBAQAogCQkJCTBGRUM4NTA2MUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0NoZWNrU3BlY2lhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MDgxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ2hlY2tWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MEExQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29tbW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlEQzQ1NEI4RDFEMDBF
ODI0MDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBD
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbW11dGF0aXZpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRUM4NTBFMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0MzJWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZFQzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4g
SGVhZGVycyAqLywKQEAgLTkxMDYsNiArOTExMyw3IEBACiAJCQkJMTQwNTY2RDYxMDdFQzI3MTAw
NURCQzhEIC8qIEpTRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0QTM4RjkxQzhF
MTNERjAwMTkwMzE4IC8qIFN1cGVyU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OTdF
MDdBOTFCOEZDRkI5MDA4NDAwQkEgLyogSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJREM0NTRCOEMxRDAwRTgyMjAwNEMxOEFGIC8qIEFpckR1bXBBc0pT
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQyMTA3RUMzNzYwMDQyN0E0OCAvKiBKU0ds
b2JhbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUZEMDA4NTE4OUIxQjdFMDA2MzMy
MzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTVDM0ExQTUxOEMwNDkwMjAwQzk1OTNBIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
QWxsb2NhdGVTdGFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJBbGxvY2F0ZVN0YWNrLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVN0YWNrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckFy
Z0lubGluZXMuaCIKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zZXJ0aW9u
U2V0LmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQXJnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJBcmcuaAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJBcmcuaAkod29ya2luZyBjb3B5KQpAQCAtNjg4LDcgKzY4OCwxNSBA
QCBwdWJsaWM6CiAKICAgICBib29sIGlzU29tZUltbSgpIGNvbnN0CiAgICAgewotICAgICAgICBy
ZXR1cm4gaXNJbW0oKSB8fCBpc0JpZ0ltbSgpIHx8IGlzQml0SW1tKCkgfHwgaXNCaXRJbW02NCgp
OworICAgICAgICBzd2l0Y2ggKGtpbmQoKSkgeworICAgICAgICBjYXNlIEltbToKKyAgICAgICAg
Y2FzZSBCaWdJbW06CisgICAgICAgIGNhc2UgQml0SW1tOgorICAgICAgICBjYXNlIEJpdEltbTY0
OgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KICAgICB9CiAKICAgICBib29sIGlzQWRkcigpIGNv
bnN0CkBAIC05OTMsMzMgKzEwMDEsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0bXAoKS50
bXBJbmRleCgpOwogICAgIH0KIAotICAgIC8vIElmICd0aGlzJyBpcyBhbiBhZGRyZXNzIEFyZywg
dGhlbiBpdCByZXR1cm5zIGEgbmV3IGFkZHJlc3MgQXJnIHdpdGggdGhlIGFkZGl0aW9uYWwgb2Zm
c2V0IGFwcGxpZWQuCi0gICAgLy8gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgY29uc2lkZXIgd2hl
dGhlciBkb2luZyBzbyBwcm9kdWNlcyBhIHZhbGlkIEFyZyBvciBub3QuIFVubGVzcyB5b3UgcmVh
bGx5Ci0gICAgLy8ga25vdyB3aGF0IHlvdSdyZSBkb2luZywgeW91IHNob3VsZCBjYWxsIEFyZzo6
aXNWYWxpZEZvcm0oKSBvbiB0aGUgcmVzdWx0LiBTb21lIGNvZGUgd29uJ3QgZG8gdGhhdCwKLSAg
ICAvLyBsaWtlIGlmIHlvdSdyZSBhcHBseWluZyBhIHZlcnkgc21hbGwgb2Zmc2V0IHRvIGEgQXJn
OjpzdGFjaygpIHRoYXQgeW91IGtub3cgaGFzIG5vIG9mZnNldCB0byBiZWdpbgotICAgIC8vIHdp
dGguIEl0J3Mgc2FmZSB0byBhc3N1bWUgdGhhdCBhbGwgdGFyZ2V0cyBhbGxvdyBzbWFsbCBvZmZz
ZXRzIChsaWtlLCAwLi43KSBmb3IgQWRkciwgU3RhY2ssIGFuZAotICAgIC8vIENhbGxBcmcuCi0g
ICAgQXJnIHdpdGhPZmZzZXQoaW50NjRfdCBhZGRpdGlvbmFsT2Zmc2V0KSBjb25zdAotICAgIHsK
LSAgICAgICAgaWYgKCFoYXNPZmZzZXQoKSkKLSAgICAgICAgICAgIHJldHVybiBBcmcoKTsKLSAg
ICAgICAgaWYgKHN1bU92ZXJmbG93czxpbnQ2NF90PihvZmZzZXQoKSwgYWRkaXRpb25hbE9mZnNl
dCkpCi0gICAgICAgICAgICByZXR1cm4gQXJnKCk7Ci0gICAgICAgIHN3aXRjaCAoa2luZCgpKSB7
Ci0gICAgICAgIGNhc2UgQWRkcjoKLSAgICAgICAgICAgIHJldHVybiBhZGRyKGJhc2UoKSwgb2Zm
c2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0KTsKLSAgICAgICAgY2FzZSBTdGFjazoKLSAgICAgICAg
ICAgIHJldHVybiBzdGFjayhzdGFja1Nsb3QoKSwgb2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0
KTsKLSAgICAgICAgY2FzZSBDYWxsQXJnOgotICAgICAgICAgICAgcmV0dXJuIGNhbGxBcmcob2Zm
c2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0KTsKLSAgICAgICAgY2FzZSBJbmRleDoKLSAgICAgICAg
ICAgIHJldHVybiBpbmRleChiYXNlKCksIGluZGV4KCksIHNjYWxlKCksIG9mZnNldCgpICsgYWRk
aXRpb25hbE9mZnNldCk7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIEFyZygpOwotICAgICAgICB9
Ci0gICAgfQotCiAgICAgc3RhdGljIGJvb2wgaXNWYWxpZEltbUZvcm0oaW50NjRfdCB2YWx1ZSkK
ICAgICB7CiAgICAgICAgIGlmIChpc1g4NigpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJBcmdJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJBcmdJbmxpbmVzLmgJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04
NCw2ICs4NCw4OCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmdUaGluZ0hlbHBlcjxBcmc+IHsKICAg
ICB9CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmdUaGluZ0hlbHBlcjxTdGFja1Nsb3QqPiB7
CisgICAgc3RhdGljIGJvb2wgaXMoY29uc3QgQXJnJiBhcmcpCisgICAgeworICAgICAgICByZXR1
cm4gYXJnLmlzU3RhY2soKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFN0YWNrU2xvdCogYXMo
Y29uc3QgQXJnJiBhcmcpCisgICAgeworICAgICAgICByZXR1cm4gYXJnLnN0YWNrU2xvdCgpOwor
ICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHN0YXRpYyB2
b2lkIGZvckVhY2hGYXN0KEFyZyYgYXJnLCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsK
KyAgICAgICAgaWYgKCFhcmcuaXNTdGFjaygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAKKyAgICAgICAgU3RhY2tTbG90KiBzdGFja1Nsb3QgPSBhcmcuc3RhY2tTbG90KCk7CisgICAg
ICAgIGZ1bmN0b3Ioc3RhY2tTbG90KTsKKyAgICAgICAgYXJnID0gQXJnOjpzdGFjayhzdGFja1Ns
b3QsIGFyZy5vZmZzZXQoKSk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3I+CisgICAgc3RhdGljIHZvaWQgZm9yRWFjaChBcmcmIGFyZywgQXJnOjpSb2xlIHJvbGUs
IEFyZzo6VHlwZSB0eXBlLCBBcmc6OldpZHRoIHdpZHRoLCBjb25zdCBGdW5jdG9yJiBmdW5jdG9y
KQorICAgIHsKKyAgICAgICAgaWYgKCFhcmcuaXNTdGFjaygpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAKKyAgICAgICAgU3RhY2tTbG90KiBzdGFja1Nsb3QgPSBhcmcuc3RhY2tTbG90
KCk7CisgICAgICAgIAorICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3YXkgdG9vIG9wdGltaXN0
aWMgYWJvdXQgdGhlIG1lYW5pbmcgb2YgIkRlZiIuIEl0IGdldHMgbHVja3kgZm9yCisgICAgICAg
IC8vIG5vdyBiZWNhdXNlIG91ciBvbmx5IHVzZSBvZiAiQW5vbnltb3VzIiBzdGFjayBzbG90cyBo
YXBwZW5zIHRvIHdhbnQgdGhlIG9wdGltaXN0aWMKKyAgICAgICAgLy8gc2VtYW50aWNzLiBXZSBj
b3VsZCBmaXggdGhpcyBieSBqdXN0IGNoYW5naW5nIHRoZSBjb21tZW50cyB0aGF0IGRlc2NyaWJl
IHRoZQorICAgICAgICAvLyBzZW1hbnRpY3Mgb2YgIkFub255bW91cyIuCisgICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExMjgKKyAgICAgICAgCisg
ICAgICAgIGZ1bmN0b3Ioc3RhY2tTbG90LCByb2xlLCB0eXBlLCB3aWR0aCk7CisgICAgICAgIGFy
ZyA9IEFyZzo6c3RhY2soc3RhY2tTbG90LCBhcmcub2Zmc2V0KCkpOworICAgIH0KK307CisKK3Rl
bXBsYXRlPD4gc3RydWN0IEFyZ1RoaW5nSGVscGVyPFJlZz4geworICAgIHN0YXRpYyBib29sIGlz
KGNvbnN0IEFyZyYgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFyZy5pc1JlZygpOworICAg
IH0KKyAgICAKKyAgICBzdGF0aWMgUmVnIGFzKGNvbnN0IEFyZyYgYXJnKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFyZy5yZWcoKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoRmFzdChBcmcmIGFyZywgY29uc3QgRnVu
Y3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGFyZy5mb3JFYWNoVG1wRmFzdCgKKyAgICAg
ICAgICAgIFsmXSAoVG1wJiB0bXApIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRtcC5pc1JlZygp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgUmVnIHJlZyA9IHRtcC5yZWcoKTsKKyAgICAgICAgICAgICAgICBmdW5jdG9yKHJl
Zyk7CisgICAgICAgICAgICAgICAgdG1wID0gVG1wKHJlZyk7CisgICAgICAgICAgICB9KTsKKyAg
ICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9p
ZCBmb3JFYWNoKEFyZyYgYXJnLCBBcmc6OlJvbGUgYXJnUm9sZSwgQXJnOjpUeXBlIGFyZ1R5cGUs
IEFyZzo6V2lkdGggYXJnV2lkdGgsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAg
ICAgICBhcmcuZm9yRWFjaFRtcCgKKyAgICAgICAgICAgIGFyZ1JvbGUsIGFyZ1R5cGUsIGFyZ1dp
ZHRoLAorICAgICAgICAgICAgWyZdIChUbXAmIHRtcCwgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlw
ZSB0eXBlLCBBcmc6OldpZHRoIHdpZHRoKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0bXAuaXNS
ZWcoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIFJlZyByZWcgPSB0bXAucmVnKCk7CisgICAgICAgICAgICAgICAgZnVuY3Rv
cihyZWcsIHJvbGUsIHR5cGUsIHdpZHRoKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAocmVn
KTsKKyAgICAgICAgICAgIH0pOworICAgIH0KK307CisKIHRlbXBsYXRlPHR5cGVuYW1lIFRoaW5n
PgogYm9vbCBBcmc6OmlzKCkgY29uc3QKIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRHVtcEFzSlMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyRHVtcEFzSlMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
MjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFpckR1bXBBc0pTLmgiCisKKyNpZiBFTkFCTEUo
QjNfSklUKQorCisjaW5jbHVkZSAiQWlyQ29kZS5oIgorI2luY2x1ZGUgIkFpckluc3RJbmxpbmVz
LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKKwor
bmFtZXNwYWNlIHsKKworQ1N0cmluZyB2YXJOYW1lRm9yQmxvY2tBdEluZGV4KHVuc2lnbmVkIGlu
ZGV4KQoreworICAgIHJldHVybiB0b0NTdHJpbmcoImJiIiwgaW5kZXgpOworfQorCitDU3RyaW5n
IHZhck5hbWUoQmFzaWNCbG9jayogYmxvY2spCit7CisgICAgcmV0dXJuIHZhck5hbWVGb3JCbG9j
a0F0SW5kZXgoYmxvY2stPmluZGV4KCkpOworfQorCitDU3RyaW5nIHZhck5hbWVGb3JTdGFja1Ns
b3RBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiB0b0NTdHJpbmcoInNsb3Qi
LCBpbmRleCk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShTdGFja1Nsb3QqIHNsb3QpCit7CisgICAg
cmV0dXJuIHZhck5hbWVGb3JTdGFja1Nsb3RBdEluZGV4KHNsb3QtPmluZGV4KCkpOworfQorCitD
U3RyaW5nIHZhck5hbWUoUmVnIHJlZykKK3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKCJSZWcuIiwg
cmVnLmRlYnVnTmFtZSgpKTsKK30KKworQ1N0cmluZyB2YXJOYW1lRm9yVG1wV2l0aFR5cGVBbmRJ
bmRleChBcmc6OlR5cGUgdHlwZSwgdW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIHRvQ1N0
cmluZyh0eXBlID09IEFyZzo6RlAgPyAiZiIgOiAiIiwgInRtcCIsIGluZGV4KTsKK30KKworQ1N0
cmluZyB2YXJOYW1lKFRtcCB0bXApCit7CisgICAgaWYgKHRtcC5pc1JlZygpKQorICAgICAgICBy
ZXR1cm4gdmFyTmFtZSh0bXAucmVnKCkpOworICAgIHJldHVybiB2YXJOYW1lRm9yVG1wV2l0aFR5
cGVBbmRJbmRleChBcmcodG1wKS50eXBlKCksIHRtcC50bXBJbmRleCgpKTsKK30KKworfSAvLyBh
bm9ueW1vdXMgbmFtZXNwYWNlCisKK3ZvaWQgZHVtcEFzSlMoQ29kZSYgY29kZSwgUHJpbnRTdHJl
YW0mIG91dCkKK3sKKyAgICBvdXQucHJpbnRsbigibGV0IGNvZGUgPSBuZXcgQ29kZSgpOyIpOwor
ICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb2RlLnNpemUoKTsgKytpKQorICAg
ICAgICBvdXQucHJpbnRsbigibGV0ICIsIHZhck5hbWVGb3JCbG9ja0F0SW5kZXgoaSksICIgPSBj
b2RlLmFkZEJsb2NrKCk7Iik7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNv
ZGUuc3RhY2tTbG90cygpLnNpemUoKTsgKytpKSB7CisgICAgICAgIFN0YWNrU2xvdCogc2xvdCA9
IGNvZGUuc3RhY2tTbG90cygpW2ldOworICAgICAgICBpZiAoc2xvdCkKKyAgICAgICAgICAgIG91
dC5wcmludGxuKCJsZXQgIiwgdmFyTmFtZShzbG90KSwgIiA9IGNvZGUuYWRkU3RhY2tTbG90KCIs
IHNsb3QtPmJ5dGVTaXplKCksICIsICIsIHNsb3QtPmtpbmQoKSwgIik7Iik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJjb2RlLmFkZFN0YWNrU2xvdCgxLCBTcGlsbCk7
Iik7CisgICAgfQorICAgIAorICAgIEFyZzo6Zm9yRWFjaFR5cGUoCisgICAgICAgIFsmXSAoQXJn
OjpUeXBlIHR5cGUpIHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGNvZGUubnVtVG1w
cyh0eXBlKTsgaS0tOykgeworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAg
ICAgICAgICAgICAibGV0ICIsIHZhck5hbWVGb3JUbXBXaXRoVHlwZUFuZEluZGV4KHR5cGUsIGkp
LCAiID0gY29kZS5uZXdUbXAoIiwgdHlwZSwgIik7Iik7CisgICAgICAgICAgICB9CisgICAgICAg
IH0pOworICAgIAorICAgIG91dC5wcmludGxuKCJsZXQgaW5zdDsiKTsKKyAgICBvdXQucHJpbnRs
bigibGV0IGFyZzsiKTsKKyAgICAKKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkg
eworICAgICAgICBmb3IgKEZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vz
c29ycygpKSB7CisgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICB2YXJO
YW1lKGJsb2NrKSwgIi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jaygiLAorICAg
ICAgICAgICAgICAgIHZhck5hbWUoc3VjY2Vzc29yLmJsb2NrKCkpLCAiLCAiLCBzdWNjZXNzb3Iu
ZnJlcXVlbmN5KCksICIpKTsiKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChC
YXNpY0Jsb2NrKiBwcmVkZWNlc3NvciA6IGJsb2NrLT5wcmVkZWNlc3NvcnMoKSkKKyAgICAgICAg
ICAgIG91dC5wcmludGxuKHZhck5hbWUoYmxvY2spLCAiLnByZWRlY2Vzc29ycy5wdXNoKCIsIHZh
ck5hbWUocHJlZGVjZXNzb3IpLCAiKTsiKTsKKyAgICAgICAgCisgICAgICAgIGZvciAoSW5zdCYg
aW5zdCA6ICpibG9jaykgeworICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QgPSBuZXcgSW5z
dCgiLCBpbnN0Lm9wY29kZSwgIik7Iik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGluc3Qu
Zm9yRWFjaEFyZygKKyAgICAgICAgICAgICAgICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUsIEFy
Zzo6VHlwZSwgQXJnOjpXaWR0aCkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFyZy5r
aW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkludmFsaWQ6CisgICAgICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBBcmc6OlRtcDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5w
cmludGxuKCJhcmcgPSBBcmcuY3JlYXRlVG1wKCIsIHZhck5hbWUoYXJnLnRtcCgpKSwgIik7Iik7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6SW1tOgorICAgICAgICAgICAgICAgICAg
ICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVJbW0oIiwgYXJnLnZhbHVlKCksICIp
OyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkJpZ0ltbToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKCIsIGFyZy52
YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpCaXRJbW06Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpdElt
bSgiLCBhcmcudmFsdWUoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6
Qml0SW1tNjQ6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJn
LmNyZWF0ZUJpdEltbTY0KCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQXJnOjpBZGRyOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4o
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZyA9IEFyZy5jcmVhdGVBZGRyKCIsIHZh
ck5hbWUoYXJnLmJhc2UoKSksICIsICIsIGFyZy5vZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgICAgICBjYXNlIEFyZzo6U3RhY2s6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQu
cHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZVN0
YWNrKCIsIHZhck5hbWUoYXJnLnN0YWNrU2xvdCgpKSwgIiwgIiwgYXJnLm9mZnNldCgpLCAiKTsi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpDYWxsQXJnOgorICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKCIsIGFyZy5v
ZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6SW5kZXg6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZUluZGV4KCIsIHZhck5hbWUoYXJnLmJhc2UoKSksICIs
ICIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyTmFtZShhcmcuaW5kZXgoKSksICIs
ICIsIGFyZy5zY2FsZSgpLCAiLCAiLCBhcmcub2Zmc2V0KCksICIpOyIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBBcmc6OlJlbENvbmQ6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQu
cHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoIiwgYXJnLmFzUmVsYXRpb25hbENvbmRp
dGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpSZXNDb25kOgor
ICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVSZXND
b25kKCIsIGFyZy5hc1Jlc3VsdENvbmRpdGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQXJnOjpEb3VibGVDb25kOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnBy
aW50bG4oImFyZyA9IEFyZy5jcmVhdGVEb3VibGVDb25kKCIsIGFyZy5hc0RvdWJsZUNvbmRpdGlv
bigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpTcGVjaWFsOgorICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gSlMtQWlyIGRvZXNuJ3QgaGF2ZSBTcGVjaWFscy4KKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpXaWR0aEFyZzoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlV2lkdGhBcmcoIiwgYXJnLndpZHRo
KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG91dC5w
cmludGxuKCJpbnN0LmFyZ3MucHVzaChhcmcpOyIpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5zdC5vcGNvZGUgPT0gUGF0Y2gpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoaW5zdC5oYXNOb25BcmdFZmZlY3RzKCkpCisgICAgICAgICAgICAgICAg
ICAgIG91dC5wcmludGxuKCJpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7Iik7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFF
YXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Iik7CisgICAgICAgICAgICAgICAgb3V0LnBy
aW50bG4oImluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOyIpOworICAgICAgICAg
ICAgICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoKS5mb3JFYWNoKAorICAgICAgICAg
ICAgICAgICAgICBbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5w
cmludGxuKCJpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZCgiLCB2YXJOYW1lKHJlZyks
ICIpOyIpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncygpLmZvckVhY2goCisgICAgICAgICAgICAgICAgICAgIFsmXSAoUmVn
IHJlZykgeworICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZCgiLCB2YXJOYW1lKHJlZyksICIpOyIpOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigi
aW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsiKTsKKyAgICAgICAgICAgICAgICBpbnN0LmZvckVhY2hB
cmcoCisgICAgICAgICAgICAgICAgICAgIFsmXSAoQXJnJiBhcmcsIEFyZzo6Um9sZSByb2xlLCBB
cmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0aCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy4iLCByb2xlLCAiLCB0eXBlOiAiLCB0eXBlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIsIHdpZHRoOiAiLCB3aWR0aCwgIn0pOyIpOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgaWYgKGluc3Qub3Bjb2RlID09IENDYWxsIHx8IGluc3Qub3Bjb2RlID09IENDYWxsQ3VzdG9t
KSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuY0NhbGxUeXBlID0gIiwgaW5z
dC5vcmlnaW4tPnR5cGUoKSk7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuY0Nh
bGxBcmdUeXBlcyA9IFtdOyIpOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7
IGkgPCBpbnN0Lm9yaWdpbi0+bnVtQ2hpbGRyZW4oKTsgKytpKQorICAgICAgICAgICAgICAgICAg
ICBvdXQucHJpbnRsbigiaW5zdC5jQ2FsbEFyZ1R5cGVzLnB1c2goIiwgaW5zdC5vcmlnaW4tPmNo
aWxkKGkpLT50eXBlKCksICIpOyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgICAgICBvdXQucHJpbnRsbih2YXJOYW1lKGJsb2NrKSwgIi5hcHBlbmQoaW5zdCk7Iik7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK30gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKwor
I2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyRHVtcEFzSlMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckR1bXBBc0pTLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckR1bXBBc0pTLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFp
ckR1bXBBc0pTX2gKKyNkZWZpbmUgQWlyRHVtcEFzSlNfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkK
KworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisKK2NsYXNzIENvZGU7CisKKy8vIFRoaXMgaXMgYSBq
b2tlLiBWYXJpb3VzIG9wZXJhdGlvbnMgb24gQWlyIGFyZSBpbnRlcmVzdGluZyBmcm9tIGEgYmVu
Y2htYXJraW5nIHN0YW5kcG9pbnQuIFdlIGNhbgorLy8gd3JpdGUgc29tZSBBaXIgcGhhc2VzIGlu
IEpTIGFuZCB0aGVuIHVzZSB0aGF0IHRvIGJlbmNobWFyayBKUy4KK3ZvaWQgZHVtcEFzSlMoQ29k
ZSYsIFByaW50U3RyZWFtJik7CisKK30gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKwor
I2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBBaXJEdW1wQXNKU19oCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhPYnZpb3Vz
U3BpbGxzLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJGaXhPYnZpb3VzU3BpbGxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIK
ICNpbmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKICNpbmNs
dWRlICJBaXJQaGFzZVNjb3BlLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIkFpckFsbG9jYXRlU3RhY2suaCIKICNpbmNsdWRlICJBaXJDb2Rl
LmgiCisjaW5jbHVkZSAiQWlyRHVtcEFzSlMuaCIKICNpbmNsdWRlICJBaXJFbGltaW5hdGVEZWFk
Q29kZS5oIgogI2luY2x1ZGUgIkFpckZpeE9idmlvdXNTcGlsbHMuaCIKICNpbmNsdWRlICJBaXJG
aXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuaCIKQEAgLTEwMiw2ICsxMDMsMTEgQEAgdm9pZCBwcmVw
YXJlRm9yR2VuZXJhdGlvbihDb2RlJiBjb2RlKQogICAgIC8vIFByaW9yIHRvIHRoaXMgcG9pbnQg
dGhlIHByb2xvZ3VlIGFuZCBlcGlsb2d1ZSBpcyBpbXBsaWNpdC4gVGhpcyBtYWtlcyBpdCBleHBs
aWNpdC4gSXQgYWxzbwogICAgIC8vIGRvZXMgdGhpbmdzIGxpa2UgaWRlbnRpZnkgd2hpY2ggY2Fs
bGVlLXNhdmVzIHdlJ3JlIHVzaW5nIGFuZCBzYXZlcyB0aGVtLgogICAgIGhhbmRsZUNhbGxlZVNh
dmVzKGNvZGUpOworICAgIAorICAgIGlmIChPcHRpb25zOjpkdW1wQWlyQXNKU0JlZm9yZUFsbG9j
YXRlU3RhY2soKSkgeworICAgICAgICBkYXRhTG9nKCJEdW1waW5nIEFpciBhcyBKUyBiZWZvcmUg
YWxsb2NhdGVTdGFjazpcbiIpOworICAgICAgICBkdW1wQXNKUyhjb2RlLCBXVEY6OmRhdGFGaWxl
KCkpOworICAgIH0KIAogICAgIC8vIFRoaXMgdHVybnMgYWxsIFN0YWNrIGFuZCBDYWxsQXJnIEFy
Z3MgaW50byBBZGRyIGFyZ3MgdGhhdCB1c2UgdGhlIGZyYW1lIHBvaW50ZXIuIEl0IGRvZXMKICAg
ICAvLyB0aGlzIGJ5IGZpcnN0LWZpdCBhbGxvY2F0aW5nIHN0YWNrIHNsb3RzLiBJdCBzaG91bGQg
YmUgcHJldHR5IGRhcm4gY2xvc2UgdG8gb3B0aW1hbCwgc28gd2UKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgJKHJldmlzaW9uIDIwMTcxNikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNjUgKzM2LDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeyBuYW1lc3BhY2UgQWlyIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEZvckVh
Y2g7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNoPFRtcD4gewotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQgZm9yRWFjaChJbnN0JiBpbnN0LCBjb25zdCBG
dW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAgICAgaW5zdC5mb3JFYWNoVG1wKGZ1bmN0b3Ip
OwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8QXJnPiB7Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEluc3QmIGlu
c3QsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAgICAgICBpbnN0LmZvckVhY2hB
cmcoZnVuY3Rvcik7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxTdGFj
a1Nsb3QqPiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9p
ZCBmb3JFYWNoKEluc3QmIGluc3QsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAg
ICAgICBpbnN0LmZvckVhY2hBcmcoCi0gICAgICAgICAgICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJv
bGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIWFyZy5pc1N0YWNrKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgICAgICBTdGFja1Nsb3QqIHN0YWNrU2xvdCA9IGFyZy5zdGFja1Nsb3QoKTsKLQot
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdheSB0b28gb3B0aW1pc3RpYyBhYm91
dCB0aGUgbWVhbmluZyBvZiAiRGVmIi4gSXQgZ2V0cyBsdWNreSBmb3IKLSAgICAgICAgICAgICAg
ICAvLyBub3cgYmVjYXVzZSBvdXIgb25seSB1c2Ugb2YgIkFub255bW91cyIgc3RhY2sgc2xvdHMg
aGFwcGVucyB0byB3YW50IHRoZSBvcHRpbWlzdGljCi0gICAgICAgICAgICAgICAgLy8gc2VtYW50
aWNzLiBXZSBjb3VsZCBmaXggdGhpcyBieSBqdXN0IGNoYW5naW5nIHRoZSBjb21tZW50cyB0aGF0
IGRlc2NyaWJlIHRoZQotICAgICAgICAgICAgICAgIC8vIHNlbWFudGljcyBvZiAiQW5vbnltb3Vz
Ii4KLSAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUxMTI4Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZnVuY3Rvcihz
dGFja1Nsb3QsIHJvbGUsIHR5cGUsIHdpZHRoKTsKLSAgICAgICAgICAgICAgICBhcmcgPSBBcmc6
OnN0YWNrKHN0YWNrU2xvdCwgYXJnLm9mZnNldCgpKTsKLSAgICAgICAgICAgIH0pOwotICAgIH0K
LX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8UmVnPiB7Ci0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEluc3QmIGluc3QsIGNvbnN0
IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAgICAgICBpbnN0LmZvckVhY2hUbXAoCi0gICAg
ICAgICAgICBbJl0gKFRtcCYgdG1wLCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFy
Zzo6V2lkdGggd2lkdGgpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXRtcC5pc1JlZygpKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBSZWcgcmVnID0gdG1w
LnJlZygpOwotICAgICAgICAgICAgICAgIGZ1bmN0b3IocmVnLCByb2xlLCB0eXBlLCB3aWR0aCk7
Ci0gICAgICAgICAgICAgICAgdG1wID0gVG1wKHJlZyk7Ci0gICAgICAgICAgICB9KTsKLSAgICB9
Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUaGluZywgdHlwZW5hbWUgRnVuY3Rvcj4KIHZvaWQg
SW5zdDo6Zm9yRWFjaChjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQogewotICAgIEZvckVhY2g8VGhp
bmc+Ojpmb3JFYWNoKCp0aGlzLCBmdW5jdG9yKTsKKyAgICBmb3JFYWNoQXJnKAorICAgICAgICBb
Jl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGgg
d2lkdGgpIHsKKyAgICAgICAgICAgIGFyZy5mb3JFYWNoPFRoaW5nPihyb2xlLCB0eXBlLCB3aWR0
aCwgZnVuY3Rvcik7CisgICAgICAgIH0pOwogfQogCiBpbmxpbmUgY29uc3QgUmVnaXN0ZXJTZXQm
IEluc3Q6OmV4dHJhQ2xvYmJlcmVkUmVncygpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckxvZ1JlZ2lzdGVyUHJlc3N1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG9nUmVnaXN0ZXJQcmVzc3VyZS5jcHAJKHJldmlzaW9u
IDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG9nUmVnaXN0ZXJQ
cmVzc3VyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJM
RShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29k
ZS5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyTGl2ZW5lc3Mu
aCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUmVwb3J0VXNlZFJlZ2lz
dGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJS
ZXBvcnRVc2VkUmVnaXN0ZXJzLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJSZXBvcnRVc2VkUmVnaXN0ZXJzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFp
ckFyZ0lubGluZXMuaCIKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zdElu
bGluZXMuaCIKICNpbmNsdWRlICJBaXJMaXZlbmVzcy5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BpbGxFdmVyeXRoaW5nLmNwcAkocmV2aXNpb24g
MjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNf
SklUKQogCisjaW5jbHVkZSAiQWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIK
ICNpbmNsdWRlICJBaXJJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5o
IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVy
YXRvci5yYgkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9vcGNvZGVfZ2VuZXJhdG9yLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xMDkwLDMgKzEwOTAsOTUg
QEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgb3V0cC5wdXRzICJ9IH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMzo6QWlyIgogfQogCisjIFRoaXMgaXMgYSBoYWNrIGZvciBKU0Fpci4g
SXQncyBhIGpva2UuCitGaWxlLm9wZW4oIkpTQWlyX29wY29kZS5qcyIsICJ3IikgeworICAgIHwg
b3V0cCB8CisgICAgb3V0cC5wdXRzICJcInVzZSBzdHJpY3RcIjsiCisgICAgb3V0cC5wdXRzICIv
LyBHZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYiBmcm9tICN7JGZpbGVOYW1lfSAtLSBk
byBub3QgZWRpdCEiCisgICAgCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8
IG9wY29kZSB8CisgICAgICAgIG91dHAucHV0cyAiY29uc3QgI3tvcGNvZGUubmFtZX0gPSBTeW1i
b2woI3tvcGNvZGUubmFtZS5pbnNwZWN0fSk7IgorICAgIH0KKyAgICAKKyAgICBvdXRwLnB1dHMg
ImZ1bmN0aW9uIEluc3RfZm9yRWFjaEFyZyhpbnN0LCBmdW5jKSIKKyAgICBvdXRwLnB1dHMgInsi
CisgICAgb3V0cC5wdXRzICJsZXQgcmVwbGFjZW1lbnQ7IgorICAgIG91dHAucHV0cyAic3dpdGNo
IChpbnN0Lm9wY29kZSkgeyIKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwg
b3Bjb2RlIHwKKyAgICAgICAgb3V0cC5wdXRzICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAg
ICAgaWYgb3Bjb2RlLmN1c3RvbQorICAgICAgICAgICAgb3V0cC5wdXRzICIje29wY29kZS5uYW1l
fUN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOyIKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbmVlZE92ZXJsb2FkU3dpdGNoID0gb3Bjb2RlLm92ZXJsb2Fkcy5zaXplICE9IDEKKyAgICAg
ICAgICAgIG91dHAucHV0cyAic3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7IiBpZiBuZWVkT3Zl
cmxvYWRTd2l0Y2gKKyAgICAgICAgICAgIG9wY29kZS5vdmVybG9hZHMuZWFjaCB7CisgICAgICAg
ICAgICAgICAgfCBvdmVybG9hZCB8CisgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJjYXNlICN7
b3ZlcmxvYWQuc2lnbmF0dXJlLmxlbmd0aH06IiBpZiBuZWVkT3ZlcmxvYWRTd2l0Y2gKKyAgICAg
ICAgICAgICAgICBvdmVybG9hZC5zaWduYXR1cmUuZWFjaF93aXRoX2luZGV4IHsKKyAgICAgICAg
ICAgICAgICAgICAgfCBhcmcsIGluZGV4IHwKKyAgICAgICAgICAgICAgICAgICAgcm9sZSA9IG5p
bAorICAgICAgICAgICAgICAgICAgICBjYXNlIGFyZy5yb2xlCisgICAgICAgICAgICAgICAgICAg
IHdoZW4gIlUiCisgICAgICAgICAgICAgICAgICAgICAgICByb2xlID0gIlVzZSIKKyAgICAgICAg
ICAgICAgICAgICAgd2hlbiAiRCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiRGVm
IgorICAgICAgICAgICAgICAgICAgICB3aGVuICJaRCIKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJvbGUgPSAiWkRlZiIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiVUQiCisgICAgICAgICAg
ICAgICAgICAgICAgICByb2xlID0gIlVzZURlZiIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAi
VVpEIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJVc2VaRGVmIgorICAgICAgICAg
ICAgICAgICAgICB3aGVuICJVQSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNl
QWRkciIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiUyIKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJvbGUgPSAiU2NyYXRjaCIKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBvdXRwLnB1dHMgImluc3QudmlzaXRBcmco
I3tpbmRleH0sIGZ1bmMsIEFyZy4je3JvbGV9LCAje2FyZy50eXBlfVAsICN7YXJnLndpZHRofSk7
IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIG5lZWRP
dmVybG9hZFN3aXRjaAorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiZGVmYXVsdDoiCisgICAg
ICAgICAgICAgICAgb3V0cC5wdXRzICJ0aHJvdyBcIkJhZCBvdmVybG9hZFwiOyIKKyAgICAgICAg
ICAgICAgICBvdXRwLnB1dHMgImJyZWFrOyIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIn0i
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kCisgICAgICAgIG91dHAucHV0cyAiYnJlYWs7
IgorICAgIH0KKyAgICBvdXRwLnB1dHMgImRlZmF1bHQ6IgorICAgIG91dHAucHV0cyAidGhyb3cg
XCJCYWQgb3Bjb2RlXCI7IgorICAgIG91dHAucHV0cyAifSIKKyAgICBvdXRwLnB1dHMgIn0iCisg
ICAgCisgICAgb3V0cC5wdXRzICJmdW5jdGlvbiBJbnN0X2hhc05vbkFyZ0VmZmVjdHMoaW5zdCki
CisgICAgb3V0cC5wdXRzICJ7IgorICAgIG91dHAucHV0cyAic3dpdGNoIChpbnN0Lm9wY29kZSkg
eyIKKyAgICBmb3VuZFRydWUgPSBmYWxzZQorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAg
ICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuYXR0cmlidXRlc1s6dGVybWluYWxd
IG9yIG9wY29kZS5hdHRyaWJ1dGVzWzplZmZlY3RzXQorICAgICAgICAgICAgb3V0cC5wdXRzICJj
YXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIGZvdW5kVHJ1ZSA9IHRydWUKKyAgICAg
ICAgZW5kCisgICAgfQorICAgIGlmIGZvdW5kVHJ1ZQorICAgICAgICBvdXRwLnB1dHMgInJldHVy
biB0cnVlOyIKKyAgICBlbmQKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwg
b3Bjb2RlIHwKKyAgICAgICAgaWYgb3Bjb2RlLmN1c3RvbQorICAgICAgICAgICAgb3V0cC5wdXRz
ICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIG91dHAucHV0cyAicmV0dXJuICN7
b3Bjb2RlLm5hbWV9Q3VzdG9tLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOyIKKyAg
ICAgICAgZW5kCisgICAgfQorICAgIG91dHAucHV0cyAiZGVmYXVsdDoiCisgICAgb3V0cC5wdXRz
ICJyZXR1cm4gZmFsc2U7IgorICAgIG91dHAucHV0cyAifSIKKyAgICBvdXRwLnB1dHMgIn0iCit9
CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiAr
MzMsMTUgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NvbnN0IGNoYXIqIFJlZzo6ZGVidWdOYW1l
KCkgY29uc3QKK3sKKyAgICBpZiAoISp0aGlzKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICBpZiAoaXNHUFIoKSkKKyAgICAgICAgcmV0dXJuIEdQUkluZm86OmRlYnVnTmFtZShncHIoKSk7
CisgICAgcmV0dXJuIEZQUkluZm86OmRlYnVnTmFtZShmcHIoKSk7Cit9CisKIHZvaWQgUmVnOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgaWYgKCEqdGhpcykKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZWcuaAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZWcuaAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDYgKzE3Miw4IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1faW5kZXg7CiAgICAgfQogICAgIAorICAgIGNvbnN0IGNoYXIq
IGRlYnVnTmFtZSgpIGNvbnN0OworICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNv
bnN0OwogCiAgICAgY2xhc3MgQWxsUmVnc0l0ZXJhYmxlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAkod29ya2luZyBjb3B5KQpAQCAt
MTIxLDQgKzEyMSw1MSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAorbmFtZXNw
YWNlIFdURiB7CisKK2lubGluZSB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwg
SlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3JUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0
eXBlKSB7CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpTeW50YXhFcnJvck5vbmU6CisgICAg
ICAgIG91dC5wcmludCgiU3ludGF4RXJyb3JOb25lIik7CisgICAgICAgIHJldHVybjsKKyAgICBj
YXNlIEpTQzo6UGFyc2VyRXJyb3I6OlN5bnRheEVycm9ySXJyZWNvdmVyYWJsZToKKyAgICAgICAg
b3V0LnByaW50KCJTeW50YXhFcnJvcklycmVjb3ZlcmFibGUiKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3JVbnRlcm1pbmF0ZWRMaXRlcmFs
OgorICAgICAgICBvdXQucHJpbnQoIlN5bnRheEVycm9yVW50ZXJtaW5hdGVkTGl0ZXJhbCIpOwor
ICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpTeW50YXhFcnJvclJl
Y292ZXJhYmxlOgorICAgICAgICBvdXQucHJpbnQoIlN5bnRheEVycm9yUmVjb3ZlcmFibGUiKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOworfQorCitpbmxpbmUgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQs
IEpTQzo6UGFyc2VyRXJyb3I6OkVycm9yVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkg
eworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6RXJyb3JOb25lOgorICAgICAgICBvdXQucHJp
bnQoIkVycm9yTm9uZSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBhcnNlckVy
cm9yOjpTdGFja092ZXJmbG93OgorICAgICAgICBvdXQucHJpbnQoIlN0YWNrT3ZlcmZsb3ciKTsK
KyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6RXZhbEVycm9yOgor
ICAgICAgICBvdXQucHJpbnQoIkV2YWxFcnJvciIpOworICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBKU0M6OlBhcnNlckVycm9yOjpPdXRPZk1lbW9yeToKKyAgICAgICAgb3V0LnByaW50KCJPdXRP
Zk1lbW9yeSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpT
eW50YXhFcnJvcjoKKyAgICAgICAgb3V0LnByaW50KCJTeW50YXhFcnJvciIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiAjZW5kaWYgLy8gUGFyc2VyRXJyb3JfaApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMjAxNzE2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNjgsNiArMzY4LDggQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAg
ICAgdihib29sLCBkdW1wTW9kdWxlTG9hZGluZ1N0YXRlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRy
KSBcCiAgICAgdihib29sLCBleHBvc2VJbnRlcm5hbE1vZHVsZUxvYWRlciwgZmFsc2UsIE5vcm1h
bCwgImV4cG9zZSB0aGUgaW50ZXJuYWwgbW9kdWxlIGxvYWRlciBvYmplY3QgdG8gdGhlIGdsb2Jh
bCBzcGFjZSBmb3IgZGVidWdnaW5nIikgXAogICAgIFwKKyAgICB2KGJvb2wsIGR1bXBBaXJBc0pT
QmVmb3JlQWxsb2NhdGVTdGFjaywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAorICAgIFwKICAg
ICB2KGJvb2wsIHVzZVN1cGVyU2FtcGxlciwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikKIAogZW51
bSBPcHRpb25FcXVpdmFsZW5jZSB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgJKHJldmlzaW9uIDIw
MTcxNikKKysrIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTcwLDYgKzcwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcHJpbnRJbnRlcm5hbCgqdGhpcywgdmFs
dWUpOwogICAgICAgICBwcmludChyZW1haW5pbmdWYWx1ZXMuLi4pOwogICAgIH0KKyAgICAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KKyAgICB2b2lkIHByaW50bG4oY29uc3QgVHlw
ZXMmLi4uIHZhbHVlcykKKyAgICB7CisgICAgICAgIHByaW50KHZhbHVlcy4uLik7CisgICAgICAg
IHByaW50KCJcbiIpOworICAgIH0KIH07CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHByaW50
SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBjaGFyKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280730</attachid>
            <date>2016-06-07 12:11:59 -0700</date>
            <delta_ts>2016-06-07 12:47:47 -0700</delta_ts>
            <desc>getting pretty close</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>255973</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYWxsLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvYWxsLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9hbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorInVzZSBzdHJp
Y3QiOworCitsb2FkKCJzeW1ib2xzLmpzIik7Citsb2FkKCJ0bXBfYmFzZS5qcyIpOworbG9hZCgi
YXJnLmpzIik7Citsb2FkKCJiYXNpY19ibG9jay5qcyIpOworbG9hZCgiY29kZS5qcyIpOworbG9h
ZCgiZnJlcXVlbnRlZF9ibG9jay5qcyIpOworbG9hZCgiaW5zdC5qcyIpOworbG9hZCgib3Bjb2Rl
LmpzIik7Citsb2FkKCJyZWcuanMiKTsKK2xvYWQoInN0YWNrX3Nsb3QuanMiKTsKK2xvYWQoInRt
cC5qcyIpOworbG9hZCgidXRpbC5qcyIpOworbG9hZCgiY3VzdG9tLmpzIik7Citsb2FkKCJsaXZl
bmVzcy5qcyIpOwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9hbGxvY2F0ZV9zdGFjay5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FsbG9jYXRlX3N0YWNrLmpz
CShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9hbGxvY2F0ZV9zdGFjay5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIwOCBAQAorInVzZSBzdHJpY3QiOworLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitmdW5jdGlvbiBhbGxvY2F0
ZVN0YWNrKGNvZGUpCit7CisgICAgaWYgKGNvZGUuZnJhbWVTaXplKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkZyYW1lIHNpemUgYWxyZWFkeSBkZXRlcm1pbmVkIik7CisgICAgCisgICAgZnVu
Y3Rpb24gYXR0ZW1wdEFzc2lnbm1lbnQoc2xvdCwgb2Zmc2V0RnJvbUZQLCBvdGhlclNsb3RzKQor
ICAgIHsKKyAgICAgICAgaWYgKG9mZnNldEZyb21GUCA+IDApCisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkV4cGVjdCBuZWdhdGl2ZSBvZmZzZXQiKTsKKyAgICAgICAgCisgICAgICAgIG9m
ZnNldEZyb21GUCA9IC1yb3VuZFVwVG9NdWx0aXBsZU9mKHNsb3QuYWxpZ25tZW50LCAtb2Zmc2V0
RnJvbUZQKTsKKyAgICAgICAgCisgICAgICAgIGZvciAobGV0IG90aGVyU2xvdCBvZiBvdGhlclNs
b3RzKSB7CisgICAgICAgICAgICBpZiAoIW90aGVyU2xvdC5vZmZzZXRGcm9tRlApCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBsZXQgb3ZlcmxhcCA9IHJhbmdlc092ZXJs
YXAoCisgICAgICAgICAgICAgICAgb2Zmc2V0RnJvbUZQLAorICAgICAgICAgICAgICAgIG9mZnNl
dEZyb21GUCArIHNsb3QuYnl0ZVNpemUsCisgICAgICAgICAgICAgICAgb3RoZXJTbG90Lm9mZnNl
dEZyb21GUCwKKyAgICAgICAgICAgICAgICBvdGhlclNsb3Qub2Zmc2V0RnJvbUZQICsgb3RoZXJT
bG90LmJ5dGVTaXplKTsKKyAgICAgICAgICAgIGlmIChvdmVybGFwKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2xvdC5zZXRPZmZz
ZXRGcm9tRlAob2Zmc2V0RnJvbUZQKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gYXNzaWdu
KHNsb3QsIG90aGVyU2xvdHMpCisgICAgeworICAgICAgICBpZiAoYXR0ZW1wdEFzc2lnbm1lbnQo
c2xvdCwgLXNsb3QuYnl0ZVNpemUsIG90aGVyU2xvdHMpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgb3RoZXJTbG90IG9mIG90aGVyU2xvdHMpIHsKKyAg
ICAgICAgICAgIGlmICghb3RoZXJTbG90Lm9mZnNldEZyb21GUCkKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIGlmIChhdHRlbXB0QXNzaWdubWVudChzbG90LCBvdGhlclNs
b3Qub2Zmc2V0RnJvbUZQIC0gc2xvdC5ieXRlU2l6ZSwgb3RoZXJTbG90cykpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkFzc2lnbm1lbnQgZmFpbGVkIik7CisgICAgfQorICAgIAorICAgIC8vIEFsbG9jYXRlIGFs
bCBvZiB0aGUgZXNjYXBlZCBzbG90cyBpbiBvcmRlci4gVGhpcyBpcyBraW5kIG9mIGEgY3Jhenkg
YWxnb3JpdGhtIHRvIGFsbG93IGZvcgorICAgIC8vIHRoZSBwb3NzaWJpbGl0eSBvZiBzdGFjayBz
bG90cyBiZWluZyBhc3NpZ25lZCBmcmFtZSBvZmZzZXRzIGJlZm9yZSB3ZSBldmVuIGdldCBoZXJl
LgorICAgIGxldCBhc3NpZ25lZEVzY2FwZWRTdGFja1Nsb3RzID0gW107CisgICAgbGV0IGVzY2Fw
ZWRTdGFja1Nsb3RzV29ya2xpc3QgPSBbXTsKKyAgICBmb3IgKGxldCBzbG90IG9mIGNvZGUuc3Rh
Y2tTbG90cykgeworICAgICAgICBpZiAoc2xvdC5pc0xvY2tlZCkgeworICAgICAgICAgICAgaWYg
KHNsb3Qub2Zmc2V0RnJvbUZQKQorICAgICAgICAgICAgICAgIGFzc2lnbmVkRXNjYXBlZFN0YWNr
U2xvdHMucHVzaChzbG90KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBlc2Nh
cGVkU3RhY2tTbG90c1dvcmtsaXN0LnB1c2goc2xvdCk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBpZiAoc2xvdC5vZmZzZXRGcm9tRlApCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJPZmZzZXQgYWxyZWFkeSBhc3NpZ25lZCIpOworICAgICAgICB9CisgICAgfQorICAg
IAorICAgIC8vIFRoaXMgaXMgYSBmYWlybHkgZXNwZW5zaXZlIGxvb3AsIGJ1dCBpdCdzIE9LIGJl
Y2F1c2Ugd2UnbGwgdXN1YWxseSBvbmx5IGhhdmUgYSBoYW5kZnVsIG9mCisgICAgLy8gZXNjYXBl
ZCBzdGFjayBzbG90cy4KKyAgICB3aGlsZSAoZXNjYXBlZFN0YWNrU2xvdHNXb3JrbGlzdC5sZW5n
dGgpIHsKKyAgICAgICAgbGV0IHNsb3QgPSBlc2NhcGVkU3RhY2tTbG90c1dvcmtsaXN0LnBvcCgp
OworICAgICAgICBhc3NpZ24oc2xvdCwgYXNzaWduZWRFc2NhcGVkU3RhY2tTbG90cyk7CisgICAg
ICAgIGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHMucHVzaChzbG90KTsKKyAgICB9CisgICAgCisg
ICAgLy8gTm93IHdlIGhhbmRsZSB0aGUgc3BpbGwgc2xvdHMuCisgICAgbGV0IGxpdmVuZXNzID0g
bmV3IExpdmVuZXNzKFN0YWNrU2xvdCwgY29kZSk7CisgICAgbGV0IGludGVyZmVyZW5jZSA9IG5l
dyBNYXAoKTsKKyAgICBmb3IgKGxldCBzbG90IG9mIGNvZGUuc3RhY2tTbG90cykKKyAgICAgICAg
aW50ZXJmZXJlbmNlLnNldChzbG90LCBuZXcgU2V0KCkpOworICAgIGxldCBzbG90cyA9IFtdOwor
ICAgIAorICAgIGZvciAobGV0IGJsb2NrIG9mIGNvZGUpIHsKKyAgICAgICAgbGV0IGxvY2FsQ2Fs
YyA9IGxpdmVuZXNzLmxvY2FsQ2FsYyhibG9jayk7CisgICAgICAgIAorICAgICAgICBmdW5jdGlv
biBpbnRlcmZlcmUoaW5zdEluZGV4KQorICAgICAgICB7CisgICAgICAgICAgICBJbnN0LmZvckVh
Y2hEZWYoCisgICAgICAgICAgICAgICAgU3RhY2tTbG90LCBibG9jay5nZXQoaW5zdEluZGV4KSwg
YmxvY2suZ2V0KGluc3RJbmRleCArIDEpLAorICAgICAgICAgICAgICAgIChzbG90LCByb2xlLCB0
eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAgICAgICBpZiAoIXNsb3QuaXNTcGlsbCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG90aGVyU2xvdCBvZiBsb2NhbENhbGMubGl2ZVNl
dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmZXJlbmNlLmdldChzbG90KS5hZGQo
b3RoZXJTbG90KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmVyZW5jZS5nZXQob3Ro
ZXJTbG90KS5hZGQoc2xvdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgaW5zdEluZGV4ID0g
YmxvY2suc2l6ZTsgaW5zdEluZGV4LS07KSB7CisgICAgICAgICAgICAvLyBLaWxsIGRlYWQgc3Rv
cmVzLiBGb3Igc2ltcGxpY2l0eSB3ZSBzYXkgdGhhdCBhIHN0b3JlIGlzIGtpbGxhYmxlIGlmIGl0
IGhhcyBvbmx5IGxhdGUKKyAgICAgICAgICAgIC8vIGRlZnMgYW5kIHRob3NlIGxhdGUgZGVmcyBh
cmUgdG8gdGhpbmdzIHRoYXQgYXJlIGRlYWQgcmlnaHQgbm93LiBXZSBvbmx5IGRvIHRoYXQKKyAg
ICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCdzIHRoZSBvbmx5IGtpbmQgb2YgZGVhZCBzdGFjayBz
dG9yZSB3ZSB3aWxsIHNlZSBoZXJlLgorICAgICAgICAgICAgbGV0IGluc3QgPSBibG9jay5hdChp
bnN0SW5kZXgpOworICAgICAgICAgICAgaWYgKCFpbnN0Lmhhc05vbkFyZ0VmZmVjdHMpIHsKKyAg
ICAgICAgICAgICAgICBsZXQgb2sgPSB0cnVlOworICAgICAgICAgICAgICAgIGluc3QuZm9yRWFj
aEFyZygoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAgICAgICBp
ZiAoQXJnLmlzRWFybHlEZWYocm9sZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9rID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFBcmcuaXNMYXRlRGVmKHJvbGUpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICBpZiAoIWFy
Zy5pc1N0YWNrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBsZXQgc2xvdCA9IGFyZy5zdGFja1Ns
b3Q7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2xvdC5pc1NwaWxsKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgICAgICBpZiAobG9jYWxDYWxjLmxpdmVTZXQuaGFzKHNsb3QpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgaWYgKG9rKQorICAgICAgICAgICAgICAgICAgICBpbnN0LmNsZWFyKCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGludGVyZmVyZShpbnN0SW5kZXgpOwor
ICAgICAgICAgICAgbG9jYWxDYWxjLmV4ZWN1dGUoaW5zdEluZGV4KTsKKyAgICAgICAgfQorICAg
ICAgICBpbnRlcmZlcmUoLTEpOworICAgICAgICAKKyAgICAgICAgcmVtb3ZlQWxsTWF0Y2hpbmco
YmxvY2suaW5zdHMsIGluc3QgPT4gaW5zdC5vcGNvZGUgPT0gTm9wKTsKKyAgICB9CisgICAgCisg
ICAgLy8gTm93IHdlIGFzc2lnbiBzdGFjayBsb2NhdGlvbnMuIEF0IGl0cyBoZWFydCB0aGlzIGFs
Z29yaXRobSBpcyBqdXN0IGZpcnN0LWZpdC4gRm9yIGVhY2gKKyAgICAvLyBTdGFja1Nsb3Qgd2Ug
anVzdCB3YW50IHRvIGZpbmQgdGhlIG9mZnNldEZyb21GUCB0aGF0IGlzIGNsb3Nlc3QgdG8gemVy
byB3aGlsZSBlbnN1cmluZyBubworICAgIC8vIG92ZXJsYXAgd2l0aCBvdGhlciBTdGFja1Nsb3Rz
IHRoYXQgdGhpcyBvdmVybGFwcyB3aXRoLgorICAgIGZvciAobGV0IHNsb3Qgb2YgY29kZS5zdGFj
a1Nsb3RzKSB7CisgICAgICAgIGlmIChzbG90Lm9mZnNldEZyb21GUCkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAKKyAgICAgICAgYXNzaWduKHNsb3QsIGFzc2lnbmVkRXNjYXBlZFN0
YWNrU2xvdHMuY29uY2F0KGludGVyZmVyaW5nU2xvdHMpKTsKKyAgICB9CisgICAgCisgICAgLy8g
RmlndXJlIG91dCBob3cgbXVjaCBzdGFjayB3ZSdyZSB1c2luZyBmb3Igc3RhY2sgc2xvdHMuCisg
ICAgbGV0IGZyYW1lU2l6ZUZvclN0YWNrU2xvdHMgPSAwOworICAgIGZvciAobGV0IHNsb3Qgb2Yg
Y29kZS5zdGFja1Nsb3RzKSB7CisgICAgICAgIGZyYW1lU2l6ZUZvclN0YWNrU2xvdHMgPSBNYXRo
Lm1heCgKKyAgICAgICAgICAgIGZyYW1lU2l6ZUZvclN0YWNrU2xvdHMsCisgICAgICAgICAgICAt
c2xvdC5vZmZzZXRGcm9tRlApOworICAgIH0KKyAgICAKKyAgICBsZXQgZnJhbWVTaXplRm9yU3Rh
Y2tTbG90cyA9IHJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcywgZnJhbWVT
aXplRm9yU3RhY2tTbG90cyk7CisKKyAgICAvLyBObyB3ZSBuZWVkIHRvIGRlZHVjZSBob3cgbXVj
aCBhcmd1bWVudCBhcmVhIHdlIG5lZWQuCisgICAgZm9yIChsZXQgYmxvY2sgb2YgY29kZSkgewor
ICAgICAgICBmb3IgKGxldCBpbnN0IG9mIGJsb2NrKSB7CisgICAgICAgICAgICBmb3IgKGxldCBh
cmcgb2YgaW5zdC5hcmdzKSB7CisgICAgICAgICAgICAgICAgaWYgKGFyZy5pc0NhbGxBcmcpIHsK
KyAgICAgICAgICAgICAgICAgICAgLy8gRm9yIG5vdywgd2UgYXNzdW1lIHRoYXQgd2UgdXNlIDgg
Ynl0ZXMgb2YgdGhlIGNhbGwgYXJnLiBCdXQgdGhhdCdzIG5vdAorICAgICAgICAgICAgICAgICAg
ICAvLyBzdWNoIGFuIGF3ZXNvbWUgYXNzdW1wdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA0NTQKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGFyZy5vZmZzZXQgPCAwKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJEaWQgbm90IGV4cGVjdCBuZWdhdGl2ZSBvZmZzZXQgZm9y
IGNhbGxBcmciKTsKKyAgICAgICAgICAgICAgICAgICAgY29kZS5yZXF1ZXN0Q2FsbEFyZ0FyZWFT
aXplKGFyZy5vZmZzZXQgKyA4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9CisgICAgCisgICAgY29kZS5zZXRGcmFtZVNpemUoZnJhbWVTaXplRm9y
U3RhY2tTbG90cyArIGNvZGUuY2FsbEFyZ0FyZWFTaXplKTsKKyAgICAKKyAgICAvLyBGaW5hbGx5
IHRyYW5zZm9ybSB0aGUgY29kZSB0byB1c2UgQWRkcnMgaW5zdGVhZCBvZiBTdGFja1Nsb3RzLiBU
aGlzIGlzIGEgbG9zc2xlc3MKKyAgICAvLyB0cmFuc2Zvcm1hdGlvbiBzaW5jZSB3ZSBjYW4gc2Vh
cmNoIHRoZSBTdGFja1Nsb3RzIGFycmF5IHRvIGZpZ3VyZSBvdXQgd2hpY2ggU3RhY2tTbG90IGFu
eQorICAgIC8vIG9mZnNldC1mcm9tLUZQIHJlZmVycyB0by4KKworICAgIC8vIEZJWE1FOiBUaGlz
IG1heSBwcm9kdWNlIGFkZHJlc3NlcyB0aGF0IGFyZW4ndCB2YWxpZCBpZiB3ZSBlbmQgdXAgd2l0
aCBhIGdpbm9ybW91cyBzdGFjayBmcmFtZS4KKyAgICAvLyBXZSB3b3VsZCBoYXZlIHRvIHNjYXZl
bmdlIGZvciB0ZW1wb3JhcmllcyBpZiB0aGlzIGhhcHBlbmVkLiBGb3J0dW5hdGVseSwgdGhpcyBj
YXNlIHdpbGwgYmUKKyAgICAvLyBleHRyZW1lbHkgcmFyZSBzbyB3ZSBjYW4gZG8gY3JhenkgdGhp
bmdzIHdoZW4gaXQgYXJpc2VzLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTI1MzAKKyAgICAKKyAgICAvLyBGSVhNRSAtIG5lZWQgYW4gaW5zZXJ0aW9u
IHNldAorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9hcmcuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9hcmcuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3Jt
YW5jZVRlc3RzL0pTQWlyL2FyZy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkyNiBAQAor
InVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCitjbGFzcyBBcmcgeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHRoaXMu
X2tpbmQgPSBBcmcuSW52YWxpZDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzQW55VXNlKHJv
bGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNl
OgorICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6Cisg
ICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAg
ICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2Fz
ZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcu
RWFybHlEZWY6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9
CisgICAgCisgICAgc3RhdGljIGlzQ29sZFVzZShyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
IChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLkxh
dGVDb2xkVXNlOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLlVz
ZToKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgor
ICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAg
IGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2Ug
QXJnLlNjcmF0Y2g6CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc1dhcm1V
c2Uocm9sZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBcmcuaXNBbnlVc2Uocm9sZSkgJiYgIUFy
Zy5pc0NvbGRVc2Uocm9sZSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjb29sZWQocm9sZSkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkKKyAgICAgICAgeworICAgICAgICBjYXNlIEFy
Zy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgY2FzZSBB
cmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5E
ZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6Cisg
ICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAg
ICAgICAgICAgcmV0dXJuIHJvbGU7CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgICAg
IHJldHVybiBBcmcuQ29sZFVzZTsKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAg
ICAgIHJldHVybiBBcmcuTGF0ZUNvbGRVc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBz
dGF0aWMgaXNFYXJseVVzZShyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7Cisg
ICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAg
Y2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRl
ZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToK
KyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6
CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIp
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0xhdGVVc2Uocm9sZSkKKyAg
ICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgor
ICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAg
ICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2Fz
ZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5a
RGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5FYXJseURl
ZjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgaXNBbnlEZWYocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkg
eworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAg
ICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAg
IGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBB
cmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuRWFy
bHlEZWY6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJv
bGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNFYXJseURlZihyb2xl
KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLlVzZToK
KyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAg
ICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBj
YXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJn
LlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBBcmcu
U2NyYXRjaDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQor
ICAgIAorICAgIHN0YXRpYyBpc0xhdGVEZWYocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAo
cm9sZSkgeworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6
CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6Cisg
ICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAg
ICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNh
c2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
QmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNaRGVmKHJv
bGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNl
OgorICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgor
ICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAg
IGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgIGNh
c2UgQXJnLlNjcmF0Y2g6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFy
Zy5Vc2VaRGVmOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9
CisgICAgCisgICAgc3RhdGljIHR5cGVGb3JCM1R5cGUodHlwZSkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEludDMyOgorICAgICAgICBjYXNlIEludDY0Ogor
ICAgICAgICAgICAgcmV0dXJuIEdQOworICAgICAgICBjYXNlIEZsb2F0OgorICAgICAgICBjYXNl
IERvdWJsZToKKyAgICAgICAgICAgIHJldHVybiBGUDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIEIzIHR5cGUiKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICAKKyAgICBzdGF0aWMgd2lkdGhGb3JCM1R5cGUodHlwZSkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEludDMyOgorICAgICAgICBjYXNlIEZsb2F0Ogor
ICAgICAgICAgICAgcmV0dXJuIDMyOworICAgICAgICBjYXNlIEludDY0OgorICAgICAgICBjYXNl
IERvdWJsZToKKyAgICAgICAgICAgIHJldHVybiA2NDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIEIzIHR5cGUiKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICAKKyAgICBzdGF0aWMgY29uc2VydmF0aXZlV2lkdGgodHlwZSkKKyAgICB7CisgICAgICAg
IHJldHVybiB0eXBlID09IEdQID8gUHRyIDogNjQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBt
aW5pbXVtV2lkdGgodHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0eXBlID09IEdQID8gOCA6
IDMyOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYnl0ZXMod2lkdGgpCisgICAgeworICAgICAg
ICByZXR1cm4gd2lkdGggLyA4OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgd2lkdGhGb3JCeXRl
cyhieXRlcykKKyAgICB7CisgICAgICAgIHN3aXRjaCAoYnl0ZXMpIHsKKyAgICAgICAgY2FzZSAw
OgorICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gODsKKyAgICAgICAgY2FzZSAy
OgorICAgICAgICAgICAgcmV0dXJuIDE2OworICAgICAgICBjYXNlIDM6CisgICAgICAgIGNhc2Ug
NDoKKyAgICAgICAgICAgIHJldHVybiAzMjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IGlmIChieXRlcyA+IDgpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgbnVt
YmVyIG9mIGJ5dGVzIik7CisgICAgICAgICAgICByZXR1cm4gNjQ7CisgICAgICAgIH0KKyAgICB9
CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVRtcCh0bXApCisgICAgeworICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuVG1wOworICAgICAg
ICByZXN1bHQuX3RtcCA9IHRtcDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAg
CisgICAgc3RhdGljIGZyb21SZWcocmVnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFyZy5jcmVh
dGVUbXAocmVnKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUltbSh2YWx1ZSkKKyAg
ICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2lu
ZCA9IEFyZy5JbW07CisgICAgICAgIHJlc3VsdC5fdmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUJpZ0ltbSh2YWx1ZSkK
KyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5f
a2luZCA9IEFyZy5CaWdJbW07CisgICAgICAgIHJlc3VsdC5fdmFsdWUgPSB2YWx1ZTsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUJpdEltbSh2
YWx1ZSkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJl
c3VsdC5fa2luZCA9IEFyZy5CaXRJbW07CisgICAgICAgIHJlc3VsdC5fdmFsdWUgPSB2YWx1ZTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUJp
dEltbTY0KHZhbHVlKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAg
ICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkJpdEltbTY0OworICAgICAgICByZXN1bHQuX3ZhbHVl
ID0gdmFsdWU7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBjcmVhdGVBZGRyKGJhc2UsIG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPT0g
bnVsbCkKKyAgICAgICAgICAgIG9mZnNldCA9IDA7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcg
QXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5BZGRyOworICAgICAgICByZXN1bHQu
X2Jhc2UgPSBiYXNlOworICAgICAgICByZXN1bHQuX29mZnNldCA9IG9mZnNldDsKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVN0YWNrKHNsb3Qs
IG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChvZmZzZXQgPT0gbnVsbCkKKyAgICAgICAgICAg
IG9mZnNldCA9IDA7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJl
c3VsdC5fa2luZCA9IEFyZy5TdGFjazsKKyAgICAgICAgcmVzdWx0Ll9zbG90ID0gc2xvdDsKKyAg
ICAgICAgcmVzdWx0Ll9vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVDYWxsQXJnKG9mZnNldCkKKyAgICB7CisgICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5D
YWxsQXJnOworICAgICAgICByZXN1bHQuX29mZnNldCA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVN0YWNrQWRkcihvZmZzZXRG
cm9tRlAsIGZyYW1lU2l6ZSwgd2lkdGgpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gQXJn
LmNyZWF0ZUFkZHIoUmVnLmNhbGxGcmFtZVJlZ2lzdGVyLCBvZmZzZXRGcm9tRlApOworICAgICAg
ICBpZiAoIXJlc3VsdC5pc1ZhbGlkRnJvbSh3aWR0aCkpCisgICAgICAgICAgICByZXN1bHQgPSBB
cmcuY3JlYXRlQWRkcihSZWcuc3RhY2tQb2ludGVyUmVnaXN0ZXIsIG9mZnNldEZyb21GUCArIGZy
YW1lU2l6ZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBpc1ZhbGlkU2NhbGUoc2NhbGUsIHdpZHRoKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChzY2Fs
ZSkgeworICAgICAgICBjYXNlIDE6CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgY2FzZSA0Ogor
ICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgbG9nU2NhbGUoc2NhbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHNjYWxlKSB7
CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjYXNlIDI6
CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmV0
dXJuIDI7CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgc2NhbGUiKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlSW5kZXgoYmFzZSwgaW5kZXgsIHNj
YWxlLCBvZmZzZXQpCisgICAgeworICAgICAgICBpZiAoc2NhbGUgPT0gbnVsbCkKKyAgICAgICAg
ICAgIHNjYWxlID0gMTsKKyAgICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQorICAgICAgICAgICAg
b2Zmc2V0ID0gMDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVz
dWx0Ll9raW5kID0gQXJnLkluZGV4OworICAgICAgICByZXN1bHQuX2Jhc2UgPSBiYXNlOworICAg
ICAgICByZXN1bHQuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHJlc3VsdC5fc2NhbGUgPSBzY2Fs
ZTsKKyAgICAgICAgcmVzdWx0Ll9vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVSZWxDb25kKGNvbmRpdGlvbikKKyAg
ICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2lu
ZCA9IEFyZy5SZWxDb25kOworICAgICAgICByZXN1bHQuX2NvbmRpdGlvbiA9IGNvbmRpdGlvbjsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVJl
c0NvbmQoY29uZGl0aW9uKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsK
KyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlJlc0NvbmQ7CisgICAgICAgIHJlc3VsdC5fY29u
ZGl0aW9uID0gY29uZGl0aW9uOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgY3JlYXRlRG91YmxlQ29uZChjb25kaXRpb24pCisgICAgeworICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuRG91Ymxl
Q29uZDsKKyAgICAgICAgcmVzdWx0Ll9jb25kaXRpb24gPSBjb25kaXRpb247CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVXaWR0aCh3aWR0aCkK
KyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5f
a2luZCA9IEFyZy5XaWR0aDsKKyAgICAgICAgcmVzdWx0Ll93aWR0aCA9IHdpZHRoOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBnZXQga2luZCgpIHsgcmV0dXJuIHRo
aXMuX2tpbmQ7IH0KKyAgICBnZXQgaXNUbXAoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5U
bXA7IH0KKyAgICBnZXQgaXNJbW0oKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5JbW07IH0K
KyAgICBnZXQgaXNCaWdJbW0oKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5CaWdJbW07IH0K
KyAgICBnZXQgaXNCaXRJbW0oKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5CaXRJbW07IH0K
KyAgICBnZXQgaXNCaXRJbW02NCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkJpdEltbTY0
OyB9CisgICAgZ2V0IGlzU29tZUltbSgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tp
bmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAgICBjYXNlIEFyZy5CaWdJbW06Cisg
ICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tNjQ6CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBnZXQgaXNBZGRyKCkgeyByZXR1cm4gdGhp
cy5fa2luZCA9PSBBcmcuQWRkcjsgfQorICAgIGdldCBpc1N0YWNrKCkgeyByZXR1cm4gdGhpcy5f
a2luZCA9PSBBcmcuU3RhY2s7IH0KKyAgICBnZXQgaXNDYWxsQXJnKCkgeyByZXR1cm4gdGhpcy5f
a2luZCA9PSBBcmcuQ2FsbEFyZzsgfQorICAgIGdldCBpc0luZGV4KCkgeyByZXR1cm4gdGhpcy5f
a2luZCA9PSBBcmcuSW5kZXg7IH0KKyAgICBnZXQgaXNNZW1vcnkoKQorICAgIHsKKyAgICAgICAg
c3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNh
c2UgQXJnLlN0YWNrOgorICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICBjYXNlIEFy
Zy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIGdldCBpc1N0YWNr
TWVtb3J5KCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBj
YXNlIEFyZy5BZGRyOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UgPT0gUmVnLmNhbGxG
cmFtZVJlZ2lzdGVyCisgICAgICAgICAgICAgICAgfHwgdGhpcy5fYmFzZSA9PSBSZWcuc3RhY2tQ
b2ludGVyUmVnaXN0ZXI7CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAgICAgICBjYXNlIEFy
Zy5DYWxsQXJnOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgZ2V0IGlzUmVs
Q29uZCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlJlbENvbmQ7IH0KKyAgICBnZXQgaXNS
ZXNDb25kKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuUmVzQ29uZDsgfQorICAgIGdldCBp
c0RvdWJsZUNvbmQoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5Eb3VibGVDb25kOyB9Cisg
ICAgZ2V0IGlzQ29uZGl0aW9uKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkg
eworICAgICAgICBjYXNlIEFyZy5SZWxDb25kOgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgor
ICAgICAgICBjYXNlIEFyZy5Eb3VibGVDb25kOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAg
ICB9CisgICAgZ2V0IGlzV2lkdGgoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5XaWR0aDsg
fQorICAgIGdldCBpc0FsaXZlKCkgeyByZXR1cm4gdGhpcy5pc1RtcCB8fCB0aGlzLmlzU3RhY2s7
IH0KKyAgICAKKyAgICBnZXQgdG1wKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5kICE9
IEFyZy5UbXApCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAudG1wIGZvciBu
b24tdG1wIik7CisgICAgICAgIHJldHVybiB0aGlzLl90bXA7CisgICAgfQorICAgIAorICAgIGdl
dCB2YWx1ZSgpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNTb21lSW1tKQorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnZhbHVlIGZvciBub24taW1tIik7CisgICAgICAg
IHJldHVybiB0aGlzLl92YWx1ZTsKKyAgICB9CisgICAgCisgICAgZ2V0IGJhc2UoKQorICAgIHsK
KyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6Cisg
ICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2U7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuYmFz
ZSBmb3Igbm9uLWFkZHJlc3MiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgaGFz
T2Zmc2V0KCkgeyByZXR1cm4gdGhpcy5pc01lbW9yeTsgfQorICAgIAorICAgIGdldCBvZmZzZXQo
KQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJn
LkFkZHI6CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICBjYXNlIEFyZy5TdGFjazoK
KyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9vZmZz
ZXQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxl
ZCAub2Zmc2V0IGZvciBub24tYWRkcmVzcyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAg
IGdldCBzdGFja1Nsb3QoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLlN0
YWNrKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnN0YWNrU2xvdCBmb3Ig
bm9uLWFkZHJlc3MiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Nsb3Q7CisgICAgfQorICAgIAor
ICAgIGdldCBpbmRleCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBBcmcuSW5k
ZXgpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuaW5kZXggZm9yIG5vbi1J
bmRleCIpOworICAgICAgICByZXR1cm4gdGhpcy5faW5kZXg7CisgICAgfQorICAgIAorICAgIGdl
dCBzY2FsZSgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBBcmcuSW5kZXgpCisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuc2NhbGUgZm9yIG5vbi1JbmRleCIp
OworICAgICAgICByZXR1cm4gdGhpcy5fc2NhbGU7CisgICAgfQorICAgIAorICAgIGdldCBsb2dT
Y2FsZSgpCisgICAgeworICAgICAgICByZXR1cm4gQXJnLmxvZ1NjYWxlKHRoaXMuc2NhbGUpOwor
ICAgIH0KKyAgICAKKyAgICBnZXQgd2lkdGgoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tp
bmQgIT0gQXJnLldpZHRoKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLndp
ZHRoIGZvciBub24tV2lkdGgiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3dpZHRoOworICAgIH0K
KyAgICAKKyAgICBnZXQgaXNHUFRtcCgpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYgdGhpcy50bXAu
aXNHUDsgfQorICAgIGdldCBpc0ZQVG1wKCkgeyByZXR1cm4gdGhpcy5pc1RtcCAmJiB0aGlzLnRt
cC5pc0ZQOyB9CisgICAgCisgICAgZ2V0IGlzR1AoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0
aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkltbToKKyAgICAgICAgY2FzZSBBcmcuQmln
SW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbTY0
OgorICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAg
ICAgY2FzZSBBcmcuU3RhY2s6CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgIGNh
c2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2Ug
QXJnLkRvdWJsZUNvbmQ6CisgICAgICAgIGNhc2UgQXJnLldpZHRoOgorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0aGlz
LmlzR1BUbXA7CisgICAgICAgIGNhc2UgQXJnLkludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCBraW5kIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0IGlzRlAoKQorICAgIHsK
KyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkltbToKKyAg
ICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAg
ICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoKKyAgICAgICAg
Y2FzZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuV2lkdGg6CisgICAgICAgIGNh
c2UgQXJnLkludmFsaWQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2Ug
QXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICBjYXNlIEFyZy5TdGFj
azoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgY2FzZSBBcmcuQmlnSW1tOgor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLmlzRlBUbXA7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCBraW5kIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAg
Z2V0IGhhc1R5cGUoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAg
ICAgIGNhc2UgQXJnLkltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNl
IEFyZy5CaXRJbW02NDoKKyAgICAgICAgY2FzZSBBcmcuVG1wOgorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0IHR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuaXNHUCA/IEdQIDogRlA7CisgICAgfQorICAgIAorICAgIGlzVHlwZSh0eXBlKQorICAg
IHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgQXJnLkdQOgorICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuaXNHUDsKKyAgICAgICAgY2FzZSBBcmcuRlA6CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5pc0ZQOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJCYWQgdHlwZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGlzQ29t
cGF0aWJsZVR5cGUob3RoZXIpCisgICAgeworICAgICAgICBpZiAodGhpcy5oYXNUeXBlKQorICAg
ICAgICAgICAgcmV0dXJuIG90aGVyLmlzVHlwZSh0aGlzLnR5cGUpOworICAgICAgICBpZiAob3Ro
ZXIuaGFzVHlwZSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmlzVHlwZShvdGhlci50eXBlKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGdldCBpc0dQUigpIHsgcmV0
dXJuIHRoaXMuaXNUbXAgJiYgdGhpcy50bXAuaXNHUFI7IH0KKyAgICBnZXQgZ3ByKCkgeyByZXR1
cm4gdGhpcy50bXAuZ3ByOyB9CisgICAgZ2V0IGlzRlBSKCkgeyByZXR1cm4gdGhpcy5pc1RtcCAm
JiB0aGlzLnRtcC5pc0ZQUjsgfQorICAgIGdldCBmcHIoKSB7IHJldHVybiB0aGlzLnRtcC5mcHI7
IH0KKyAgICBnZXQgaXNSZWcoKSB7IHJldHVybiB0aGlzLmlzVG1wICYmIHRoaXMudG1wLmlzUmVn
OyB9CisgICAgZ2V0IHJlZygpIHsgcmV0dXJuIHRoaXMudG1wLnJlZzsgfQorICAgIAorICAgIHN0
YXRpYyBpc1ZhbGlkSW1tRm9ybSh2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBpc1JlcHJl
c2VudGFibGVBc0ludDMyKHZhbHVlKTsKKyAgICB9CisgICAgc3RhdGljIGlzVmFsaWRCaXRJbW1G
b3JtKHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzUmVwcmVzZW50YWJsZUFzSW50MzIo
dmFsdWUpOworICAgIH0KKyAgICBzdGF0aWMgaXNWYWxpZEJpdEltbTY0Rm9ybSh2YWx1ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBpc1JlcHJlc2VudGFibGVBc0ludDMyKHZhbHVlKTsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIGlzVmFsaWRBZGRyRm9ybShvZmZzZXQsIHdpZHRoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc1ZhbGlkSW5k
ZXhGb3JtKHNjYWxlLCBvZmZzZXQsIHdpZHRoKQorICAgIHsKKyAgICAgICAgaWYgKCFpc1ZhbGlk
U2NhbGUoc2NhbGUsIHdpZHRoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIGlzVmFsaWRGb3JtKHdpZHRoKQorICAgIHsK
KyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLkludmFsaWQ6
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5JbW06CisgICAgICAgICAgICBy
ZXR1cm4gQXJnLmlzVmFsaWRJbW1Gb3JtKHRoaXMudmFsdWUpOworICAgICAgICBjYXNlIEFyZy5C
aWdJbW06CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuQml0SW1t
OgorICAgICAgICAgICAgcmV0dXJuIEFyZy5pc1ZhbGlkQml0SW1tRm9ybSh0aGlzLnZhbHVlKTsK
KyAgICAgICAgY2FzZSBBcmcuQml0SW1tNjQ6CisgICAgICAgICAgICByZXR1cm4gQXJnLmlzVmFs
aWRCaXRJbW02NEZvcm0odGhpcy52YWx1ZSk7CisgICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAg
ICAgIGNhc2UgQXJnLlN0YWNrOgorICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICAg
ICAgcmV0dXJuIGlzVmFsaWRBZGRyRm9ybSh0aGlzLm9mZnNldCwgd2lkdGgpOworICAgICAgICBj
YXNlIEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkSW5kZXhGb3JtKHRoaXMu
c2NhbGUsIHRoaXMub2Zmc2V0LCB3aWR0aCk7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6Cisg
ICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6Cisg
ICAgICAgIGNhc2UgQXJnLldpZHRoOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBraW5kIik7CisgICAg
ICAgIH0KKyAgICB9CisgICAgCisgICAgZm9yRWFjaFRtcEZhc3QoZnVuYykKKyAgICB7CisgICAg
ICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5UbXA6IHsKKyAgICAg
ICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1
bmModGhpcy5fdG1wKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVRtcChyZXBs
YWNlbWVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFy
Zy5BZGRyOiB7CisgICAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAo
cmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2Jhc2UpKQorICAgICAgICAgICAgICAgIHJldHVybiBB
cmcuY3JlYXRlQWRkcihyZXBsYWNlbWVudCwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJnLkluZGV4OiB7CisgICAgICAgICAgICBs
ZXQgYmFzZVJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9iYXNlKTsKKyAgICAgICAgICAgIGxldCBp
bmRleFJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9pbmRleCk7CisgICAgICAgICAgICBpZiAoYmFz
ZVJlcGxhY2VtZW50IHx8IGluZGV4UmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1
cm4gQXJnLmNyZWF0ZUluZGV4KAorICAgICAgICAgICAgICAgICAgICBiYXNlUmVwbGFjZW1lbnQg
PyBiYXNlUmVwbGFjZW1lbnQgOiB0aGlzLl9iYXNlLAorICAgICAgICAgICAgICAgICAgICBpbmRl
eFJlcGxhY2VtZW50ID8gaW5kZXhSZXBsYWNlbWVudCA6IHRoaXMuX2luZGV4LAorICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9zY2FsZSwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB1c2VzVG1wKGV4cGVjdGVkVG1w
KQorICAgIHsKKyAgICAgICAgbGV0IHVzZXNUbXAgPSBmYWxzZTsKKyAgICAgICAgZm9yRWFjaFRt
cEZhc3QodG1wID0+IHsKKyAgICAgICAgICAgIHVzZXNUbXAgfD0gdG1wID09IGV4cGVjdGVkVG1w
OworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHVzZXNUbXA7CisgICAgfQorICAgIAorICAg
IGZvckVhY2hUbXAocm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmMpCisgICAgeworICAgICAgICBzd2l0
Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuVG1wOiB7CisgICAgICAgICAgICBs
ZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMu
X3RtcCwgcm9sZSwgdHlwZSwgd2lkdGgpKQorICAgICAgICAgICAgICAgIHJldHVybiBBcmcuY3Jl
YXRlVG1wKHJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGNhc2UgQXJnLkFkZHI6IHsKKyAgICAgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAg
ICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmModGhpcy5fYmFzZSwgQXJnLlVzZSwgR1AsIHJv
bGUgPT0gQXJnLlVzZUFkZHIgPyB3aWR0aCA6IFB0cikpCisgICAgICAgICAgICAgICAgcmV0dXJu
IEFyZy5jcmVhdGVBZGRyKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZzZXQpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6IHsKKyAgICAgICAgICAg
IGxldCBiYXNlUmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2Jhc2UsIEFyZy5Vc2UsIEdQLCByb2xl
ID09IEFyZy5Vc2VBZGRyID8gd2lkdGggOiBQdHIpOworICAgICAgICAgICAgbGV0IGluZGV4UmVw
bGFjZW1lbnQgPSBmdW5jKHRoaXMuX2luZGV4LCBBcmcuVXNlLCBHUCwgcm9sZSA9PSBBcmcuVXNl
QWRkciA/IHdpZHRoIDogUHRyKTsKKyAgICAgICAgICAgIGlmIChiYXNlUmVwbGFjZW1lbnQgfHwg
aW5kZXhSZXBsYWNlbWVudCkgeworICAgICAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlSW5k
ZXgoCisgICAgICAgICAgICAgICAgICAgIGJhc2VSZXBsYWNlbWVudCA/IGJhc2VSZXBsYWNlbWVu
dCA6IHRoaXMuX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgIGluZGV4UmVwbGFjZW1lbnQgPyBp
bmRleFJlcGxhY2VtZW50IDogdGhpcy5faW5kZXgsCisgICAgICAgICAgICAgICAgICAgIHRoaXMu
X3NjYWxlLCB0aGlzLl9vZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfQorICAgIAorICAgIGlzKHRoaW5nKSB7IHJldHVybiAhIXRoaW5nLmV4dHJhY3Qo
dGhpcyk7IH0KKyAgICBhcyh0aGluZykgeyByZXR1cm4gdGhpbmcuZXh0cmFjdCh0aGlzKTsgfQor
ICAgIAorICAgIC8vIFRoaXMgbGV0cyB5b3Ugc2F5IHRoaW5ncyBsaWtlOgorICAgIC8vIGFyZy5m
b3JFYWNoKFRtcCB8IFJlZyB8IEFyZyB8IFN0YWNrU2xvdCwgLi4uKQorICAgIC8vCisgICAgLy8g
SXQncyB1c2VkIGZvciBhYnN0cmFjdCBsaXZlbmVzcyBhbmFseXNpcy4KKyAgICBmb3JFYWNoRmFz
dCh0aGluZywgZnVuYykKKyAgICB7CisgICAgICAgIHJldHVybiB0aGluZy5mb3JFYWNoRmFzdCh0
aGlzLCBmdW5jKTsKKyAgICB9CisgICAgZm9yRWFjaCh0aGluZywgcm9sZSwgdHlwZSwgd2lkdGgs
IGZ1bmMpCisgICAgeworICAgICAgICByZXR1cm4gdGhpbmcuZm9yRWFjaCh0aGlzLCByb2xlLCB0
eXBlLCB3aWR0aCwgZnVuYyk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBleHRyYWN0KGFyZykg
eyByZXR1cm4gYXJnOyB9CisgICAgc3RhdGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykgeyByZXR1
cm4gZnVuYyhhcmcpOyB9CisgICAgc3RhdGljIGZvckVhY2goYXJnLCByb2xlLCB0eXBlLCB3aWR0
aCwgZnVuYykgeyByZXR1cm4gZnVuYyhhcmcsIHJvbGUsIHR5cGUsIHdpZHRoKTsgfQorCisgICAg
Z2V0IGNvbmRpdGlvbigpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAg
ICAgICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoKKyAgICAg
ICAgY2FzZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb25kaXRp
b247CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxl
ZCAuY29uZGl0aW9uIGZvciBub24tY29uZGl0aW9uIik7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgZ2V0IGlzSW52ZXJ0aWJsZSgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tp
bmQpIHsKKyAgICAgICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuRG91Ymxl
Q29sZDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5SZXNDb25k
OgorICAgICAgICAgICAgc3dpdGNoICh0aGlzLl9jb25kaXRpb24pIHsKKyAgICAgICAgICAgIGNh
c2UgWmVybzoKKyAgICAgICAgICAgIGNhc2UgTm9uWmVybzoKKyAgICAgICAgICAgIGNhc2UgU2ln
bmVkOgorICAgICAgICAgICAgY2FzZSBQb3NpdGl2ZU9yWmVybzoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7
CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbnZhbGlk
OgorICAgICAgICAgICAgcmV0dXJuICI8aW52YWxpZD4iOworICAgICAgICBjYXNlIEFyZy5UbXA6
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fdG1wLnRvU3RyaW5nKCk7CisgICAgICAgIGNhc2Ug
QXJnLkltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICAgICAgcmV0dXJuICIk
IiArIHRoaXMuX3ZhbHVlOworICAgICAgICBjYXNlIEFyZy5CaWdJbW06CisgICAgICAgIGNhc2Ug
QXJnLkJpdEltbTY0OgorICAgICAgICAgICAgcmV0dXJuICIkMHgiICsgdGhpcy5fdmFsdWUudG9T
dHJpbmcoMTYpOworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICAgICAgcmV0dXJuICIi
ICsgKHRoaXMuX29mZnNldCA/IHRoaXMuX29mZnNldCA6ICIiKSArICIoIiArIHRoaXMuX2Jhc2Ug
KyAiKSI7CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICAgICAgcmV0dXJuICIiICsg
KHRoaXMuX29mZnNldCA/IHRoaXMuX29mZnNldCA6ICIiKSArICIoIiArIHRoaXMuX2Jhc2UgKwor
ICAgICAgICAgICAgICAgICIsIiArIHRoaXMuX2luZGV4ICsgKHRoaXMuX3NjYWxlID09IDEgPyAi
IiA6ICIsIiArIHRoaXMuX3NjYWxlKSArICIpIjsKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6Cisg
ICAgICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhpcy5fb2Zmc2V0IDogIiIp
ICsgIigiICsgdGhpcy5fc2xvdCArICIpIjsKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAg
ICAgICAgICAgIHJldHVybiAiIiArICh0aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikg
KyAiKGNhbGxBcmcpIjsKKyAgICAgICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBB
cmcuUmVzQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgY2FzZSBB
cmcuV2lkdGg6CisgICAgICAgICAgICByZXR1cm4gc3ltYm9sTmFtZSh0aGlzLl9jb25kaXRpb24p
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQga2lu
ZCIpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBBcmcga2luZHMKK0FyZy5JbnZhbGlkID0g
U3ltYm9sKCJJbnZhbGlkIik7CitBcmcuVG1wID0gU3ltYm9sKCJUbXAiKTsKK0FyZy5JbW0gPSBT
eW1ib2woIkltbSIpOworQXJnLkJpZ0ltbSA9IFN5bWJvbCgiQmlnSW1tIik7CitBcmcuQml0SW1t
ID0gU3ltYm9sKCJCaXRJbW0iKTsKK0FyZy5CaXRJbW02NCA9IFN5bWJvbCgiQml0SW1tNjQiKTsK
K0FyZy5BZGRyID0gU3ltYm9sKCJBZGRyIik7CitBcmcuU3RhY2sgPSBTeW1ib2woIlN0YWNrIik7
CitBcmcuQ2FsbEFyZyA9IFN5bWJvbCgiQ2FsbEFyZyIpOworQXJnLkluZGV4ID0gU3ltYm9sKCJJ
bmRleCIpOworQXJnLlJlbENvbmQgPSBTeW1ib2woIlJlbENvbmQiKTsKK0FyZy5SZXNDb25kID0g
U3ltYm9sKCJSZXNDb25kIik7CitBcmcuRG91YmxlQ29uZCA9IFN5bWJvbCgiRG91YmxlQ29uZCIp
OworQXJnLldpZHRoID0gU3ltYm9sKCJXaWR0aCIpOworCisvLyBBcmcgcm9sZXMKK0FyZy5Vc2Ug
PSBTeW1ib2woIlVzZSIpOworQXJnLkNvbGRVc2UgPSBTeW1ib2woIkNvbGRVc2UiKTsKK0FyZy5M
YXRlVXNlID0gU3ltYm9sKCJMYXRlVXNlIik7CitBcmcuTGF0ZUNvbGRVc2UgPSBTeW1ib2woIkxh
dGVDb2xkVXNlIik7CitBcmcuRGVmID0gU3ltYm9sKCJEZWYiKTsKK0FyZy5aRGVmID0gU3ltYm9s
KCJaRGVmIik7CitBcmcuVXNlRGVmID0gU3ltYm9sKCJVc2VEZWYiKTsKK0FyZy5Vc2VaRGVmID0g
U3ltYm9sKCJVc2VaRGVmIik7CitBcmcuRWFybHlEZWYgPSBTeW1ib2woIkVhcmx5RGVmIik7CitB
cmcuU2NyYXRjaCA9IFN5bWJvbCgiU2NyYXRjaCIpOworQXJnLlVzZUFkZHIgPSBTeW1ib2woIlVz
ZUFkZHIiKTsKKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9iYXNpY19ibG9jay5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2Jhc2ljX2Jsb2NrLmpzCShyZXZp
c2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9iYXNpY19ibG9jay5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEzMyBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBCYXNpY0Jsb2NrIHsKKyAgICBj
b25zdHJ1Y3RvcihpbmRleCwgZnJlcXVlbmN5KQorICAgIHsKKyAgICAgICAgdGhpcy5faW5kZXgg
PSBpbmRleDsKKyAgICAgICAgdGhpcy5fZnJlcXVlbmN5ID0gZnJlcXVlbmN5OworICAgICAgICB0
aGlzLl9pbnN0cyA9IFtdOworICAgICAgICB0aGlzLl9zdWNjZXNzb3JzID0gW107CisgICAgICAg
IHRoaXMuX3ByZWRlY2Vzc29ycyA9IFtdOworICAgIH0KKyAgICAKKyAgICBnZXQgaW5kZXgoKSB7
IHJldHVybiB0aGlzLl9pbmRleDsgfQorICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5faW5z
dHMubGVuZ3RoOyB9CisgICAgCisgICAgW1N5bWJvbC5pdGVyYXRvcl0oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2luc3RzW1N5bWJvbC5pdGVyYXRvcl0oKTsKKyAgICB9CisgICAgCisg
ICAgYXQoaW5kZXgpCisgICAgeworICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy5faW5zdHMubGVu
Z3RoKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPdXQgb2YgYm91bmRzIGFjY2VzcyIp
OworICAgICAgICByZXR1cm4gdGhpcy5faW5zdHNbaW5kZXhdOworICAgIH0KKyAgICAKKyAgICBn
ZXQoaW5kZXgpCisgICAgeworICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy5faW5zdHMubGVuZ3Ro
KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHJldHVybiB0aGlzLl9pbnN0c1tp
bmRleF07CisgICAgfQorICAgIAorICAgIGdldCBsYXN0KCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLl9pbnN0c1t0aGlzLl9pbnN0cy5sZW5ndGggLSAxXTsKKyAgICB9CisgICAgCisgICAg
Z2V0IGluc3RzKCkgeyByZXR1cm4gdGhpcy5faW5zdHM7IH0KKyAgICAKKyAgICBhcHBlbmQoaW5z
dCkgeyB0aGlzLl9pbnN0cy5wdXNoKGluc3QpOyB9CisgICAgCisgICAgZ2V0IG51bVN1Y2Nlc3Nv
cnMoKSB7IHJldHVybiB0aGlzLl9zdWNjZXNzb3JzLmxlbmd0aDsgfQorICAgIHN1Y2Nlc3Nvcihp
bmRleCkgeyByZXR1cm4gdGhpcy5fc3VjY2Vzc29yc1tpbmRleF07IH0KKyAgICBnZXQgc3VjY2Vz
c29ycygpIHsgcmV0dXJuIHRoaXMuX3N1Y2Nlc3NvcnM7IH0KKyAgICAKKyAgICBzdWNjZXNzb3JC
bG9jayhpbmRleCkgeyByZXR1cm4gdGhpcy5fc3VjY2Vzc29yc1tpbmRleF0uYmxvY2s7IH0KKyAg
ICBnZXQgc3VjY2Vzc29yQmxvY2tzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUHJveHko
dGhpcy5fc3VjY2Vzc29ycywgeworICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbih0YXJnZXQsIHBy
b3BlcnR5KSB7CisgICAgICAgICAgICAgICAgaWYgKChwcm9wZXJ0eSB8IDApID09IHByb3BlcnR5
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5XS5ibG9jazsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5XTsKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIHNldDogZnVuY3Rpb24odGFyZ2V0LCBwcm9wZXJ0eSwg
dmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHByb3BlcnR5IHwgMCkgPT0gcHJvcGVydHkp
IHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIG9sZFZhbHVlID0gdGFyZ2V0W3Byb3BlcnR5XTsK
KyAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W3Byb3BlcnR5XSA9IG5ldyBGcmVxdWVudGVkQmxv
Y2soCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgb2xkVmFsdWUgPyBvbGRWYWx1ZS5m
cmVxdWVuY3kgOiBOb3JtYWwpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRhcmdldFtwcm9w
ZXJ0eV0gPSB2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorICAgIAor
ICAgIGdldCBudW1QcmVkZWNlc3NvcnMoKSB7IHJldHVybiB0aGlzLl9wcmVkZWNlc3NvcnMubGVu
Z3RoOyB9CisgICAgcHJlZGVjZXNzb3IoaW5kZXgpIHsgcmV0dXJuIHRoaXMuX3ByZWRlY2Vzc29y
c1tpbmRleF07IH0KKyAgICBnZXQgcHJlZGVjZXNzb3JzKCkgeyByZXR1cm4gdGhpcy5fcHJlZGVj
ZXNzb3JzOyB9CisgICAgCisgICAgZ2V0IGZyZXF1ZW5jeSgpIHsgcmV0dXJuIHRoaXMuX2ZyZXF1
ZW5jeTsgfQorCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICIjIiArIHRo
aXMuX2luZGV4OworICAgIH0KKyAgICAKKyAgICBnZXQgaGVhZGVyU3RyaW5nKCkKKyAgICB7Cisg
ICAgICAgIGxldCByZXN1bHQgPSAiIjsKKyAgICAgICAgcmVzdWx0ICs9ICJCQiIgKyB0aGlzICsg
IjogOyBmcmVxdWVuY3kgPSAiICsgdGhpcy5fZnJlcXVlbmN5ICsgIlxuIjsKKyAgICAgICAgaWYg
KHRoaXMuX3ByZWRlY2Vzc29ycy5sZW5ndGgpCisgICAgICAgICAgICByZXN1bHQgKz0gIiAgUHJl
ZGVjZXNzb3JzOiAiICsgdGhpcy5fcHJlZGVjZXNzb3JzLmpvaW4oIiwgIikgKyAiXG4iOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBnZXQgZm9vdGVyU3RyaW5nKCkK
KyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSAiIjsKKyAgICAgICAgaWYgKHRoaXMuX3N1Y2Nl
c3NvcnMubGVuZ3RoKQorICAgICAgICAgICAgcmVzdWx0ICs9ICIgIFN1Y2Nlc3NvcnM6ICIgKyB0
aGlzLl9zdWNjZXNzb3JzLmpvaW4oIiwgIikgKyAiXG4iOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKyAgICAKKyAgICB0b1N0cmluZ0RlZXAoKQorICAgIHsKKyAgICAgICAgbGV0IHJl
c3VsdCA9ICIiOworICAgICAgICByZXN1bHQgKz0gdGhpcy5oZWFkZXJTdHJpbmc7CisgICAgICAg
IGZvciAobGV0IGluc3Qgb2YgdGhpcykKKyAgICAgICAgICAgIHJlc3VsdCArPSAiICAgICIgKyBp
bnN0ICsgIlxuIjsKKyAgICAgICAgcmVzdWx0ICs9IHRoaXMuZm9vdGVyU3RyaW5nOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KK30KKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fp
ci9jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvY29kZS5qcwko
cmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvY29kZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDk5IEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIENvZGUgeworICAgIGNvbnN0cnVjdG9y
KCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Jsb2NrcyA9IFtdOworICAgICAgICB0aGlzLl9zdGFj
a1Nsb3RzID0gW107CisgICAgICAgIHRoaXMuX2dwVG1wcyA9IFtdOworICAgICAgICB0aGlzLl9m
cFRtcHMgPSBbXTsKKyAgICAgICAgdGhpcy5fY2FsbEFyZ0FyZWFTaXplID0gMDsKKyAgICAgICAg
dGhpcy5fZnJhbWVTaXplID0gMDsKKyAgICB9CisgICAgCisgICAgYWRkQmxvY2soZnJlcXVlbmN5
KQorICAgIHsKKyAgICAgICAgaWYgKGZyZXF1ZW5jeSA9PSBudWxsKQorICAgICAgICAgICAgZnJl
cXVlbmN5ID0gMTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGFkZEluZGV4ZWQodGhpcy5fYmxvY2tz
LCBCYXNpY0Jsb2NrLCBmcmVxdWVuY3kpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KyAgICAKKyAgICBhZGRTdGFja1Nsb3QoYnl0ZVNpemUsIGtpbmQpCisgICAgeworICAgICAgICBs
ZXQgcmVzdWx0ID0gYWRkSW5kZXhlZCh0aGlzLl9zdGFja1Nsb3RzLCBTdGFja1Nsb3QsIGJ5dGVT
aXplLCBraW5kKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgbmV3
VG1wKHR5cGUpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gYWRkSW5kZXhlZCh0aGlzWyJf
IiArIHN5bWJvbE5hbWUodHlwZSkudG9Mb3dlckNhc2UoKSArICJUbXBzIl0sIFRtcCwgdHlwZSk7
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIGdldCBzaXplKCkgeyBy
ZXR1cm4gdGhpcy5fYmxvY2tzLmxlbmd0aDsgfQorICAgIGF0KGluZGV4KSB7IHJldHVybiB0aGlz
Ll9ibG9ja3NbaW5kZXhdOyB9CisgICAgCisgICAgW1N5bWJvbC5pdGVyYXRvcl0oKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX2Jsb2Nrc1tTeW1ib2wuaXRlcmF0b3JdKCk7CisgICAgfQor
ICAgIAorICAgIGdldCBibG9ja3MoKSB7IHJldHVybiB0aGlzLl9ibG9ja3M7IH0KKyAgICBnZXQg
c3RhY2tTbG90cygpIHsgcmV0dXJuIHRoaXMuX3N0YWNrU2xvdHM7IH0KKyAgICAKKyAgICB0bXBz
KHR5cGUpIHsgcmV0dXJuIHRoaXNbIl8iICsgc3ltYm9sTmFtZSh0eXBlKS50b0xvd2VyQ2FzZSgp
ICsgIlRtcHMiXTsgfQorICAgIAorICAgIGdldCBjYWxsQXJnQXJlYVNpemUoKSB7IHJldHVybiB0
aGlzLl9jYWxsQXJnQXJlYVNpemU7IH0KKyAgICAKKyAgICByZXF1ZXN0Q2FsbEFyZ0FyZWFTaXpl
KHNpemUpCisgICAgeworICAgICAgICB0aGlzLl9jYWxsQXJnQXJlYVNpemUgPSBNYXRoLm1heCh0
aGlzLl9jYWxsQXJnQXJlYVNpemUsIHJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRC
eXRlcywgc2l6ZSkpOworICAgIH0KKyAgICAKKyAgICBnZXQgZnJhbWVTaXplKCkgeyByZXR1cm4g
dGhpcy5fZnJhbWVTaXplOyB9CisgICAgCisgICAgc2V0RnJhbWVTaXplKGZyYW1lU2l6ZSkgeyB0
aGlzLl9mcmFtZVNpemUgPSBmcmFtZVNpemU7IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAg
eworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIGZvciAobGV0IGJsb2NrIG9mIHRo
aXMpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSBibG9jay50b1N0cmluZ0RlZXAoKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAodGhpcy5zdGFja1Nsb3RzLmxlbmd0aCkgeworICAgICAgICAgICAg
cmVzdWx0ICs9ICJTdGFjayBzbG90czpcbiI7CisgICAgICAgICAgICBmb3IgKGxldCBzbG90IG9m
IHRoaXMuc3RhY2tTbG90cykKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gIiAgICAiICsgc2xv
dCArICJcbiI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuX2ZyYW1lU2l6ZSkKKyAgICAg
ICAgICAgIHJlc3VsdCArPSAiRnJhbWUgc2l6ZTogIiArIHRoaXMuX2ZyYW1lU2l6ZSArICJcbiI7
CisgICAgICAgIGlmICh0aGlzLl9jYWxsQXJnQXJlYVNpemUpCisgICAgICAgICAgICByZXN1bHQg
Kz0gIkNhbGwgYXJnIGFyZWEgc2l6ZTogIiArIHRoaXMuX2NhbGxBcmdBcmVhU2l6ZSArICJcbiI7
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9jdXN0b20uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9j
dXN0b20uanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2N1c3RvbS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNCBAQAorInVzZSBzdHJpY3QiOworLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjb25zdCBTaHVmZmxlQ3Vz
dG9tID0geworICAgIGZvckVhY2hBcmcoaW5zdCwgZnVuYykKKyAgICB7CisgICAgICAgIHZhciBs
aW1pdCA9IGluc3QuYXJncy5sZW5ndGggLyAzICogMzsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBsaW1pdDsgaSArPSAzKSB7CisgICAgICAgICAgICBsZXQgc3JjID0gaW5zdC5hcmdzW2kg
KyAwXTsKKyAgICAgICAgICAgIGxldCBkc3QgPSBpbnN0LmFyZ3NbaSArIDFdOworICAgICAgICAg
ICAgbGV0IHdpZHRoQXJnID0gaW5zdC5hcmdzW2kgKyAyXTsKKyAgICAgICAgICAgIGxldCB3aWR0
aCA9IHdpZHRoQXJnLndpZHRoOworICAgICAgICAgICAgbGV0IHR5cGUgPSBzcmMuaXNHUCAmJiBk
c3QuaXNHUCA/IEdQIDogRlA7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKGkgKyAwLCBmdW5j
LCBBcmcuVXNlLCB0eXBlLCB3aWR0aCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKGkgKyAx
LCBmdW5jLCBBcmcuRGVmLCB0eXBlLCB3aWR0aCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KGkgKyAyLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIH0KKyAgICB9LAorICAgIAor
ICAgIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpCisgICAgeworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorfTsKKworY29uc3QgUGF0Y2hDdXN0b20gPSB7CisgICAgZm9yRWFj
aEFyZyhpbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnN0
LmFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoCisgICAgICAg
ICAgICAgICAgaSwgZnVuYywgaW5zdC5wYXRjaEFyZ0RhdGFbaV0ucm9sZSwgaW5zdC5wYXRjaEFy
Z0RhdGFbaV0udHlwZSwKKyAgICAgICAgICAgICAgICBpbnN0LnBhdGNoQXJnRGF0YVtpXS53aWR0
aCk7CisgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZl
Y3RzKGluc3QpCisgICAgeworICAgICAgICByZXR1cm4gaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVj
dHM7CisgICAgfQorfTsKKworY29uc3QgQ0NhbGxDdXN0b20gPSB7CisgICAgZm9yRWFjaEFyZyhp
bnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgbGV0IGluZGV4ID0gMDsKKyAgICAgICAgaW5zdC52
aXNpdEFyZyhpbmRleCsrLCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsgLy8gY2FsbGVlCisgICAg
ICAgIAorICAgICAgICBpZiAoaW5zdC5jQ2FsbFR5cGUgIT0gVm9pZCkgeworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygKKyAgICAgICAgICAgICAgICBpbmRleCsrLCBmdW5jLCBBcmcuRGVmLCBB
cmcudHlwZUZvckIzVHlwZShpbnN0LmNDYWxsVHlwZSksCisgICAgICAgICAgICAgICAgQXJnLndp
ZHRoRm9yQjNUeXBlKGluc3QuY0NhbGxUeXBlKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIGZvciAobGV0IHR5cGUgb2YgaW5zdC5jQ2FsbEFyZ1R5cGVzKSB7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKAorICAgICAgICAgICAgICAgIGluZGV4KyssIGZ1bmMsIEFyZy5Vc2UsIEFy
Zy50eXBlRm9yQjNUeXBlKHR5cGUpLCBBcmcud2lkdGhGb3JCM1R5cGUodHlwZSkpOworICAgICAg
ICB9CisgICAgfSwKKyAgICAKKyAgICBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworY29uc3QgQ29sZENDYWxs
Q3VzdG9tID0geworICAgIGZvckVhY2hBcmcoaW5zdCwgZnVuYykKKyAgICB7CisgICAgICAgIEND
YWxsQ3VzdG9tLmZvckVhY2hBcmcoCisgICAgICAgICAgICBpbnN0LAorICAgICAgICAgICAgKGFy
Zywgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyhh
cmcsIEFyZy5jb29sZWQocm9sZSksIHR5cGUsIHdpZHRoKTsKKyAgICAgICAgICAgIH0pOworICAg
IH0sCisgICAgCisgICAgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvZnJlcXVlbnRlZF9ibG9jay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3Rz
L0pTQWlyL2ZyZXF1ZW50ZWRfYmxvY2suanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRl
c3RzL0pTQWlyL2ZyZXF1ZW50ZWRfYmxvY2suanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
OCBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCitjbGFzcyBGcmVxdWVudGVkQmxvY2sgeworICAgIGNvbnN0cnVjdG9yKGJsb2Nr
LCBmcmVxdWVuY3kpCisgICAgeworICAgICAgICB0aGlzLmJsb2NrID0gYmxvY2s7CisgICAgICAg
IHRoaXMuZnJlcXVlbmN5ID0gZnJlcXVlbmN5OworICAgIH0KKyAgICAKKyAgICB0b1N0cmluZygp
CisgICAgeworICAgICAgICByZXR1cm4gKHRoaXMuZnJlcXVlbmN5ID09IE5vcm1hbCA/ICIiIDog
IlJhcmU6IikgKyB0aGlzLmJsb2NrOworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvaW5zdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2luc3Qu
anMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2luc3QuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMzMgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgSW5zdCB7CisgICAgY29uc3Ry
dWN0b3Iob3Bjb2RlLCBhcmdzKQorICAgIHsKKyAgICAgICAgdGhpcy5fb3Bjb2RlID0gb3Bjb2Rl
OworICAgICAgICB0aGlzLl9hcmdzID0gYXJncyA9PSBudWxsID8gW10gOiBhcmdzOworICAgIH0K
KyAgICAKKyAgICBhcHBlbmQoLi4uYXJncykKKyAgICB7CisgICAgICAgIHRoaXMuX2FyZ3MucHVz
aCguLi5hcmdzKTsKKyAgICB9CisgICAgCisgICAgY2xlYXIoKQorICAgIHsKKyAgICAgICAgdGhp
cy5fb3Bjb2RlID0gTm9wOworICAgICAgICB0aGlzLl9hcmdzID0gW107CisgICAgfQorICAgIAor
ICAgIGdldCBvcGNvZGUoKSB7IHJldHVybiB0aGlzLl9vcGNvZGU7IH0KKyAgICBnZXQgYXJncygp
IHsgcmV0dXJuIHRoaXMuX2FyZ3M7IH0KKyAgICAKKyAgICB2aXNpdEFyZyhpbmRleCwgZnVuYywg
Li4uYXJncykKKyAgICB7CisgICAgICAgIGxldCByZXBsYWNlbWVudCA9IGZ1bmModGhpcy5fYXJn
c1tpbmRleF0sIC4uLmFyZ3MpOworICAgICAgICBpZiAocmVwbGFjZW1lbnQpCisgICAgICAgICAg
ICB0aGlzLl9hcmdzW2luZGV4XSA9IHJlcGxhY2VtZW50OworICAgIH0KKyAgICAKKyAgICBmb3JF
YWNoVG1wRmFzdChmdW5jKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlz
Ll9hcmdzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSB0aGlzLl9hcmdzW2ldLmZvckVhY2hUbXBGYXN0KGZ1
bmMpKQorICAgICAgICAgICAgICAgIHRoaXMuX2FyZ3NbaV0gPSByZXBsYWNlbWVudDsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICBmb3JFYWNoQXJnKGZ1bmMpCisgICAgeworICAgICAgICBJ
bnN0X2ZvckVhY2hBcmcodGhpcywgZnVuYyk7CisgICAgfQorICAgIAorICAgIGZvckVhY2hUbXAo
ZnVuYykKKyAgICB7CisgICAgICAgIHRoaXMuZm9yRWFjaEFyZygoYXJnLCByb2xlLCB0eXBlLCB3
aWR0aCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFyZy5mb3JFYWNoVG1wKHJvbGUsIHR5cGUs
IHdpZHRoLCBmdW5jKTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIGZvckVhY2godGhp
bmcsIGZ1bmMpCisgICAgeworICAgICAgICB0aGlzLmZvckVhY2hBcmcoKGFyZywgcm9sZSwgdHlw
ZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBhcmcuZm9yRWFjaCh0aGluZywgcm9s
ZSwgdHlwZSwgd2lkdGgsIGZ1bmMpOworICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgc3Rh
dGljIGZvckVhY2hEZWYodGhpbmcsIHByZXZJbnN0LCBuZXh0SW5zdCwgZnVuYykKKyAgICB7Cisg
ICAgICAgIGlmIChwcmV2SW5zdCkgeworICAgICAgICAgICAgcHJldkluc3QuZm9yRWFjaCgKKyAg
ICAgICAgICAgICAgICB0aGluZywKKyAgICAgICAgICAgICAgICAodmFsdWUsIHJvbGUsIHR5cGUs
IHdpZHRoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNMYXRlRGVmKHJvbGUp
KQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsdWUsIHJvbGUsIHR5cGUs
IHdpZHRoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgaWYgKG5leHRJbnN0KSB7CisgICAgICAgICAgICBuZXh0SW5zdC5mb3JFYWNoKAorICAgICAg
ICAgICAgICAgIHRoaW5nLAorICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lk
dGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKEFyZy5pc0Vhcmx5RGVmKHJvbGUpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmModmFsdWUsIHJvbGUsIHR5cGUsIHdp
ZHRoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBz
dGF0aWMgZm9yRWFjaERlZldpdGhFeHRyYUNsb2JiZXJlZFJlZ3ModGhpbmcsIHByZXZJbnN0LCBu
ZXh0SW5zdCwgZnVuYykKKyAgICB7CisgICAgICAgIGZvckVhY2hEZWYodGhpbmcsIHByZXZJbnN0
LCBuZXh0SW5zdCwgZnVuYyk7CisgICAgICAgIAorICAgICAgICBsZXQgcmVnRGVmUm9sZTsKKyAg
ICAgICAgCisgICAgICAgIGxldCByZXBvcnRSZWcgPSByZWcgPT4geworICAgICAgICAgICAgbGV0
IHR5cGUgPSByZWcuaXNHUFIgPyBHUCA6IEZQOworICAgICAgICAgICAgZnVuYyh0aGluZy5mcm9t
UmVnKHJlZyksIHJlZ0RlZlJvbGUsIHR5cGUsIEFyZy5jb25zZXJ2YXRpdmVXaWR0aCh0eXBlKSk7
CisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBpZiAocHJldkluc3QgJiYgcHJldkluc3Qu
b3Bjb2RlID09IFBhdGNoKSB7CisgICAgICAgICAgICByZWdEZWZSb2xlID0gQXJnLkRlZjsKKyAg
ICAgICAgICAgIHByZXZJbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5mb3JFYWNoKHJlcG9ydFJlZyk7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChuZXh0SW5zdCAmJiBuZXh0SW5zdC5v
cGNvZGUgPT0gUGF0Y2gpIHsKKyAgICAgICAgICAgIHJlZ0RlZlJvbGUgPSBBcmcuRWFybHlEZWY7
CisgICAgICAgICAgICBuZXh0SW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncy5mb3JFYWNoKHJl
cG9ydFJlZyk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0IGhhc05vbkFyZ0VmZmVj
dHMoKSB7IHJldHVybiBJbnN0X2hhc05vbkFyZ0VmZmVjdHModGhpcyk7IH0KKyAgICAKKyAgICB0
b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gIiIgKyBzeW1ib2xOYW1lKHRoaXMuX29w
Y29kZSkgKyAiICIgKyB0aGlzLl9hcmdzLmpvaW4oIiwgIik7CisgICAgfQorfQorCkluZGV4OiBQ
ZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2xpdmVuZXNzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvbGl2ZW5lc3MuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRl
c3RzL0pTQWlyL2xpdmVuZXNzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTUyIEBACisi
dXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKK2NsYXNzIExpdmVuZXNzIHsKKyAgICBjb25zdHJ1Y3Rvcih0aGluZywgY29kZSkKKyAgICB7
CisgICAgICAgIHRoaXMuX3RoaW5nID0gdGhpbmc7CisgICAgICAgIHRoaXMuX2NvZGUgPSBjb2Rl
OworICAgICAgICAKKyAgICAgICAgdGhpcy5fbGl2ZUF0SGVhZCA9IG5ldyBNYXAoKTsKKyAgICAg
ICAgdGhpcy5fbGl2ZUF0VGFpbCA9IG5ldyBNYXAoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAo
bGV0IGJsb2NrIG9mIGNvZGUpIHsKKyAgICAgICAgICAgIHRoaXMuX2xpdmVBdEhlYWQuc2V0KGJs
b2NrLCBuZXcgU2V0KCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBsZXQgbGl2ZUF0VGFp
bCA9IG5ldyBTZXQoKTsKKyAgICAgICAgICAgIHRoaXMuX2xpdmVBdFRhaWwuc2V0KGJsb2NrLCBs
aXZlQXRUYWlsKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYmxvY2subGFzdC5mb3JFYWNo
KAorICAgICAgICAgICAgICAgIHRoaW5nLAorICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwg
dHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKEFyZy5pc0xhdGVVc2Uo
cm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBsaXZlQXRUYWlsLmFkZCh2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxldCBkaXJ0
eUJsb2NrcyA9IG5ldyBTZXQoY29kZSk7CisgICAgICAgIAorICAgICAgICBsZXQgY2hhbmdlZDsK
KyAgICAgICAgZG8geworICAgICAgICAgICAgY2hhbmdlZCA9IGZhbHNlOworICAgICAgICAgICAg
CisgICAgICAgICAgICBmb3IgKGxldCBibG9ja0luZGV4ID0gY29kZS5zaXplOyBibG9ja0luZGV4
LS07KSB7CisgICAgICAgICAgICAgICAgbGV0IGJsb2NrID0gY29kZS5hdChibG9ja0luZGV4KTsK
KyAgICAgICAgICAgICAgICBpZiAoIWJsb2NrKQorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIWRpcnR5QmxvY2tzLmRl
bGV0ZShibG9jaykpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIGxldCBsb2NhbENhbGMgPSB0aGlzLmxvY2FsQ2FsYyhibG9j
ayk7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaW5zdEluZGV4ID0gYmxvY2suc2l6ZTsgaW5z
dEluZGV4LS07KQorICAgICAgICAgICAgICAgICAgICBsb2NhbENhbGMuZXhlY3V0ZShpbnN0SW5k
ZXgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEhhbmRsZSB0aGUgZWFy
bHkgZGVmJ3Mgb2YgdGhlIGZpcnN0IGluc3RydWN0aW9uLgorICAgICAgICAgICAgICAgIGJsb2Nr
LmF0KDApLmZvckVhY2goCisgICAgICAgICAgICAgICAgICAgIHRoaW5nLAorICAgICAgICAgICAg
ICAgICAgICAodmFsdWUsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoQXJnLmlzRWFybHlEZWYocm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9jYWxDYWxjLmxpdmVTZXQucmVtb3ZlKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbGV0IGxpdmVBdEhlYWQg
PSB0aGlzLl9saXZlQXRIZWFkLmdldChibG9jayk7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgaWYgKCFtZXJnZUludG9TZXQobGl2ZUF0SGVhZCwgbG9jYWxDYWxjLmxpdmVTZXQp
KQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBmb3IgKGxldCBwcmVkZWNlc3NvciBvZiBibG9jay5wcmVkZWNlc3NvcnMpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1lcmdlSW50b1NldCh0aGlzLl9saXZlQXRUYWlsLmdl
dChwcmVkZWNlc3NvciksIGxpdmVBdEhlYWQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBk
aXJ0eUJsb2Nrcy5hZGQocHJlZGVjZXNzb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgY2hh
bmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKGNoYW5nZWQpOworICAgIH0KKyAgICAKKyAg
ICBnZXQgdGhpbmcoKSB7IHJldHVybiB0aGlzLl90aGluZzsgfQorICAgIGdldCBjb2RlKCkgeyBy
ZXR1cm4gdGhpcy5fY29kZTsgfQorICAgIGdldCBsaXZlQXRIZWFkKCkgeyByZXR1cm4gdGhpcy5f
bGl2ZUF0SGVhZDsgfQorICAgIGdldCBsaXZlQXRUYWlsKCkgeyByZXR1cm4gdGhpcy5fbGl2ZUF0
VGFpbDsgfQorICAgIAorICAgIGxvY2FsQ2FsYyhibG9jaykKKyAgICB7CisgICAgICAgIGxldCBs
aXZlbmVzcyA9IHRoaXM7CisgICAgICAgIGNsYXNzIExvY2FsQ2FsYyB7CisgICAgICAgICAgICBj
b25zdHJ1Y3RvcigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhpcy5fbGl2ZVNl
dCA9IG5ldyBTZXQobGl2ZW5lc3MubGl2ZUF0VGFpbC5nZXQoYmxvY2spKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZ2V0IGxpdmVTZXQoKSB7IHJldHVybiB0aGlz
Ll9saXZlU2V0OyB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGV4ZWN1dGUoaW5zdEluZGV4
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxldCBpbnN0ID0gYmxvY2suYXQoaW5z
dEluZGV4KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBGaXJzdCBoYW5k
bGUgdGhlIGVhcmx5IGRlZnMgb2YgdGhlIG5leHQgaW5zdHJ1Y3Rpb24uCisgICAgICAgICAgICAg
ICAgaWYgKGluc3RJbmRleCArIDEgPCBibG9jay5zaXplKSB7CisgICAgICAgICAgICAgICAgICAg
IGJsb2NrLmF0KGluc3RJbmRleCArIDEpLmZvckVhY2goCisgICAgICAgICAgICAgICAgICAgICAg
ICBsaXZlbmVzcy50aGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwg
dHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJnLmlz
RWFybHlEZWYocm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2xp
dmVTZXQuZGVsZXRlKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBUaGVuIGhh
bmRsZSBkZWZzLgorICAgICAgICAgICAgICAgIGluc3QuZm9yRWFjaCgKKyAgICAgICAgICAgICAg
ICAgICAgbGl2ZW5lc3MudGhpbmcsCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwg
dHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNMYXRl
RGVmKHJvbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2xpdmVTZXQuZGVs
ZXRlKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgLy8gVGhlbiBoYW5kbGUgdXNlcy4KKyAgICAgICAgICAgICAgICBpbnN0
LmZvckVhY2goCisgICAgICAgICAgICAgICAgICAgIGxpdmVuZXNzLnRoaW5nLAorICAgICAgICAg
ICAgICAgICAgICAodmFsdWUsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoQXJnLmlzRWFybHlVc2Uocm9sZSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fbGl2ZVNldC5hZGQodmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBGaW5hbGx5IGhhbmRsZSB0
aGUgbGF0ZSB1c2VzIG9mIHRoZSBwcmV2aW91cyBpbnN0cnVjdGlvbi4KKyAgICAgICAgICAgICAg
ICBpZiAoaW5zdEluZGV4IC0gMSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLmF0
KGluc3RJbmRleCAtIDEpLmZvckVhY2goCisgICAgICAgICAgICAgICAgICAgICAgICBsaXZlbmVz
cy50aGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lk
dGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJnLmlzTGF0ZVVzZShy
b2xlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGl2ZVNldC5hZGQo
dmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3IExv
Y2FsQ2FsYygpOworICAgIH0KK30KKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9vcGNv
ZGUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9vcGNvZGUuanMJKHJl
dmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL29wY29kZS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEzODAgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8vIEdlbmVyYXRlZCBieSBv
cGNvZGVfZ2VuZXJhdG9yLnJiIGZyb20gSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5v
cGNvZGVzIC0tIGRvIG5vdCBlZGl0IQorY29uc3QgTm9wID0gU3ltYm9sKCJOb3AiKTsKK2NvbnN0
IEFkZDMyID0gU3ltYm9sKCJBZGQzMiIpOworY29uc3QgQWRkOCA9IFN5bWJvbCgiQWRkOCIpOwor
Y29uc3QgQWRkMTYgPSBTeW1ib2woIkFkZDE2Iik7Citjb25zdCBBZGQ2NCA9IFN5bWJvbCgiQWRk
NjQiKTsKK2NvbnN0IEFkZERvdWJsZSA9IFN5bWJvbCgiQWRkRG91YmxlIik7Citjb25zdCBBZGRG
bG9hdCA9IFN5bWJvbCgiQWRkRmxvYXQiKTsKK2NvbnN0IFN1YjMyID0gU3ltYm9sKCJTdWIzMiIp
OworY29uc3QgU3ViNjQgPSBTeW1ib2woIlN1YjY0Iik7Citjb25zdCBTdWJEb3VibGUgPSBTeW1i
b2woIlN1YkRvdWJsZSIpOworY29uc3QgU3ViRmxvYXQgPSBTeW1ib2woIlN1YkZsb2F0Iik7Citj
b25zdCBOZWczMiA9IFN5bWJvbCgiTmVnMzIiKTsKK2NvbnN0IE5lZzY0ID0gU3ltYm9sKCJOZWc2
NCIpOworY29uc3QgTmVnYXRlRG91YmxlID0gU3ltYm9sKCJOZWdhdGVEb3VibGUiKTsKK2NvbnN0
IE11bDMyID0gU3ltYm9sKCJNdWwzMiIpOworY29uc3QgTXVsNjQgPSBTeW1ib2woIk11bDY0Iik7
Citjb25zdCBNdWx0aXBseUFkZDMyID0gU3ltYm9sKCJNdWx0aXBseUFkZDMyIik7Citjb25zdCBN
dWx0aXBseUFkZDY0ID0gU3ltYm9sKCJNdWx0aXBseUFkZDY0Iik7Citjb25zdCBNdWx0aXBseVN1
YjMyID0gU3ltYm9sKCJNdWx0aXBseVN1YjMyIik7Citjb25zdCBNdWx0aXBseVN1YjY0ID0gU3lt
Ym9sKCJNdWx0aXBseVN1YjY0Iik7Citjb25zdCBNdWx0aXBseU5lZzMyID0gU3ltYm9sKCJNdWx0
aXBseU5lZzMyIik7Citjb25zdCBNdWx0aXBseU5lZzY0ID0gU3ltYm9sKCJNdWx0aXBseU5lZzY0
Iik7Citjb25zdCBEaXYzMiA9IFN5bWJvbCgiRGl2MzIiKTsKK2NvbnN0IERpdjY0ID0gU3ltYm9s
KCJEaXY2NCIpOworY29uc3QgTXVsRG91YmxlID0gU3ltYm9sKCJNdWxEb3VibGUiKTsKK2NvbnN0
IE11bEZsb2F0ID0gU3ltYm9sKCJNdWxGbG9hdCIpOworY29uc3QgRGl2RG91YmxlID0gU3ltYm9s
KCJEaXZEb3VibGUiKTsKK2NvbnN0IERpdkZsb2F0ID0gU3ltYm9sKCJEaXZGbG9hdCIpOworY29u
c3QgWDg2Q29udmVydFRvRG91YmxlV29yZDMyID0gU3ltYm9sKCJYODZDb252ZXJ0VG9Eb3VibGVX
b3JkMzIiKTsKK2NvbnN0IFg4NkNvbnZlcnRUb1F1YWRXb3JkNjQgPSBTeW1ib2woIlg4NkNvbnZl
cnRUb1F1YWRXb3JkNjQiKTsKK2NvbnN0IFg4NkRpdjMyID0gU3ltYm9sKCJYODZEaXYzMiIpOwor
Y29uc3QgWDg2RGl2NjQgPSBTeW1ib2woIlg4NkRpdjY0Iik7Citjb25zdCBMZWEgPSBTeW1ib2wo
IkxlYSIpOworY29uc3QgQW5kMzIgPSBTeW1ib2woIkFuZDMyIik7Citjb25zdCBBbmQ2NCA9IFN5
bWJvbCgiQW5kNjQiKTsKK2NvbnN0IEFuZERvdWJsZSA9IFN5bWJvbCgiQW5kRG91YmxlIik7Citj
b25zdCBBbmRGbG9hdCA9IFN5bWJvbCgiQW5kRmxvYXQiKTsKK2NvbnN0IFhvckRvdWJsZSA9IFN5
bWJvbCgiWG9yRG91YmxlIik7Citjb25zdCBYb3JGbG9hdCA9IFN5bWJvbCgiWG9yRmxvYXQiKTsK
K2NvbnN0IExzaGlmdDMyID0gU3ltYm9sKCJMc2hpZnQzMiIpOworY29uc3QgTHNoaWZ0NjQgPSBT
eW1ib2woIkxzaGlmdDY0Iik7Citjb25zdCBSc2hpZnQzMiA9IFN5bWJvbCgiUnNoaWZ0MzIiKTsK
K2NvbnN0IFJzaGlmdDY0ID0gU3ltYm9sKCJSc2hpZnQ2NCIpOworY29uc3QgVXJzaGlmdDMyID0g
U3ltYm9sKCJVcnNoaWZ0MzIiKTsKK2NvbnN0IFVyc2hpZnQ2NCA9IFN5bWJvbCgiVXJzaGlmdDY0
Iik7Citjb25zdCBPcjMyID0gU3ltYm9sKCJPcjMyIik7Citjb25zdCBPcjY0ID0gU3ltYm9sKCJP
cjY0Iik7Citjb25zdCBYb3IzMiA9IFN5bWJvbCgiWG9yMzIiKTsKK2NvbnN0IFhvcjY0ID0gU3lt
Ym9sKCJYb3I2NCIpOworY29uc3QgTm90MzIgPSBTeW1ib2woIk5vdDMyIik7Citjb25zdCBOb3Q2
NCA9IFN5bWJvbCgiTm90NjQiKTsKK2NvbnN0IEFic0RvdWJsZSA9IFN5bWJvbCgiQWJzRG91Ymxl
Iik7Citjb25zdCBBYnNGbG9hdCA9IFN5bWJvbCgiQWJzRmxvYXQiKTsKK2NvbnN0IENlaWxEb3Vi
bGUgPSBTeW1ib2woIkNlaWxEb3VibGUiKTsKK2NvbnN0IENlaWxGbG9hdCA9IFN5bWJvbCgiQ2Vp
bEZsb2F0Iik7Citjb25zdCBGbG9vckRvdWJsZSA9IFN5bWJvbCgiRmxvb3JEb3VibGUiKTsKK2Nv
bnN0IEZsb29yRmxvYXQgPSBTeW1ib2woIkZsb29yRmxvYXQiKTsKK2NvbnN0IFNxcnREb3VibGUg
PSBTeW1ib2woIlNxcnREb3VibGUiKTsKK2NvbnN0IFNxcnRGbG9hdCA9IFN5bWJvbCgiU3FydEZs
b2F0Iik7Citjb25zdCBDb252ZXJ0SW50MzJUb0RvdWJsZSA9IFN5bWJvbCgiQ29udmVydEludDMy
VG9Eb3VibGUiKTsKK2NvbnN0IENvbnZlcnRJbnQ2NFRvRG91YmxlID0gU3ltYm9sKCJDb252ZXJ0
SW50NjRUb0RvdWJsZSIpOworY29uc3QgQ29udmVydEludDMyVG9GbG9hdCA9IFN5bWJvbCgiQ29u
dmVydEludDMyVG9GbG9hdCIpOworY29uc3QgQ29udmVydEludDY0VG9GbG9hdCA9IFN5bWJvbCgi
Q29udmVydEludDY0VG9GbG9hdCIpOworY29uc3QgQ291bnRMZWFkaW5nWmVyb3MzMiA9IFN5bWJv
bCgiQ291bnRMZWFkaW5nWmVyb3MzMiIpOworY29uc3QgQ291bnRMZWFkaW5nWmVyb3M2NCA9IFN5
bWJvbCgiQ291bnRMZWFkaW5nWmVyb3M2NCIpOworY29uc3QgQ29udmVydERvdWJsZVRvRmxvYXQg
PSBTeW1ib2woIkNvbnZlcnREb3VibGVUb0Zsb2F0Iik7Citjb25zdCBDb252ZXJ0RmxvYXRUb0Rv
dWJsZSA9IFN5bWJvbCgiQ29udmVydEZsb2F0VG9Eb3VibGUiKTsKK2NvbnN0IE1vdmUgPSBTeW1i
b2woIk1vdmUiKTsKK2NvbnN0IFN3YXAzMiA9IFN5bWJvbCgiU3dhcDMyIik7Citjb25zdCBTd2Fw
NjQgPSBTeW1ib2woIlN3YXA2NCIpOworY29uc3QgTW92ZTMyID0gU3ltYm9sKCJNb3ZlMzIiKTsK
K2NvbnN0IFN0b3JlWmVybzMyID0gU3ltYm9sKCJTdG9yZVplcm8zMiIpOworY29uc3QgU2lnbkV4
dGVuZDMyVG9QdHIgPSBTeW1ib2woIlNpZ25FeHRlbmQzMlRvUHRyIik7Citjb25zdCBaZXJvRXh0
ZW5kOFRvMzIgPSBTeW1ib2woIlplcm9FeHRlbmQ4VG8zMiIpOworY29uc3QgU2lnbkV4dGVuZDhU
bzMyID0gU3ltYm9sKCJTaWduRXh0ZW5kOFRvMzIiKTsKK2NvbnN0IFplcm9FeHRlbmQxNlRvMzIg
PSBTeW1ib2woIlplcm9FeHRlbmQxNlRvMzIiKTsKK2NvbnN0IFNpZ25FeHRlbmQxNlRvMzIgPSBT
eW1ib2woIlNpZ25FeHRlbmQxNlRvMzIiKTsKK2NvbnN0IE1vdmVGbG9hdCA9IFN5bWJvbCgiTW92
ZUZsb2F0Iik7Citjb25zdCBNb3ZlRG91YmxlID0gU3ltYm9sKCJNb3ZlRG91YmxlIik7Citjb25z
dCBNb3ZlWmVyb1RvRG91YmxlID0gU3ltYm9sKCJNb3ZlWmVyb1RvRG91YmxlIik7Citjb25zdCBN
b3ZlNjRUb0RvdWJsZSA9IFN5bWJvbCgiTW92ZTY0VG9Eb3VibGUiKTsKK2NvbnN0IE1vdmUzMlRv
RmxvYXQgPSBTeW1ib2woIk1vdmUzMlRvRmxvYXQiKTsKK2NvbnN0IE1vdmVEb3VibGVUbzY0ID0g
U3ltYm9sKCJNb3ZlRG91YmxlVG82NCIpOworY29uc3QgTW92ZUZsb2F0VG8zMiA9IFN5bWJvbCgi
TW92ZUZsb2F0VG8zMiIpOworY29uc3QgTG9hZDggPSBTeW1ib2woIkxvYWQ4Iik7Citjb25zdCBT
dG9yZTggPSBTeW1ib2woIlN0b3JlOCIpOworY29uc3QgTG9hZDhTaWduZWRFeHRlbmRUbzMyID0g
U3ltYm9sKCJMb2FkOFNpZ25lZEV4dGVuZFRvMzIiKTsKK2NvbnN0IExvYWQxNiA9IFN5bWJvbCgi
TG9hZDE2Iik7Citjb25zdCBMb2FkMTZTaWduZWRFeHRlbmRUbzMyID0gU3ltYm9sKCJMb2FkMTZT
aWduZWRFeHRlbmRUbzMyIik7Citjb25zdCBTdG9yZTE2ID0gU3ltYm9sKCJTdG9yZTE2Iik7Citj
b25zdCBDb21wYXJlMzIgPSBTeW1ib2woIkNvbXBhcmUzMiIpOworY29uc3QgQ29tcGFyZTY0ID0g
U3ltYm9sKCJDb21wYXJlNjQiKTsKK2NvbnN0IFRlc3QzMiA9IFN5bWJvbCgiVGVzdDMyIik7Citj
b25zdCBUZXN0NjQgPSBTeW1ib2woIlRlc3Q2NCIpOworY29uc3QgQ29tcGFyZURvdWJsZSA9IFN5
bWJvbCgiQ29tcGFyZURvdWJsZSIpOworY29uc3QgQ29tcGFyZUZsb2F0ID0gU3ltYm9sKCJDb21w
YXJlRmxvYXQiKTsKK2NvbnN0IEJyYW5jaDggPSBTeW1ib2woIkJyYW5jaDgiKTsKK2NvbnN0IEJy
YW5jaDMyID0gU3ltYm9sKCJCcmFuY2gzMiIpOworY29uc3QgQnJhbmNoNjQgPSBTeW1ib2woIkJy
YW5jaDY0Iik7Citjb25zdCBCcmFuY2hUZXN0OCA9IFN5bWJvbCgiQnJhbmNoVGVzdDgiKTsKK2Nv
bnN0IEJyYW5jaFRlc3QzMiA9IFN5bWJvbCgiQnJhbmNoVGVzdDMyIik7Citjb25zdCBCcmFuY2hU
ZXN0NjQgPSBTeW1ib2woIkJyYW5jaFRlc3Q2NCIpOworY29uc3QgQnJhbmNoRG91YmxlID0gU3lt
Ym9sKCJCcmFuY2hEb3VibGUiKTsKK2NvbnN0IEJyYW5jaEZsb2F0ID0gU3ltYm9sKCJCcmFuY2hG
bG9hdCIpOworY29uc3QgQnJhbmNoQWRkMzIgPSBTeW1ib2woIkJyYW5jaEFkZDMyIik7Citjb25z
dCBCcmFuY2hBZGQ2NCA9IFN5bWJvbCgiQnJhbmNoQWRkNjQiKTsKK2NvbnN0IEJyYW5jaE11bDMy
ID0gU3ltYm9sKCJCcmFuY2hNdWwzMiIpOworY29uc3QgQnJhbmNoTXVsNjQgPSBTeW1ib2woIkJy
YW5jaE11bDY0Iik7Citjb25zdCBCcmFuY2hTdWIzMiA9IFN5bWJvbCgiQnJhbmNoU3ViMzIiKTsK
K2NvbnN0IEJyYW5jaFN1YjY0ID0gU3ltYm9sKCJCcmFuY2hTdWI2NCIpOworY29uc3QgQnJhbmNo
TmVnMzIgPSBTeW1ib2woIkJyYW5jaE5lZzMyIik7Citjb25zdCBCcmFuY2hOZWc2NCA9IFN5bWJv
bCgiQnJhbmNoTmVnNjQiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5MzIgPSBTeW1ib2woIk1v
dmVDb25kaXRpb25hbGx5MzIiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5NjQgPSBTeW1ib2wo
Ik1vdmVDb25kaXRpb25hbGx5NjQiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5VGVzdDMyID0g
U3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseVRlc3QzMiIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFs
bHlUZXN0NjQgPSBTeW1ib2woIk1vdmVDb25kaXRpb25hbGx5VGVzdDY0Iik7Citjb25zdCBNb3Zl
Q29uZGl0aW9uYWxseURvdWJsZSA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlEb3VibGUiKTsK
K2NvbnN0IE1vdmVDb25kaXRpb25hbGx5RmxvYXQgPSBTeW1ib2woIk1vdmVDb25kaXRpb25hbGx5
RmxvYXQiKTsKK2NvbnN0IE1vdmVEb3VibGVDb25kaXRpb25hbGx5MzIgPSBTeW1ib2woIk1vdmVE
b3VibGVDb25kaXRpb25hbGx5MzIiKTsKK2NvbnN0IE1vdmVEb3VibGVDb25kaXRpb25hbGx5NjQg
PSBTeW1ib2woIk1vdmVEb3VibGVDb25kaXRpb25hbGx5NjQiKTsKK2NvbnN0IE1vdmVEb3VibGVD
b25kaXRpb25hbGx5VGVzdDMyID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Qz
MiIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0NjQgPSBTeW1ib2woIk1vdmVE
b3VibGVDb25kaXRpb25hbGx5VGVzdDY0Iik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxs
eURvdWJsZSA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlEb3VibGUiKTsKK2NvbnN0
IE1vdmVEb3VibGVDb25kaXRpb25hbGx5RmxvYXQgPSBTeW1ib2woIk1vdmVEb3VibGVDb25kaXRp
b25hbGx5RmxvYXQiKTsKK2NvbnN0IEp1bXAgPSBTeW1ib2woIkp1bXAiKTsKK2NvbnN0IFJldDMy
ID0gU3ltYm9sKCJSZXQzMiIpOworY29uc3QgUmV0NjQgPSBTeW1ib2woIlJldDY0Iik7Citjb25z
dCBSZXRGbG9hdCA9IFN5bWJvbCgiUmV0RmxvYXQiKTsKK2NvbnN0IFJldERvdWJsZSA9IFN5bWJv
bCgiUmV0RG91YmxlIik7Citjb25zdCBPb3BzID0gU3ltYm9sKCJPb3BzIik7Citjb25zdCBTaHVm
ZmxlID0gU3ltYm9sKCJTaHVmZmxlIik7Citjb25zdCBQYXRjaCA9IFN5bWJvbCgiUGF0Y2giKTsK
K2NvbnN0IENDYWxsID0gU3ltYm9sKCJDQ2FsbCIpOworY29uc3QgQ29sZENDYWxsID0gU3ltYm9s
KCJDb2xkQ0NhbGwiKTsKK2Z1bmN0aW9uIEluc3RfZm9yRWFjaEFyZyhpbnN0LCBmdW5jKQorewor
bGV0IHJlcGxhY2VtZW50Oworc3dpdGNoIChpbnN0Lm9wY29kZSkgeworY2FzZSBOb3A6CiticmVh
azsKK2JyZWFrOworY2FzZSBBZGQzMjoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2Fz
ZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBB
cmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwg
R1AsIDMyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2Fk
Iik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBBZGQ4OgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgOCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQ
LCA4KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIEFkZDE2OgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMTYpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBH
UCwgMTYpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQWRkNjQ6Citzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0
KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgR1AsIDY0KTsKK2JyZWFrOwor
Y2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5j
LCBBcmcuRGVmLCBHUCwgNjQpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJC
YWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIEFkZERvdWJsZToKK3N3aXRj
aCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQp
OworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworYnJlYWs7CitjYXNl
IDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJv
dyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgQWRk
RmxvYXQ6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2luc3QudmlzaXRB
cmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsK
K2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIp
OworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgMzIpOworYnJlYWs7Citk
ZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJl
YWs7CitjYXNlIFN1YjMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIp
OworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKK2JyZWFrOwor
YnJlYWs7CitjYXNlIFN1YjY0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwg
NjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworYnJlYWs7
CiticmVhazsKK2Nhc2UgU3ViRG91YmxlOgorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Citj
YXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZp
c2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMs
IEFyZy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwg
RlAsIDY0KTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2Fk
Iik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBTdWJGbG9hdDoKK3N3aXRjaCAoaW5zdC5hcmdz
Lmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwg
MzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNp
dEFyZygyLCBmdW5jLCBBcmcuRGVmLCBGUCwgMzIpOworYnJlYWs7CitjYXNlIDI6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2VEZWYsIEZQLCAzMik7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3Io
IkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgTmVnMzI6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nh
c2UgTmVnNjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7Citi
cmVhazsKK2JyZWFrOworY2FzZSBOZWdhdGVEb3VibGU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMs
IEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2
NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBNdWwzMjoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworY2Fz
ZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBB
cmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFk
IG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBNdWw2NDoKK3N3aXRjaCAoaW5z
dC5hcmdzLmxlbmd0aCkgeworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
LCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOwor
YnJlYWs7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7
CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJn
KDIsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcg
RXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgTXVsdGlwbHlB
ZGQzMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3Qudmlz
aXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAz
Mik7CiticmVhazsKK2JyZWFrOworY2FzZSBNdWx0aXBseUFkZDY0OgoraW5zdC52aXNpdEFyZygw
LCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNl
LCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5z
dC52aXNpdEFyZygzLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nh
c2UgTXVsdGlwbHlTdWIzMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMy
KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRB
cmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJn
LlpEZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBNdWx0aXBseVN1YjY0OgoraW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBm
dW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBH
UCwgNjQpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworYnJlYWs7
CiticmVhazsKK2Nhc2UgTXVsdGlwbHlOZWczMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsK
K2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFr
OworY2FzZSBNdWx0aXBseU5lZzY0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBH
UCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52
aXNpdEFyZygyLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNl
IERpdjMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5j
LCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIERpdjY0OgoraW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBHUCwg
NjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgTXVsRG91YmxlOgorc3dpdGNoIChpbnN0LmFyZ3Mu
bGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2
NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0
QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2Nhc2UgMjoKK2luc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZURlZiwgRlAsIDY0KTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigi
QmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBNdWxGbG9hdDoKK3N3aXRj
aCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIp
OworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBGUCwgMzIpOworYnJlYWs7CitjYXNl
IDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCAzMik7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJv
dyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgRGl2
RG91YmxlOgorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7
CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0
KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDY0KTsKK2JyZWFrOwor
ZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2Jy
ZWFrOworY2FzZSBEaXZGbG9hdDoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSAz
OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcu
RGVmLCBGUCwgMzIpOworYnJlYWs7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFy
Zy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCAz
Mik7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOwor
YnJlYWs7Cit9CiticmVhazsKK2Nhc2UgWDg2Q29udmVydFRvRG91YmxlV29yZDMyOgoraW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIFg4NkNvbnZlcnRUb1F1
YWRXb3JkNjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2Fz
ZSBYODZEaXYzMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7
CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgWDg2
RGl2NjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgNjQpOworaW5z
dC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmco
MiwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIExlYToKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZUFkZHIsIEdQLCBQdHIpOworaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIEFuZDMy
Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJl
YWs7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7Citp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworYnJlYWs7CitkZWZh
dWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7
CitjYXNlIEFuZDY0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEdQ
LCA2NCk7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
R1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgR1AsIDY0KTsKK2Jy
ZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsK
K30KK2JyZWFrOworY2FzZSBBbmREb3VibGU6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsK
K2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVu
YywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVm
LCBGUCwgNjQpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3Zlcmxv
YWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIEFuZEZsb2F0Ogorc3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZp
c2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7CiticmVhazsKK2Nhc2UgMjoKK2luc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZURlZiwgRlAsIDMyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJv
cigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBYb3JEb3VibGU6Citz
d2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAs
IDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOwor
Y2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworYnJlYWs7CitkZWZhdWx0Ogor
dGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNl
IFhvckZsb2F0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQLCAz
Mik7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAs
IDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDMyKTsKK2JyZWFr
OworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30K
K2JyZWFrOworY2FzZSBMc2hpZnQzMjoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2Fz
ZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBB
cmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwg
R1AsIDMyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2Fk
Iik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBMc2hpZnQ2NDoKK3N3aXRjaCAoaW5zdC5hcmdz
Lmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwg
NjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNp
dEFyZygyLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDY0KTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlRGVmLCBHUCwgNjQpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9y
KCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIFJzaGlmdDMyOgorc3dp
dGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAz
Mik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7Citj
YXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZp
c2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworYnJlYWs7CitkZWZhdWx0Ogor
dGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNl
IFJzaGlmdDY0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwg
NjQpOworYnJlYWs7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CiticmVh
azsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9
CiticmVhazsKK2Nhc2UgVXJzaGlmdDMyOgorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Citj
YXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZp
c2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMs
IEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVm
LCBHUCwgMzIpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3Zlcmxv
YWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIFVyc2hpZnQ2NDoKK3N3aXRjaCAoaW5zdC5h
cmdzLmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBH
UCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52
aXNpdEFyZygyLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDY0KTsKK2JyZWFrOworY2FzZSAyOgoraW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBm
dW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVy
cm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIE9yMzI6Citzd2l0
Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMy
KTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2Nh
c2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3Qudmlz
aXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7CiticmVhazsKK2RlZmF1bHQ6Cit0
aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2Ug
T3I2NDoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFy
ZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcu
VXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOwor
YnJlYWs7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7
CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CiticmVhazsKK2Rl
ZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVh
azsKK2Nhc2UgWG9yMzI6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYs
IEdQLCAzMik7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7
CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJl
YWs7Cit9CiticmVhazsKK2Nhc2UgWG9yNjQ6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsK
K2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVu
YywgQXJnLkRlZiwgR1AsIDY0KTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVm
LCBHUCwgNjQpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3Zlcmxv
YWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIE5vdDMyOgorc3dpdGNoIChpbnN0LmFyZ3Mu
bGVuZ3RoKSB7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAz
Mik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7Citj
YXNlIDE6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworYnJl
YWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOwor
fQorYnJlYWs7CitjYXNlIE5vdDY0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNl
IDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7CiticmVhazsKK2Nhc2UgMToKK2luc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIDY0KTsKK2JyZWFrOworZGVmYXVsdDoKK3Ro
cm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBB
YnNEb3VibGU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2Fz
ZSBBYnNGbG9hdDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2lu
c3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsKK2JyZWFrOworYnJlYWs7Citj
YXNlIENlaWxEb3VibGU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7
CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2JyZWFr
OworY2FzZSBDZWlsRmxvYXQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAz
Mik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7CiticmVhazsKK2Jy
ZWFrOworY2FzZSBGbG9vckRvdWJsZToKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
RlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFr
OworYnJlYWs7CitjYXNlIEZsb29yRmxvYXQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5V
c2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7Citi
cmVhazsKK2JyZWFrOworY2FzZSBTcXJ0RG91YmxlOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQp
OworYnJlYWs7CiticmVhazsKK2Nhc2UgU3FydEZsb2F0OgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwg
MzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQ29udmVydEludDMyVG9Eb3VibGU6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBDb252ZXJ0SW50NjRUb0Rv
dWJsZToKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3Qudmlz
aXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIENv
bnZlcnRJbnQzMlRvRmxvYXQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAz
Mik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7CiticmVhazsKK2Jy
ZWFrOworY2FzZSBDb252ZXJ0SW50NjRUb0Zsb2F0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgMzIp
OworYnJlYWs7CiticmVhazsKK2Nhc2UgQ291bnRMZWFkaW5nWmVyb3MzMjoKK2luc3QudmlzaXRB
cmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlpEZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBDb3VudExlYWRpbmdaZXJvczY0
OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQ29udmVy
dERvdWJsZVRvRmxvYXQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7
CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7CiticmVhazsKK2JyZWFr
OworY2FzZSBDb252ZXJ0RmxvYXRUb0RvdWJsZToKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsK
K2JyZWFrOworYnJlYWs7CitjYXNlIE1vdmU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5V
c2UsIEdQLCBQdHIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsK
K2JyZWFrOworYnJlYWs7CitjYXNlIFN3YXAzMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZURlZiwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgR1As
IDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIFN3YXA2NDoKK2luc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZURlZiwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURl
ZiwgR1AsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE1vdmUzMjoKK2luc3QudmlzaXRBcmco
MCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlpE
ZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBTdG9yZVplcm8zMjoKK2luc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIFNp
Z25FeHRlbmQzMlRvUHRyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIp
OworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKK2JyZWFrOworYnJl
YWs7CitjYXNlIFplcm9FeHRlbmQ4VG8zMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDgpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKK2Jy
ZWFrOworYnJlYWs7CitjYXNlIFNpZ25FeHRlbmQ4VG8zMjoKK2luc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgR1AsIDgpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1As
IDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIFplcm9FeHRlbmQxNlRvMzI6CitpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAxNik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgU2lnbkV4dGVuZDE2VG8zMjoK
K2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDE2KTsKK2luc3QudmlzaXRBcmco
MSwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBNb3ZlRmxv
YXQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBNb3Zl
RG91YmxlOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2Ug
TW92ZVplcm9Ub0RvdWJsZToKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLkRlZiwgRlAsIDY0
KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE1vdmU2NFRvRG91YmxlOgoraW5zdC52aXNpdEFyZygw
LCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVm
LCBGUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgTW92ZTMyVG9GbG9hdDoKK2luc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLkRlZiwgRlAsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE1vdmVEb3VibGVUbzY0Ogor
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygx
LCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgTW92ZUZsb2F0
VG8zMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3Qudmlz
aXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIExv
YWQ4OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7CitpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgU3Rv
cmU4OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7CitpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCA4KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIExvYWQ4
U2lnbmVkRXh0ZW5kVG8zMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDgp
OworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJl
YWs7CitjYXNlIExvYWQxNjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDE2
KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2Jy
ZWFrOworY2FzZSBMb2FkMTZTaWduZWRFeHRlbmRUbzMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMTYpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1As
IDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIFN0b3JlMTY6CitpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCAxNik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQ
LCAxNik7CiticmVhazsKK2JyZWFrOworY2FzZSBDb21wYXJlMzI6CitpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0
LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nh
c2UgQ29tcGFyZTY0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRl
ZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIFRlc3QzMjoKK2luc3QudmlzaXRBcmco
MCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2lu
c3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOwor
Y2FzZSBUZXN0NjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7Citp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5aRGVm
LCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQ29tcGFyZURvdWJsZToKK2luc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDY0
KTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2Jy
ZWFrOworY2FzZSBDb21wYXJlRmxvYXQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDMsIGZ1
bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQnJhbmNoODoKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgR1AsIDgpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBH
UCwgOCk7CiticmVhazsKK2JyZWFrOworY2FzZSBCcmFuY2gzMjoKK2luc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2JyZWFr
OworYnJlYWs7CitjYXNlIEJyYW5jaDY0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
LCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5z
dC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nh
c2UgQnJhbmNoVGVzdDg6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7
CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA4KTsKK2luc3QudmlzaXRBcmco
MiwgZnVuYywgQXJnLlVzZSwgR1AsIDgpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQnJhbmNoVGVz
dDMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBB
cmcuVXNlLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQnJhbmNoVGVzdDY0OgoraW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBm
dW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBH
UCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQnJhbmNoRG91YmxlOgoraW5zdC52aXNpdEFy
ZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcu
VXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOwor
YnJlYWs7CiticmVhazsKK2Nhc2UgQnJhbmNoRmxvYXQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAz
Mik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CiticmVhazsKK2Jy
ZWFrOworY2FzZSBCcmFuY2hBZGQzMjoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2Fz
ZSA0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBB
cmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMy
KTsKK2JyZWFrOworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwg
MzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygyLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Ro
cm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBC
cmFuY2hBZGQ2NDoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSA0OgoraW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwg
NjQpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDY0KTsKK2JyZWFrOwor
Y2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5j
LCBBcmcuVXNlRGVmLCBHUCwgNjQpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9y
KCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIEJyYW5jaE11bDMyOgor
c3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworYnJl
YWs7CitjYXNlIDQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7Citp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5aRGVm
LCBHUCwgMzIpOworYnJlYWs7CitjYXNlIDY6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5V
c2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7Citp
bnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDMs
IGZ1bmMsIEFyZy5TY3JhdGNoLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcu
U2NyYXRjaCwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoNSwgZnVuYywgQXJnLlpEZWYsIEdQLCAz
Mik7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOwor
YnJlYWs7Cit9CiticmVhazsKK2Nhc2UgQnJhbmNoTXVsNjQ6Citzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKK2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMy
KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRB
cmcoMiwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCA2NCk7CiticmVhazsKK2Nhc2UgNjoKK2luc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1As
IDY0KTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlNjcmF0Y2gsIEdQLCA2NCk7CitpbnN0
LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5TY3JhdGNoLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZyg1
LCBmdW5jLCBBcmcuWkRlZiwgR1AsIDY0KTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBF
cnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBCcmFuY2hTdWIz
MjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRB
cmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJn
LlVzZVpEZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBCcmFuY2hTdWI2NDoKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZURl
ZiwgR1AsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIEJyYW5jaE5lZzMyOgoraW5zdC52aXNp
dEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuVXNlWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIEJyYW5jaE5lZzY0Ogor
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygx
LCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE1vdmVD
b25kaXRpb25hbGx5MzI6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgNToKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CitpbnN0
LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworYnJlYWs7CitjYXNlIDY6
CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5V
c2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOwor
aW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKK2luc3QudmlzaXRBcmco
NSwgZnVuYywgQXJnLkRlZiwgR1AsIFB0cik7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcg
RXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgTW92ZUNvbmRp
dGlvbmFsbHk2NDoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSA1OgoraW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwg
NjQpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKK2luc3Qudmlz
aXRBcmcoNCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIFB0cik7CiticmVhazsKK2Nhc2UgNjoKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwg
R1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CitpbnN0
LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworaW5zdC52aXNpdEFyZyg1LCBm
dW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJv
cigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBNb3ZlQ29uZGl0aW9u
YWxseVRlc3QzMjoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSA1OgoraW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwg
MzIpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKK2luc3Qudmlz
aXRBcmcoNCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIFB0cik7CiticmVhazsKK2Nhc2UgNjoKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CitpbnN0
LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworaW5zdC52aXNpdEFyZyg1LCBm
dW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJv
cigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBNb3ZlQ29uZGl0aW9u
YWxseVRlc3Q2NDoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSA1OgoraW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwg
NjQpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKK2luc3Qudmlz
aXRBcmcoNCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIFB0cik7CiticmVhazsKK2Nhc2UgNjoKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CitpbnN0
LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworaW5zdC52aXNpdEFyZyg1LCBm
dW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJv
cigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBNb3ZlQ29uZGl0aW9u
YWxseURvdWJsZToKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSA2OgoraW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBGUCwg
NjQpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKK2luc3Qudmlz
aXRBcmcoNCwgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CitpbnN0LnZpc2l0QXJnKDUsIGZ1bmMs
IEFyZy5EZWYsIEdQLCBQdHIpOworYnJlYWs7CitjYXNlIDU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQ
LCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZp
c2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworaW5zdC52aXNpdEFyZyg0LCBmdW5j
LCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJv
cigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBNb3ZlQ29uZGl0aW9u
YWxseUZsb2F0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDY6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAz
Mik7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworaW5zdC52aXNp
dEFyZyg0LCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKK2luc3QudmlzaXRBcmcoNSwgZnVuYywg
QXJnLkRlZiwgR1AsIFB0cik7CiticmVhazsKK2Nhc2UgNToKK2luc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAs
IDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3Qudmlz
aXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CitpbnN0LnZpc2l0QXJnKDQsIGZ1bmMs
IEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9y
KCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIE1vdmVEb3VibGVDb25k
aXRpb25hbGx5MzI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7Citp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2Us
IEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0
LnZpc2l0QXJnKDUsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2Fz
ZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseTY0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOwor
aW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygz
LCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNl
LCBGUCwgNjQpOworaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworYnJl
YWs7CiticmVhazsKK2Nhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0MzI6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAz
Mik7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0
QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDUsIGZ1bmMsIEFy
Zy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9u
YWxseVRlc3Q2NDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2lu
c3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwg
ZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwg
RlAsIDY0KTsKK2luc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3Qu
dmlzaXRBcmcoNSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNl
IE1vdmVEb3VibGVDb25kaXRpb25hbGx5RG91YmxlOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQp
OworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFy
ZygzLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcu
VXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOwor
YnJlYWs7CiticmVhazsKK2Nhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdDoKK2luc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAs
IDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3Qudmlz
aXRBcmcoNCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoNSwgZnVuYywg
QXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIEp1bXA6CiticmVhazsKK2Jy
ZWFrOworY2FzZSBSZXQzMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMy
KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIFJldDY0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBHUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgUmV0RmxvYXQ6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBS
ZXREb3VibGU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CiticmVh
azsKK2JyZWFrOworY2FzZSBPb3BzOgorYnJlYWs7CiticmVhazsKK2Nhc2UgU2h1ZmZsZToKK1No
dWZmbGVDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKK2JyZWFrOworY2FzZSBQYXRjaDoK
K1BhdGNoQ3VzdG9tLmZvckVhY2hBcmcoaW5zdCwgZnVuYyk7CiticmVhazsKK2Nhc2UgQ0NhbGw6
CitDQ2FsbEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworYnJlYWs7CitjYXNlIENvbGRD
Q2FsbDoKK0NvbGRDQ2FsbEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworYnJlYWs7Citk
ZWZhdWx0OgordGhyb3cgIkJhZCBvcGNvZGUiOworfQorfQorZnVuY3Rpb24gSW5zdF9oYXNOb25B
cmdFZmZlY3RzKGluc3QpCit7Citzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7CitjYXNlIEJyYW5jaDg6
CitjYXNlIEJyYW5jaDMyOgorY2FzZSBCcmFuY2g2NDoKK2Nhc2UgQnJhbmNoVGVzdDg6CitjYXNl
IEJyYW5jaFRlc3QzMjoKK2Nhc2UgQnJhbmNoVGVzdDY0OgorY2FzZSBCcmFuY2hEb3VibGU6Citj
YXNlIEJyYW5jaEZsb2F0OgorY2FzZSBCcmFuY2hBZGQzMjoKK2Nhc2UgQnJhbmNoQWRkNjQ6Citj
YXNlIEJyYW5jaE11bDMyOgorY2FzZSBCcmFuY2hNdWw2NDoKK2Nhc2UgQnJhbmNoU3ViMzI6Citj
YXNlIEJyYW5jaFN1YjY0OgorY2FzZSBCcmFuY2hOZWczMjoKK2Nhc2UgQnJhbmNoTmVnNjQ6Citj
YXNlIEp1bXA6CitjYXNlIFJldDMyOgorY2FzZSBSZXQ2NDoKK2Nhc2UgUmV0RmxvYXQ6CitjYXNl
IFJldERvdWJsZToKK2Nhc2UgT29wczoKK3JldHVybiB0cnVlOworY2FzZSBTaHVmZmxlOgorcmV0
dXJuIFNodWZmbGVDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CitjYXNl
IFBhdGNoOgorcmV0dXJuIFBhdGNoQ3VzdG9tLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGlu
c3QpOworY2FzZSBDQ2FsbDoKK3JldHVybiBDQ2FsbEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9s
RWZmZWN0cyhpbnN0KTsKK2Nhc2UgQ29sZENDYWxsOgorcmV0dXJuIENvbGRDQ2FsbEN1c3RvbS5o
YXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKK2RlZmF1bHQ6CityZXR1cm4gZmFsc2U7
Cit9Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3BheWxvYWQuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9wYXlsb2FkLmpzCShyZXZpc2lvbiAwKQorKysg
UGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9wYXlsb2FkLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzA1OSBAQAorLy8gR2VuZXJhdGVkIGJ5IEFpcjo6ZHVtcEFzSlMuIERvIG5vdCBlZGl0IQor
bGV0IGNvZGUgPSBuZXcgQ29kZSgpOworbGV0IGJiMCA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBi
YjEgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIyID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJi
MyA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjQgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmI1
ID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiNiA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjcg
PSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmI4ID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiOSA9
IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjEwID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMTEg
PSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIxMiA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjEz
ID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMTQgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIx
NSA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjE2ID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJi
MTcgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIxOCA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBi
YjE5ID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMjAgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQg
YmIyMSA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjIyID0gY29kZS5hZGRCbG9jaygpOworbGV0
IGJiMjMgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIyNCA9IGNvZGUuYWRkQmxvY2soKTsKK2xl
dCBiYjI1ID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMjYgPSBjb2RlLmFkZEJsb2NrKCk7Cits
ZXQgYmIyNyA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjI4ID0gY29kZS5hZGRCbG9jaygpOwor
bGV0IGJiMjkgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIzMCA9IGNvZGUuYWRkQmxvY2soKTsK
K2xldCBiYjMxID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMzIgPSBjb2RlLmFkZEJsb2NrKCk7
CitsZXQgYmIzMyA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjM0ID0gY29kZS5hZGRCbG9jaygp
OworbGV0IGJiMzUgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIzNiA9IGNvZGUuYWRkQmxvY2so
KTsKK2xldCBzbG90MCA9IGNvZGUuYWRkU3RhY2tTbG90KDQwLCBMb2NrZWQpOworbGV0IHNsb3Qx
ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworbGV0IHNsb3QyID0gY29kZS5hZGRTdGFj
a1Nsb3QoOCwgU3BpbGwpOworbGV0IHNsb3QzID0gY29kZS5hZGRTdGFja1Nsb3QoNCwgU3BpbGwp
OworbGV0IHNsb3Q0ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworbGV0IHNsb3Q1ID0g
Y29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworbGV0IHNsb3Q2ID0gY29kZS5hZGRTdGFja1Ns
b3QoNDAsIExvY2tlZCk7CitsZXQgdG1wMTQxID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDE0
MCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMzkgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQg
dG1wMTM4ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEzNyA9IGNvZGUubmV3VG1wKEdQKTsK
K2xldCB0bXAxMzYgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTM1ID0gY29kZS5uZXdUbXAo
R1ApOworbGV0IHRtcDEzNCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMzMgPSBjb2RlLm5l
d1RtcChHUCk7CitsZXQgdG1wMTMyID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEzMSA9IGNv
ZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMzAgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTI5
ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEyOCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0
bXAxMjcgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTI2ID0gY29kZS5uZXdUbXAoR1ApOwor
bGV0IHRtcDEyNSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMjQgPSBjb2RlLm5ld1RtcChH
UCk7CitsZXQgdG1wMTIzID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEyMiA9IGNvZGUubmV3
VG1wKEdQKTsKK2xldCB0bXAxMjEgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTIwID0gY29k
ZS5uZXdUbXAoR1ApOworbGV0IHRtcDExOSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMTgg
PSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTE3ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRt
cDExNiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMTUgPSBjb2RlLm5ld1RtcChHUCk7Cits
ZXQgdG1wMTE0ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDExMyA9IGNvZGUubmV3VG1wKEdQ
KTsKK2xldCB0bXAxMTIgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTExID0gY29kZS5uZXdU
bXAoR1ApOworbGV0IHRtcDExMCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMDkgPSBjb2Rl
Lm5ld1RtcChHUCk7CitsZXQgdG1wMTA4ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEwNyA9
IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMDYgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1w
MTA1ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEwNCA9IGNvZGUubmV3VG1wKEdQKTsKK2xl
dCB0bXAxMDMgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTAyID0gY29kZS5uZXdUbXAoR1Ap
OworbGV0IHRtcDEwMSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMDAgPSBjb2RlLm5ld1Rt
cChHUCk7CitsZXQgdG1wOTkgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wOTggPSBjb2RlLm5l
d1RtcChHUCk7CitsZXQgdG1wOTcgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wOTYgPSBjb2Rl
Lm5ld1RtcChHUCk7CitsZXQgdG1wOTUgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wOTQgPSBj
b2RlLm5ld1RtcChHUCk7CitsZXQgdG1wOTMgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wOTIg
PSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wOTEgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1w
OTAgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wODkgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQg
dG1wODggPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wODcgPSBjb2RlLm5ld1RtcChHUCk7Cits
ZXQgdG1wODYgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wODUgPSBjb2RlLm5ld1RtcChHUCk7
CitsZXQgdG1wODQgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wODMgPSBjb2RlLm5ld1RtcChH
UCk7CitsZXQgdG1wODIgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wODEgPSBjb2RlLm5ld1Rt
cChHUCk7CitsZXQgdG1wODAgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNzkgPSBjb2RlLm5l
d1RtcChHUCk7CitsZXQgdG1wNzggPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNzcgPSBjb2Rl
Lm5ld1RtcChHUCk7CitsZXQgdG1wNzYgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNzUgPSBj
b2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNzQgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNzMg
PSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNzIgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1w
NzEgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNzAgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQg
dG1wNjkgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNjggPSBjb2RlLm5ld1RtcChHUCk7Cits
ZXQgdG1wNjcgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNjYgPSBjb2RlLm5ld1RtcChHUCk7
CitsZXQgdG1wNjUgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNjQgPSBjb2RlLm5ld1RtcChH
UCk7CitsZXQgdG1wNjMgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNjIgPSBjb2RlLm5ld1Rt
cChHUCk7CitsZXQgdG1wNjEgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNjAgPSBjb2RlLm5l
d1RtcChHUCk7CitsZXQgdG1wNTkgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNTggPSBjb2Rl
Lm5ld1RtcChHUCk7CitsZXQgdG1wNTcgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNTYgPSBj
b2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNTUgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNTQg
PSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNTMgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1w
NTIgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNTEgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQg
dG1wNTAgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNDkgPSBjb2RlLm5ld1RtcChHUCk7Cits
ZXQgdG1wNDggPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNDcgPSBjb2RlLm5ld1RtcChHUCk7
CitsZXQgdG1wNDYgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNDUgPSBjb2RlLm5ld1RtcChH
UCk7CitsZXQgdG1wNDQgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNDMgPSBjb2RlLm5ld1Rt
cChHUCk7CitsZXQgdG1wNDIgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNDEgPSBjb2RlLm5l
d1RtcChHUCk7CitsZXQgdG1wNDAgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMzkgPSBjb2Rl
Lm5ld1RtcChHUCk7CitsZXQgdG1wMzggPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMzcgPSBj
b2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMzYgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMzUg
PSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMzQgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1w
MzMgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMzIgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQg
dG1wMzEgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMzAgPSBjb2RlLm5ld1RtcChHUCk7Cits
ZXQgdG1wMjkgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMjggPSBjb2RlLm5ld1RtcChHUCk7
CitsZXQgdG1wMjcgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMjYgPSBjb2RlLm5ld1RtcChH
UCk7CitsZXQgdG1wMjUgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMjQgPSBjb2RlLm5ld1Rt
cChHUCk7CitsZXQgdG1wMjMgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMjIgPSBjb2RlLm5l
d1RtcChHUCk7CitsZXQgdG1wMjEgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMjAgPSBjb2Rl
Lm5ld1RtcChHUCk7CitsZXQgdG1wMTkgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTggPSBj
b2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTcgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTYg
PSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTUgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1w
MTQgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTMgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQg
dG1wMTIgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTEgPSBjb2RlLm5ld1RtcChHUCk7Cits
ZXQgdG1wMTAgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wOSA9IGNvZGUubmV3VG1wKEdQKTsK
K2xldCB0bXA4ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDcgPSBjb2RlLm5ld1RtcChHUCk7
CitsZXQgdG1wNiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA1ID0gY29kZS5uZXdUbXAoR1Ap
OworbGV0IHRtcDQgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMyA9IGNvZGUubmV3VG1wKEdQ
KTsKK2xldCB0bXAyID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEgPSBjb2RlLm5ld1RtcChH
UCk7CitsZXQgdG1wMCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCBmdG1wNzQgPSBjb2RlLm5ld1Rt
cChGUCk7CitsZXQgZnRtcDczID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA3MiA9IGNvZGUu
bmV3VG1wKEZQKTsKK2xldCBmdG1wNzEgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDcwID0g
Y29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA2OSA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1w
NjggPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDY3ID0gY29kZS5uZXdUbXAoRlApOworbGV0
IGZ0bXA2NiA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNjUgPSBjb2RlLm5ld1RtcChGUCk7
CitsZXQgZnRtcDY0ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA2MyA9IGNvZGUubmV3VG1w
KEZQKTsKK2xldCBmdG1wNjIgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDYxID0gY29kZS5u
ZXdUbXAoRlApOworbGV0IGZ0bXA2MCA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNTkgPSBj
b2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDU4ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA1
NyA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNTYgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQg
ZnRtcDU1ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA1NCA9IGNvZGUubmV3VG1wKEZQKTsK
K2xldCBmdG1wNTMgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDUyID0gY29kZS5uZXdUbXAo
RlApOworbGV0IGZ0bXA1MSA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNTAgPSBjb2RlLm5l
d1RtcChGUCk7CitsZXQgZnRtcDQ5ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA0OCA9IGNv
ZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNDcgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDQ2
ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA0NSA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBm
dG1wNDQgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDQzID0gY29kZS5uZXdUbXAoRlApOwor
bGV0IGZ0bXA0MiA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNDEgPSBjb2RlLm5ld1RtcChG
UCk7CitsZXQgZnRtcDQwID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAzOSA9IGNvZGUubmV3
VG1wKEZQKTsKK2xldCBmdG1wMzggPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDM3ID0gY29k
ZS5uZXdUbXAoRlApOworbGV0IGZ0bXAzNiA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMzUg
PSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDM0ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0
bXAzMyA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMzIgPSBjb2RlLm5ld1RtcChGUCk7Cits
ZXQgZnRtcDMxID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAzMCA9IGNvZGUubmV3VG1wKEZQ
KTsKK2xldCBmdG1wMjkgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDI4ID0gY29kZS5uZXdU
bXAoRlApOworbGV0IGZ0bXAyNyA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMjYgPSBjb2Rl
Lm5ld1RtcChGUCk7CitsZXQgZnRtcDI1ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAyNCA9
IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMjMgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRt
cDIyID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAyMSA9IGNvZGUubmV3VG1wKEZQKTsKK2xl
dCBmdG1wMjAgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDE5ID0gY29kZS5uZXdUbXAoRlAp
OworbGV0IGZ0bXAxOCA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMTcgPSBjb2RlLm5ld1Rt
cChGUCk7CitsZXQgZnRtcDE2ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAxNSA9IGNvZGUu
bmV3VG1wKEZQKTsKK2xldCBmdG1wMTQgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDEzID0g
Y29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAxMiA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1w
MTEgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDEwID0gY29kZS5uZXdUbXAoRlApOworbGV0
IGZ0bXA5ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA4ID0gY29kZS5uZXdUbXAoRlApOwor
bGV0IGZ0bXA3ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA2ID0gY29kZS5uZXdUbXAoRlAp
OworbGV0IGZ0bXA1ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA0ID0gY29kZS5uZXdUbXAo
RlApOworbGV0IGZ0bXAzID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAyID0gY29kZS5uZXdU
bXAoRlApOworbGV0IGZ0bXAxID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAwID0gY29kZS5u
ZXdUbXAoRlApOworbGV0IGluc3Q7CitsZXQgYXJnOworYmIwLnN1Y2Nlc3NvcnMucHVzaChuZXcg
RnJlcXVlbnRlZEJsb2NrKGJiMiwgTm9ybWFsKSk7CitiYjAuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIxLCBSYXJlKSk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cithcmcg
PSBBcmcuY3JlYXRlQmlnSW1tKDQ0ODk2MDQ4NDgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVn
LnJicCwgMTYpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0
ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJicCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZm
ZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhRWFybHlDbG9i
YmVyZWRSZWdzLmFkZChSZWcucjExKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
cjExKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuU2NyYXRjaCwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworYmIw
LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVC
aWdJbW0oNDQ4Nzg0NjExMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOwor
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3Jl
YXRlQmlnSW1tKDQ0ODc4NDYxMjgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVuZChpbnN0
KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgs
IDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ4Nzg0NjEzNik7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0g
QXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5k
KGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0
NDg3ODQ2MTQ0KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0g
bmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAwKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cith
cmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0ODc4NDYxNTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIw
LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yYXgsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVuZChpbnN0KTsKK2lu
c3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ4Nzg0NjE2MCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNy
ZWF0ZUJpZ0ltbSg0NDg3ODQ2MTY4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5z
dCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4
LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0ODc4NDYxNzYpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYmIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9
IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVu
ZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0o
NDQ4Nzg0NjE4NCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
YXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSgtMjgxNDc0OTc2NzEwNjU2KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnI4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5z
dCA9IG5ldyBJbnN0KE1vdmU2NFRvRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0
KEJyYW5jaERvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZChEb3VibGVFcXVhbCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVuZChpbnN0KTsKK2JiMS5zdWNjZXNzb3JzLnB1c2go
bmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIsIE5vcm1hbCkpOworYmIxLnByZWRlY2Vzc29ycy5wdXNo
KGJiMCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
U3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFy
bHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2JiMS5hcHBlbmQo
aW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQ29udmVydEludDMyVG9Eb3VibGUpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEuYXBwZW5kKGluc3Qp
OworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIxLmFwcGVuZChpbnN0KTsKK2JiMi5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjQsIE5vcm1hbCkpOworYmIyLnN1Y2Nlc3Nv
cnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMywgUmFyZSkpOworYmIyLnByZWRlY2Vzc29y
cy5wdXNoKGJiMCk7CitiYjIucHJlZGVjZXNzb3JzLnB1c2goYmIxKTsKK2luc3QgPSBuZXcgSW5z
dChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQo
QmVsb3cpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJz
aSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNO
b25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hB
cmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworYmIyLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQo
QmVsb3cpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJk
eCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNO
b25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hB
cmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworYmIyLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQo
QmVsb3cpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJj
eCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNO
b25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hB
cmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworYmIyLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChBZGQ2NCk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Ji
Mi5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTY0VG9Eb3VibGUpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMi5hcHBlbmQoaW5z
dCk7CitpbnN0ID0gbmV3IEluc3QoQnJhbmNoRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVEb3Vi
bGVDb25kKERvdWJsZUVxdWFsKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjIuYXBwZW5kKGluc3QpOwor
YmIzLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiNCwgTm9ybWFsKSk7Citi
YjMucHJlZGVjZXNzb3JzLnB1c2goYmIyKTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQmVsb3cpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0g
dHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworYmIzLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChDb252ZXJ0SW50MzJU
b0RvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2JiMy5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoSnVtcCk7CitiYjMuYXBwZW5k
KGluc3QpOworYmI0LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiNiwgTm9y
bWFsKSk7CitiYjQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI1LCBSYXJl
KSk7CitiYjQucHJlZGVjZXNzb3JzLnB1c2goYmIyKTsKK2JiNC5wcmVkZWNlc3NvcnMucHVzaChi
YjMpOworaW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIx
MSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYmI0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3Zl
NjRUb0RvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYmI0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChCcmFuY2hEb3VibGUpOwor
YXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlRXF1YWwpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2JiNC5hcHBlbmQoaW5zdCk7CitiYjUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxv
Y2soYmI2LCBOb3JtYWwpKTsKK2JiNS5wcmVkZWNlc3NvcnMucHVzaChiYjQpOworaW5zdCA9IG5l
dyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVs
Q29uZChCZWxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjExKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRj
aEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5w
YXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitiYjUuYXBwZW5kKGluc3QpOworaW5zdCA9IG5l
dyBJbnN0KENvbnZlcnRJbnQzMlRvRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIx
MSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmI1LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChKdW1wKTsKK2JiNS5hcHBlbmQoaW5zdCk7CitiYjYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVx
dWVudGVkQmxvY2soYmI4LCBOb3JtYWwpKTsKK2JiNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1
ZW50ZWRCbG9jayhiYjcsIFJhcmUpKTsKK2JiNi5wcmVkZWNlc3NvcnMucHVzaChiYjQpOworYmI2
LnByZWRlY2Vzc29ycy5wdXNoKGJiNSk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjEwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRy
dWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKK2JiNi5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnI4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjYuYXBwZW5kKGluc3QpOwor
aW5zdCA9IG5ldyBJbnN0KE1vdmU2NFRvRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnI4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjYuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJ
bnN0KEJyYW5jaERvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZChEb3VibGVFcXVh
bCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYmI2LmFwcGVuZChpbnN0KTsKK2JiNy5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjgsIE5vcm1hbCkpOworYmI3LnByZWRlY2Vzc29ycy5w
dXNoKGJiNik7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJj
eCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJh
RWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mg
PSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2JiNy5hcHBl
bmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQ29udmVydEludDMyVG9Eb3VibGUpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjcuYXBwZW5kKGlu
c3QpOworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmI3LmFwcGVuZChpbnN0KTsKK2JiOC5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEwLCBOb3JtYWwpKTsKK2JiOC5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjksIFJhcmUpKTsKK2JiOC5wcmVkZWNl
c3NvcnMucHVzaChiYjYpOworYmI4LnByZWRlY2Vzc29ycy5wdXNoKGJiNyk7CitpbnN0ID0gbmV3
IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0NjI0ODk3MzYpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CitiYjguYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJn
ID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnI4LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yOSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmI4LmFwcGVu
ZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChBZGQ2NCk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yOSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRp
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYmI4LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChN
b3ZlNjRUb0RvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNik7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYmI4LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChCcmFuY2hEb3VibGUp
OworYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlRXF1YWwpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTYpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTYpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2JiOC5hcHBlbmQoaW5zdCk7CitiYjkuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVk
QmxvY2soYmIxMCwgTm9ybWFsKSk7CitiYjkucHJlZGVjZXNzb3JzLnB1c2goYmI4KTsKK2luc3Qg
PSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVJlbENvbmQoQmVsb3cpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnI5KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI5
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDAp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdz
ID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0
LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2JiOS5hcHBlbmQoaW5zdCk7CitpbnN0ID0g
bmV3IEluc3QoQ29udmVydEludDMyVG9Eb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTYp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiOS5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoSnVtcCk7CitiYjkuYXBwZW5kKGluc3QpOworYmIxMC5zdWNjZXNzb3JzLnB1c2gobmV3IEZy
ZXF1ZW50ZWRCbG9jayhiYjE4LCBOb3JtYWwpKTsKK2JiMTAucHJlZGVjZXNzb3JzLnB1c2goYmI4
KTsKK2JiMTAucHJlZGVjZXNzb3JzLnB1c2goYmI5KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsK
K2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ4OTgwNTUyOCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Citi
YjEwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVh
dGVBZGRyKFJlZy5yZGksIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnI5KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEwLmFwcGVuZChpbnN0KTsK
K2luc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnI5LCAt
OCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDg5ODA1NDg4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSg4MCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDg5ODA1NDg4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yMTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZm
ZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKK2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDg5ODA1NDk2KTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNy
ZWF0ZUFkZHIoUmVnLnJkaSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEwLmFwcGVuZChpbnN0
KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QyLCAwKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CitiYjEwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworYXJnID0gQXJn
LmNyZWF0ZUFkZHIoUmVnLnJkaSwgLTgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIxMC5hcHBlbmQo
aW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Qz
LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBu
ZXcgSW5zdChNb3ZlWmVyb1RvRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTcp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUltbSgxMCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q0LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CitiYjEwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5j
cmVhdGVCaWdJbW0oLTI4MTQ3NDk3NjcxMDY1NCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEwLmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChKdW1wKTsKK2JiMTAuYXBwZW5kKGluc3QpOwor
YmIxMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEzLCBOb3JtYWwpKTsK
K2JiMTEucHJlZGVjZXNzb3JzLnB1c2goYmIzNSk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIxMS5hcHBl
bmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDAp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYmIxMS5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3Qo
SnVtcCk7CitiYjExLmFwcGVuZChpbnN0KTsKK2JiMTIuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVx
dWVudGVkQmxvY2soYmIxMywgTm9ybWFsKSk7CitiYjEyLnByZWRlY2Vzc29ycy5wdXNoKGJiMzQp
OworaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYmIxMi5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3Qo
SnVtcCk7CitiYjEyLmFwcGVuZChpbnN0KTsKK2JiMTMuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVx
dWVudGVkQmxvY2soYmIxNSwgTm9ybWFsKSk7CitiYjEzLnByZWRlY2Vzc29ycy5wdXNoKGJiMTEp
OworYmIxMy5wcmVkZWNlc3NvcnMucHVzaChiYjEyKTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsK
K2FyZyA9IEFyZy5jcmVhdGVJbW0oLTYpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIxMy5hcHBlbmQo
aW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy54bW03KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEzLmFwcGVuZChpbnN0KTsKK2luc3Qg
PSBuZXcgSW5zdChNb3ZlRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTcpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2JiMTMuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1v
dmVEb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNyk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYmIxMy5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW03KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEzLmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChKdW1wKTsKK2JiMTMuYXBwZW5kKGluc3QpOwor
YmIxNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE1LCBOb3JtYWwpKTsK
K2JiMTQucHJlZGVjZXNzb3JzLnB1c2goYmIzMSk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjE0LmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChKdW1wKTsKK2JiMTQuYXBwZW5kKGluc3QpOwor
YmIxNS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI4LCBOb3JtYWwpKTsK
K2JiMTUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNiwgTm9ybWFsKSk7
CitiYjE1LnByZWRlY2Vzc29ycy5wdXNoKGJiMTMpOworYmIxNS5wcmVkZWNlc3NvcnMucHVzaChi
YjE0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5z
dC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0
ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRl
Q29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CitiYjE1LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChCcmFuY2gz
Mik7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlSW1tKDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMTUuYXBw
ZW5kKGluc3QpOworYmIxNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI5
LCBOb3JtYWwpKTsKK2JiMTYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIx
NywgTm9ybWFsKSk7CitiYjE2LnByZWRlY2Vzc29ycy5wdXNoKGJiMTUpOworaW5zdCA9IG5ldyBJ
bnN0KEJyYW5jaDMyKTsKK2FyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEdyZWF0ZXJUaGFuT3JFcXVh
bCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDI2Nyk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYmIxNi5hcHBlbmQoaW5zdCk7CitiYjE3LnN1Y2Nlc3NvcnMucHVzaChu
ZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTgsIE5vcm1hbCkpOworYmIxNy5wcmVkZWNlc3NvcnMucHVz
aChiYjE2KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjE3LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcg
SW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0oLTYpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YmIxNy5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoSnVtcCk7CitiYjE3LmFwcGVuZChp
bnN0KTsKK2JiMTguc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyMCwgTm9y
bWFsKSk7CitiYjE4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTksIFJh
cmUpKTsKK2JiMTgucHJlZGVjZXNzb3JzLnB1c2goYmIxMCk7CitiYjE4LnByZWRlY2Vzc29ycy5w
dXNoKGJiMTcpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xv
dDEsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMTguYXBwZW5kKGluc3QpOworaW5zdCA9
IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
UmVzQ29uZChPdmVyZmxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1
LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0y
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDAp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0
ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRl
Q29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CitiYjE4LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSg0MDApOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdE
YXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3
aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdp
ZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNl
LCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworYmIx
OC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQnJhbmNoVGVzdDMyKTsKK2FyZyA9IEFy
Zy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjE4LmFwcGVuZChpbnN0
KTsKK2JiMTkuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyMCwgTm9ybWFs
KSk7CitiYjE5LnByZWRlY2Vzc29ycy5wdXNoKGJiMTgpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNo
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhh
bik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDApOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFz
Tm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNo
QXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworYmIxOS5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoSnVtcCk7
CitiYjE5LmFwcGVuZChpbnN0KTsKK2JiMjAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVk
QmxvY2soYmIyMiwgTm9ybWFsKSk7CitiYjIwLnByZWRlY2Vzc29ycy5wdXNoKGJiMTgpOworYmIy
MC5wcmVkZWNlc3NvcnMucHVzaChiYjE5KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjAuYXBwZW5k
KGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFJzaGlmdDMyKTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0o
MzEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoQWRkMzIpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YmIyMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoWG9yMzIpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyMC5hcHBlbmQoaW5zdCk7CitpbnN0
ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVSZWxDb25kKExlc3NUaGFuKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJ
bW0oMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1
LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0y
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDAp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdp
ZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitiYjIwLmFwcGVuZChpbnN0KTsKK2luc3Qg
PSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVJlbENvbmQoQWJvdmVPckVxdWFsKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVTdGFjayhzbG90MywgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3Rh
Y2soc2xvdDEsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0z
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitiYjIwLmFwcGVuZChp
bnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90
MiwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcg
SW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucnNpLCBSZWcucmRpLCA4LCAw
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUltbSgxMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjIw
LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2NCk7
CithcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVJbW0oLTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjAuYXBwZW5kKGluc3QpOworaW5z
dCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlUmVzQ29uZChOb25aZXJvKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xv
dDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwg
MCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitiYjIwLmFwcGVuZChp
bnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVJlbENvbmQoTm90RXF1YWwpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVJbW0oNzkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3Rh
Y2soc2xvdDEsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0z
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworYmIy
MC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRl
QWRkcihSZWcucmRpLCA4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjAuYXBwZW5kKGluc3QpOwor
aW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CithcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjEyLCAt
OCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChKdW1wKTsKK2JiMjAuYXBwZW5kKGluc3QpOworYmIyMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZy
ZXF1ZW50ZWRCbG9jayhiYjIyLCBOb3JtYWwpKTsKK2JiMjEucHJlZGVjZXNzb3JzLnB1c2goYmIy
Nyk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJz
aSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjIxLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChKdW1wKTsKK2JiMjEuYXBwZW5kKGluc3QpOworYmIyMi5zdWNjZXNzb3JzLnB1c2gobmV3IEZy
ZXF1ZW50ZWRCbG9jayhiYjI1LCBOb3JtYWwpKTsKK2JiMjIuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIyMywgTm9ybWFsKSk7CitiYjIyLnByZWRlY2Vzc29ycy5wdXNoKGJi
MjApOworYmIyMi5wcmVkZWNlc3NvcnMucHVzaChiYjIxKTsKK2luc3QgPSBuZXcgSW5zdChQYXRj
aCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZs
b3cpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNo
SGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBh
dGNoQXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0
ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOwor
YmIyMi5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworYXJnID0gQXJn
LmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4pOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZUltbSgwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjIyLmFwcGVuZChpbnN0KTsKK2Ji
MjMuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyNiwgTm9ybWFsKSk7Citi
YjIzLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjQsIE5vcm1hbCkpOwor
YmIyMy5wcmVkZWNlc3NvcnMucHVzaChiYjIyKTsKK2luc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7
CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChHcmVhdGVyVGhhbk9yRXF1YWwpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSg0MDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2JiMjMuYXBwZW5kKGluc3QpOworYmIyNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRC
bG9jayhiYjI3LCBOb3JtYWwpKTsKK2JiMjQucHJlZGVjZXNzb3JzLnB1c2goYmIyMyk7CitpbnN0
ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVSZXNDb25kKE92ZXJmbG93KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xv
dDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwg
MCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2lu
c3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
K2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdp
ZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworYmIyNC5hcHBlbmQoaW5zdCk7Citp
bnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVSZXNDb25kKE92ZXJmbG93KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVJbW0oNCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjE1KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUs
IDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Citp
bnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3
aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3
IEluc3QoQWRkMzIpOworYXJnID0gQXJnLmNyZWF0ZUltbSgzKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIy
NC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnIxNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMg
PSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitiYjI0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJvdmVPckVxdWFs
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjE1KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFz
Tm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNo
QXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2JiMjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJ
bnN0KE1vdmVEb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnIxNSwg
OCwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
MCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3
IEluc3QoTW92ZTMyKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CitiYjI0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChSc2hpZnQzMik7Cith
cmcgPSBBcmcuY3JlYXRlSW1tKDMxKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjQuYXBwZW5kKGlu
c3QpOworaW5zdCA9IG5ldyBJbnN0KEFkZDMyKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJj
eCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2JiMjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFhv
cjMyKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjQu
YXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlSW1tKDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3QxLCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0wKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRy
YUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdz
ID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0
aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKK2JiMjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92ZU9yRXF1
YWwpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdE
YXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitiYjI0LmFwcGVuZChpbnN0
KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVJbmRleChS
ZWcucjEyLCBSZWcucmJ4LCA4LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW00KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjI0LmFwcGVuZChp
bnN0KTsKK2luc3QgPSBuZXcgSW5zdChNdWxEb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tNCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
MCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3
IEluc3QoQWRkRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTApOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2JiMjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEFkZDMyKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVJbW0oMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjE1KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjQuYXBwZW5kKGluc3QpOwor
aW5zdCA9IG5ldyBJbnN0KE11bERvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVnLnI5
LCBSZWcucnNpLCA4LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW00KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy54bW0wKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjI0LmFwcGVuZChpbnN0KTsKK2lu
c3QgPSBuZXcgSW5zdChBZGREb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQWRk
MzIpOworYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnIxNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyNC5hcHBlbmQo
aW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTXVsRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVJbmRl
eChSZWcucjksIFJlZy5yMTUsIDgsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTQpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjQuYXBwZW5kKGlu
c3QpOworaW5zdCA9IG5ldyBJbnN0KEFkZERvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0wKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0z
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjI0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcg
SW5zdChNdWxEb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnIxNCwg
OCwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
NCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoQWRkRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTQpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2JiMjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIyNC5h
cHBlbmQoaW5zdCk7CitiYjI1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJi
MjcsIE5vcm1hbCkpOworYmIyNS5wcmVkZWNlc3NvcnMucHVzaChiYjIyKTsKK2luc3QgPSBuZXcg
SW5zdChKdW1wKTsKK2JiMjUuYXBwZW5kKGluc3QpOworYmIyNi5zdWNjZXNzb3JzLnB1c2gobmV3
IEZyZXF1ZW50ZWRCbG9jayhiYjI3LCBOb3JtYWwpKTsKK2JiMjYucHJlZGVjZXNzb3JzLnB1c2go
YmIyMyk7CitpbnN0ID0gbmV3IEluc3QoSnVtcCk7CitiYjI2LmFwcGVuZChpbnN0KTsKK2JiMjcu
c3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyMSwgTm9ybWFsKSk7CitiYjI3
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzAsIE5vcm1hbCkpOworYmIy
Ny5wcmVkZWNlc3NvcnMucHVzaChiYjI0KTsKK2JiMjcucHJlZGVjZXNzb3JzLnB1c2goYmIyNik7
CitiYjI3LnByZWRlY2Vzc29ycy5wdXNoKGJiMjUpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyNy5h
cHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDEsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsK
K2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxh
dGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0
ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRl
Q29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworYmIyNy5hcHBlbmQoaW5zdCk7CitpbnN0
ID0gbmV3IEluc3QoQnJhbmNoMzIpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4p
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSg3KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CitiYjI3LmFwcGVuZChpbnN0KTsKK2JiMjguc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIzMSwgTm9ybWFsKSk7CitiYjI4LnByZWRlY2Vzc29ycy5wdXNoKGJi
MTUpOworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIyOC5hcHBlbmQoaW5zdCk7CitiYjI5LnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzEsIE5vcm1hbCkpOworYmIyOS5w
cmVkZWNlc3NvcnMucHVzaChiYjE2KTsKK2luc3QgPSBuZXcgSW5zdChKdW1wKTsKK2JiMjkuYXBw
ZW5kKGluc3QpOworYmIzMC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMx
LCBOb3JtYWwpKTsKK2JiMzAucHJlZGVjZXNzb3JzLnB1c2goYmIyNyk7CitpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYmIzMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoSnVtcCk7CitiYjMwLmFw
cGVuZChpbnN0KTsKK2JiMzEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIx
NCwgTm9ybWFsKSk7CitiYjMxLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJi
MzIsIE5vcm1hbCkpOworYmIzMS5wcmVkZWNlc3NvcnMucHVzaChiYjMwKTsKK2JiMzEucHJlZGVj
ZXNzb3JzLnB1c2goYmIyOSk7CitiYjMxLnByZWRlY2Vzc29ycy5wdXNoKGJiMjgpOworaW5zdCA9
IG5ldyBJbnN0KE1vdmUzMik7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYmIzMS5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJn
RGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZVpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0
aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitiYjMxLmFwcGVuZChpbnN0KTsK
K2luc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNz
VGhhbik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDcpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2JiMzEuYXBwZW5kKGluc3QpOworYmIzMi5zdWNjZXNzb3JzLnB1c2go
bmV3IEZyZXF1ZW50ZWRCbG9jayhiYjM0LCBOb3JtYWwpKTsKK2JiMzIuc3VjY2Vzc29ycy5wdXNo
KG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMywgUmFyZSkpOworYmIzMi5wcmVkZWNlc3NvcnMucHVz
aChiYjMxKTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZUltbSg0MDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
Myk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOwor
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9i
YmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
TGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDog
NjR9KTsKK2JiMzIuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3QzMik7
CithcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIzMi5h
cHBlbmQoaW5zdCk7CitiYjMzLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJi
MzQsIE5vcm1hbCkpOworYmIzMy5wcmVkZWNlc3NvcnMucHVzaChiYjMyKTsKK2luc3QgPSBuZXcg
SW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENv
bmQoTGVzc1RoYW4pOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSgwKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9i
YmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0
aDogNjR9KTsKK2JiMzMuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIz
My5hcHBlbmQoaW5zdCk7CitiYjM0LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2Nr
KGJiMTIsIE5vcm1hbCkpOworYmIzNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9j
ayhiYjM1LCBOb3JtYWwpKTsKK2JiMzQucHJlZGVjZXNzb3JzLnB1c2goYmIzMik7CitiYjM0LnBy
ZWRlY2Vzc29ycy5wdXNoKGJiMzMpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZm
ZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9
IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
UmVzQ29uZChPdmVyZmxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1t
KDQpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Citp
bnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citi
YjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChEaXZEb3VibGUpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tNik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIzNC5hcHBlbmQoaW5z
dCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitiYjM0LmFwcGVuZChpbnN0
KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlTm90RXF1YWxPclVub3JkZXJlZCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRo
OiA2NH0pOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVnLnI5LCBSZWcucnNpLCA4LCAwKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CitiYjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlMzIpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMzQuYXBw
ZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVl
OworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFD
bG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
TGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KERpdkRvdWJsZSk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW02KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjM0LmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChBZGQzMik7CithcmcgPSBBcmcuY3JlYXRlSW1t
KDEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CitiYjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChB
ZGQzMik7CithcmcgPSBBcmcuY3JlYXRlSW1tKDMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjM0LmFwcGVu
ZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJvdmVPckVxdWFsKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3Rz
ID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRo
OiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworYmIzNC5hcHBlbmQoaW5zdCk7
CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yOCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRp
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9
IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
RG91YmxlQ29uZChEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3Rz
ID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2JiMzQuYXBw
ZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmVEb3VibGUpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUlu
ZGV4KFJlZy5yOSwgUmVnLnJkaSwgOCwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIzNC5h
cHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQWRkMzIpOworYXJnID0gQXJnLmNyZWF0ZUlt
bSgyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3Qo
RGl2RG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTYpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZChEb3VibGVOb3RFcXVh
bE9yVW5vcmRlcmVkKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUs
IDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFF
YXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
RlAsIHdpZHRoOiA2NH0pOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92
ZURvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVnLnI5LCBSZWcucnNpLCA4LCAwKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CitiYjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChE
aXZEb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNik7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVEb3VibGVDb25kKERvdWJsZU5vdEVxdWFs
T3JVbm9yZGVyZWQpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwg
MCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRy
YUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdz
ID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEZQLCB3aWR0aDog
NjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0
aDogNjR9KTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmVEb3VibGUp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnJheCwgOCwgMCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjM0LmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0oMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZVpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0
KEJyYW5jaDMyKTsKK2FyZyA9IEFyZy5jcmVhdGVSZWxDb25kKExlc3NUaGFuKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0oNDAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CitiYjM0LmFwcGVuZChpbnN0KTsKK2JiMzUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVk
QmxvY2soYmIxMSwgTm9ybWFsKSk7CitiYjM1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRl
ZEJsb2NrKGJiMzYsIE5vcm1hbCkpOworYmIzNS5wcmVkZWNlc3NvcnMucHVzaChiYjM0KTsKK2lu
c3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CitiYjM1LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0oMSk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRl
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworYmIzNS5hcHBlbmQoaW5zdCk7CitpbnN0
ID0gbmV3IEluc3QoQnJhbmNoMzIpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4p
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSgyNjcpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2JiMzUuYXBwZW5kKGluc3QpOworYmIzNi5wcmVkZWNlc3NvcnMucHVzaChi
YjM1KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ4
OTgwNTUyMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjM2LmFwcGVuZChpbnN0KTsKK2luc3QgPSBu
ZXcgSW5zdChSZXQ2NCk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2JiMzYuYXBwZW5kKGluc3QpOwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9K
U0Fpci9yZWcuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMJ
KHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3JlZy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEzMyBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBSZWcgZXh0ZW5kcyBUbXBCYXNlIHsK
KyAgICBjb25zdHJ1Y3RvcihpbmRleCwgdHlwZSwgbmFtZSwgaXNDYWxsZWVTYXZlKQorICAgIHsK
KyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKKyAgICAgICAg
dGhpcy5fdHlwZSA9IHR5cGU7CisgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOworICAgICAgICB0
aGlzLl9pc0NhbGxlZVNhdmUgPSAhIWlzQ2FsbGVlU2F2ZTsKKyAgICB9CisgICAgCisgICAgc3Rh
dGljIGZyb21SZWcocmVnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlZzsKKyAgICB9CisgICAg
CisgICAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgdHlwZSgp
IHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KKyAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25h
bWU7IH0KKyAgICBnZXQgaXNDYWxsZWVTYXZlKCkgeyByZXR1cm4gdGhpcy5faXNDYWxsZWVTYXZl
OyB9CisgICAgCisgICAgZ2V0IGlzUmVnKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIAorICAgIHRv
U3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiJSIgKyB0aGlzLl9uYW1lOworICAgIH0K
KyAgICAKKyAgICBzdGF0aWMgZXh0cmFjdChhcmcpCisgICAgeworICAgICAgICBpZiAoYXJnLmlz
UmVnKQorICAgICAgICAgICAgcmV0dXJuIGFyZy5yZWc7CisgICAgICAgIHJldHVybiBudWxsOwor
ICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaEZhc3QoYXJnLCBmdW5jKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFyZy5mb3JFYWNoVG1wRmFzdCh0bXAgPT4geworICAgICAgICAgICAgaWYg
KCF0bXAuaXNSZWcpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJu
IGZ1bmModG1wKTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNo
KGFyZywgYXJnUm9sZSwgYXJnVHlwZSwgYXJnV2lkdGgsIGZ1bmMpCisgICAgeworICAgICAgICBy
ZXR1cm4gYXJnLmZvckVhY2hUbXAoCisgICAgICAgICAgICBhcmdSb2xlLCBhcmdUeXBlLCBhcmdX
aWR0aCwKKyAgICAgICAgICAgICh0bXAsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7CisgICAgICAg
ICAgICAgICAgaWYgKCF0bXAuaXNSZWcpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZnVuYyh0bXAsIHJvbGUsIHR5cGUsIHdpZHRoKTsKKyAgICAg
ICAgICAgIH0pOworICAgIH0KK30KKworeworICAgIFJlZy5yZWdzID0gW107CisgICAgZnVuY3Rp
b24gbmV3UmVnKC4uLmFyZ3MpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFJlZygu
Li5hcmdzKTsKKyAgICAgICAgUmVnLnJlZ3MucHVzaChyZXN1bHQpOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKworICAgIC8vIERlZmluZSBYODZfNjQgR1BScworICAgIHsKKyAgICAg
ICAgbGV0IGluZGV4ID0gMDsKKyAgICAgICAgZnVuY3Rpb24gbmV3R1BSKG5hbWUsIGlzQ2FsbGVl
U2F2ZSkgeyByZXR1cm4gbmV3UmVnKGluZGV4KyssIEdQLCBuYW1lLCBpc0NhbGxlZVNhdmUpOyB9
CisgICAgICAgIAorICAgICAgICBSZWcucmF4ID0gbmV3R1BSKCJyYXgiKTsKKyAgICAgICAgUmVn
LnJjeCA9IG5ld0dQUigicmN4Iik7CisgICAgICAgIFJlZy5yZHggPSBuZXdHUFIoInJkeCIpOwor
ICAgICAgICBSZWcucmJ4ID0gbmV3R1BSKCJyYngiLCB0cnVlKTsKKyAgICAgICAgUmVnLnJzcCA9
IG5ld0dQUigicnNwIik7CisgICAgICAgIFJlZy5yYnAgPSBuZXdHUFIoInJicCIsIHRydWUpOwor
ICAgICAgICBSZWcucnNpID0gbmV3R1BSKCJyc2kiKTsKKyAgICAgICAgUmVnLnJkaSA9IG5ld0dQ
UigicmRpIik7CisgICAgICAgIGZvciAobGV0IGkgPSA4OyBpIDw9IDE1OyArK2kpCisgICAgICAg
ICAgICBSZWdbInIiICsgaV0gPSBuZXdHUFIoInIiICsgaSwgaSA+PSAxMik7CisgICAgfQorCisg
ICAgLy8gRGVmaW5lIFg4Nl82NCBGUFJzLgorICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDE1OyAr
K2kpCisgICAgICAgIFJlZ1sieG1tIiArIGldID0gbmV3UmVnKGksIEZQLCAieG1tIiArIGkpOwor
CisgICAgUmVnLmdwcnMgPSBbXQorICAgIFJlZy5mcHJzID0gW10KKyAgICBSZWcuY2FsbGVlU2F2
ZUdQUnMgPSBbXQorICAgIFJlZy5jYWxsZWVTYXZlRlBScyA9IFtdCisgICAgUmVnLmNhbGxlZVNh
dmVzID0gW10KKyAgICBmb3IgKGxldCByZWcgb2YgUmVnLnJlZ3MpIHsKKyAgICAgICAgaWYgKHJl
Zy5pc0dQKSB7CisgICAgICAgICAgICBSZWcuZ3Bycy5wdXNoKHJlZyk7CisgICAgICAgICAgICBp
ZiAocmVnLmlzQ2FsbGVlU2F2ZSkKKyAgICAgICAgICAgICAgICBSZWcuY2FsbGVlU2F2ZUdQUnMu
cHVzaChyZWcpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgUmVnLmZwcnMucHVzaChy
ZWcpOworICAgICAgICAgICAgaWYgKHJlZy5pc0NhbGxlZVNhdmUpCisgICAgICAgICAgICAgICAg
UmVnLmNhbGxlZVNhdmVGUFJTLnB1c2gocmVnKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVn
LmlzQ2FsbGVlU2F2ZSkKKyAgICAgICAgICAgIFJlZy5jYWxsZWVTYXZlcy5wdXNoKHJlZyk7Cisg
ICAgfQorICAgIAorICAgIFJlZy5jYWxsRnJhbWVSZWdpc3RlciA9IFJlZy5yYnA7CisgICAgUmVn
LnN0YWNrUG9pbnRlclJlZ2lzdGVyID0gUmVnLnJzcDsKK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVz
dHMvSlNBaXIvc3RhY2tfc2xvdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pT
QWlyL3N0YWNrX3Nsb3QuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWly
L3N0YWNrX3Nsb3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5NyBAQAorInVzZSBzdHJp
Y3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFz
cyBTdGFja1Nsb3QgeworICAgIGNvbnN0cnVjdG9yKGluZGV4LCBieXRlU2l6ZSwga2luZCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMuX2J5dGVTaXpl
ID0gYnl0ZVNpemU7CisgICAgICAgIHRoaXMuX2tpbmQgPSBraW5kOworICAgIH0KKyAgICAKKyAg
ICBnZXQgYnl0ZVNpemUoKSB7IHJldHVybiB0aGlzLl9ieXRlU2l6ZTsgfQorICAgIGdldCBraW5k
KCkgeyByZXR1cm4gdGhpcy5fa2luZDsgfQorICAgIAorICAgIGdldCBpc0xvY2tlZCgpIHsgcmV0
dXJuIHRoaXMuX2tpbmQgPT0gTG9ja2VkOyB9CisgICAgZ2V0IGlzU3BpbGwoKSB7IHJldHVybiB0
aGlzLl9raW5kID09IFNwaWxsOyB9CisgICAgCisgICAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhp
cy5faW5kZXg7IH0KKworICAgIGVuc3VyZVNpemUoc2l6ZSkKKyAgICB7CisgICAgICAgIGlmICh0
aGlzLl9vZmZzZXRGcm9tRlApCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN0YWNrIHNs
b3QgYWxyZWFkeSBhbGxvY2F0ZWQiKTsKKyAgICAgICAgdGhpcy5fYnl0ZVNpemUgPSBNYXRoLm1h
eCh0aGlzLl9ieXRlU2l6ZSwgc2l6ZSk7CisgICAgfQorICAgIAorICAgIGdldCBhbGlnbm1lbnQo
KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2J5dGVTaXplIDw9IDEpCisgICAgICAgICAgICBy
ZXR1cm4gMTsKKyAgICAgICAgaWYgKHRoaXMuX2J5dGVTaXplIDw9IDIpCisgICAgICAgICAgICBy
ZXR1cm4gMjsKKyAgICAgICAgaWYgKHRoaXMuX2J5dGVTaXplIDw9IDQpCisgICAgICAgICAgICBy
ZXR1cm4gNDsKKyAgICAgICAgcmV0dXJuIDg7CisgICAgfQorICAgIAorICAgIGdldCBvZmZzZXRG
cm9tRlAoKSB7IHJldHVybiB0aGlzLl9vZmZzZXRGcm9tRlA7IH0KKyAgICAKKyAgICBzZXRPZmZz
ZXRGcm9tRlAodmFsdWUpIHsgdGhpcy5fb2Zmc2V0RnJvbUZQID0gdmFsdWU7IH0KKyAgICAKKyAg
ICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5pc1NwaWxsID8g
InNwaWxsIiA6ICJzdGFjayIpICsgdGhpcy5faW5kZXggKyAiPCIgKyB0aGlzLl9ieXRlU2l6ZSAr
CisgICAgICAgICAgICAodGhpcy5fb2Zmc2V0RnJvbUZQID8gIiwgb2Zmc2V0ID0gIiArIHRoaXMu
X29mZnNldEZyb21GUCA6ICIiKSArICI+IjsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGV4dHJh
Y3QoYXJnKQorICAgIHsKKyAgICAgICAgaWYgKGFyZy5pc1N0YWNrKQorICAgICAgICAgICAgcmV0
dXJuIGFyZy5zdGFja1Nsb3Q7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgZm9yRWFjaEZhc3QoYXJnLCBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKCFhcmcu
aXNTdGFjaykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIGxldCByZXBs
YWNlbWVudDsKKyAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyhhcmcuc3RhY2tTbG90KSkK
KyAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlU3RhY2socmVwbGFjZW1lbnQsIHRoaXMuX29m
ZnNldCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNoKGFyZywgcm9sZSwgdHlwZSwg
d2lkdGgsIGZ1bmMpCisgICAgeworICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgbGV0IHJlcGxhY2VtZW50OworICAgICAgICBp
ZiAocmVwbGFjZW1lbnQgPSBmdW5jKGFyZy5zdGFja1Nsb3QsIHJvbGUsIHR5cGUsIHdpZHRoKSkK
KyAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlU3RhY2socmVwbGFjZW1lbnQsIHRoaXMuX29m
ZnNldCk7CisgICAgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9zeW1ib2xzLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9scy5qcwkocmV2aXNp
b24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9scy5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDgyIEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKy8vIFRoaXMgZmlsZSBpcyBmb3IgbWlzYyBzeW1ib2xz
LgorCisvLyBCMyB0eXBlcworY29uc3QgVm9pZCA9IFN5bWJvbCgiVm9pZCIpOworY29uc3QgSW50
MzIgPSBTeW1ib2woIkludDMyIik7Citjb25zdCBJbnQ2NCA9IFN5bWJvbCgiSW50NjQiKTsKK2Nv
bnN0IEZsb2F0ID0gU3ltYm9sKCJGbG9hdCIpOworY29uc3QgRG91YmxlID0gU3ltYm9sKCJEb3Vi
bGUiKTsKKworLy8gQXJnIHR5cGUKK2NvbnN0IEdQID0gU3ltYm9sKCJHUCIpOworY29uc3QgRlAg
PSBTeW1ib2woIkZQIik7CisKKy8vIFN0YWNrIHNsb3Qga2luZAorY29uc3QgTG9ja2VkID0gU3lt
Ym9sKCJMb2NrZWQiKTsKK2NvbnN0IFNwaWxsID0gU3ltYm9sKCJTcGlsbCIpOworCisvLyBGcmVx
dWVuY3kgY2xhc3MKK2NvbnN0IE5vcm1hbCA9IFN5bWJvbCgiTm9ybWFsIik7Citjb25zdCBSYXJl
ID0gU3ltYm9sKCJSYXJlIik7CisKKy8vIFJlbGF0aW9uYWwgY29uZGl0aW9ucworY29uc3QgRXF1
YWwgPSBTeW1ib2woIkVxdWFsIik7Citjb25zdCBOb3RFcXVhbCA9IFN5bWJvbCgiTm90RXF1YWwi
KTsKK2NvbnN0IEFib3ZlID0gU3ltYm9sKCJBYm92ZSIpOworY29uc3QgQWJvdmVPckVxdWFsID0g
U3ltYm9sKCJBYm92ZU9yRXF1YWwiKTsKK2NvbnN0IEJlbG93ID0gU3ltYm9sKCJCZWxvdyIpOwor
Y29uc3QgQmVsb3dPckVxdWFsID0gU3ltYm9sKCJCZWxvd09yRXF1YWwiKTsKK2NvbnN0IEdyZWF0
ZXJUaGFuID0gU3ltYm9sKCJHcmVhdGVyVGhhbiIpOworY29uc3QgR3JlYXRlclRoYW5PckVxdWFs
ID0gU3ltYm9sKCJHcmVhdGVyVGhhbk9yRXF1YWwiKTsKK2NvbnN0IExlc3NUaGFuID0gU3ltYm9s
KCJMZXNzVGhhbiIpOworY29uc3QgTGVzc1RoYW5PckVxdWFsID0gU3ltYm9sKCJMZXNzVGhhbk9y
RXF1YWwiKTsKKworLy8gUmVzdWx0IGNvbmRpdGlvbnMKK2NvbnN0IE92ZXJmbG93ID0gU3ltYm9s
KCJPdmVyZmxvdyIpOworY29uc3QgU2lnbmVkID0gU3ltYm9sKCJTaWduZWQiKTsKK2NvbnN0IFBv
c2l0aXZlT3JaZXJvID0gU3ltYm9sKCJQb3NpdGl2ZU9yWmVybyIpOworY29uc3QgWmVybyA9IFN5
bWJvbCgiWmVybyIpOworY29uc3QgTm9uWmVybyA9IFN5bWJvbCgiTm9uWmVybyIpOworCisvLyBE
b3VibGUgY29uZGl0aW9ucworY29uc3QgRG91YmxlRXF1YWwgPSBTeW1ib2woIkRvdWJsZUVxdWFs
Iik7Citjb25zdCBEb3VibGVOb3RFcXVhbCA9IFN5bWJvbCgiRG91YmxlTm90RXF1YWwiKTsKK2Nv
bnN0IERvdWJsZUdyZWF0ZXJUaGFuID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhhbiIpOworY29u
c3QgRG91YmxlR3JlYXRlclRoYW5PckVxdWFsID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhhbk9y
RXF1YWwiKTsKK2NvbnN0IERvdWJsZUxlc3NUaGFuID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbiIp
OworY29uc3QgRG91YmxlTGVzc1RoYW5PckVxdWFsID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9y
RXF1YWwiKTsKK2NvbnN0IERvdWJsZUVxdWFsT3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUVx
dWFsT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQgPSBTeW1i
b2woIkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZUdyZWF0ZXJUaGFu
T3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJUaGFuT3JVbm9yZGVyZWQiKTsKK2Nv
bnN0IERvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVH
cmVhdGVyVGhhbk9yRXF1YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlTGVzc1RoYW5PclVu
b3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW5PclVub3JkZXJlZCIpOworY29uc3QgRG91
YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQgPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuT3JF
cXVhbE9yVW5vcmRlcmVkIik7CisKKy8vIERlZmluZSBwb2ludGVyVHlwZSgpCitjb25zdCBQdHIg
PSA2NDsKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdGVzdC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Rlc3QuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3Jt
YW5jZVRlc3RzL0pTQWlyL3Rlc3QuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAor
InVzZSBzdHJpY3QiOworCitjb25zdCB2ZXJib3NlID0gMDsKK2NvbnN0IGJlZm9yZSA9IHByZWNp
c2VUaW1lKCk7CisKK2xvYWQoImFsbC5qcyIpOworbG9hZCgicGF5bG9hZC5qcyIpOworCitpZiAo
dmVyYm9zZSkKKyAgICBwcmludChjb2RlKTsKKworbGV0IGxpdmVuZXNzID0gbmV3IExpdmVuZXNz
KFN0YWNrU2xvdCwgY29kZSk7CitpZiAodmVyYm9zZSkgeworICAgIGZvciAobGV0IGJsb2NrIG9m
IGNvZGUpIHsKKyAgICAgICAgcHJpbnQoYmxvY2sgKyAiOiBsaXZlQXRIZWFkOiAiICsgc2V0VG9T
dHJpbmcobGl2ZW5lc3MubGl2ZUF0SGVhZC5nZXQoYmxvY2spKSk7CisgICAgICAgIHByaW50KGJs
b2NrICsgIjogbGl2ZUF0VGFpbDogIiArIHNldFRvU3RyaW5nKGxpdmVuZXNzLmxpdmVBdFRhaWwu
Z2V0KGJsb2NrKSkpOworICAgIH0KK30KKworY29uc3QgYWZ0ZXIgPSBwcmVjaXNlVGltZSgpOwor
cHJpbnQoIlRoYXQgdG9vayAiICsgKGFmdGVyIC0gYmVmb3JlKSAqIDEwMDAgKyAiIG1zLiIpOwpJ
bmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXAuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9y
bWFuY2VUZXN0cy9KU0Fpci90bXAuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0pTQWlyL3RtcC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU5IEBACisidXNlIHN0cmlj
dCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNz
IFRtcCBleHRlbmRzIFRtcEJhc2UgeworICAgIGNvbnN0cnVjdG9yKGluZGV4LCB0eXBlKQorICAg
IHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKKyAgICAg
ICAgdGhpcy5fdHlwZSA9IHR5cGU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmcm9tUmVnKHJl
ZykKKyAgICB7CisgICAgICAgIHJldHVybiByZWc7CisgICAgfQorICAgIAorICAgIGdldCBpbmRl
eCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9CisgICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlz
Ll90eXBlOyB9CisgICAgCisgICAgZ2V0IGlzUmVnKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAK
KyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gIiUiICsgKHRoaXMuaXNHUCA/
ICIiIDogImYiKSArICJ0bXAiICsgdGhpcy5faW5kZXg7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBleHRyYWN0KGFyZykKKyAgICB7CisgICAgICAgIGlmIChhcmcuaXNUbXApCisgICAgICAgICAg
ICByZXR1cm4gYXJnLnRtcDsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgc3Rh
dGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykgeyByZXR1cm4gYXJnLmZvckVhY2hUbXBGYXN0KGZ1
bmMpOyB9CisgICAgc3RhdGljIGZvckVhY2goYXJnLCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYykg
eyByZXR1cm4gYXJnLmZvckVhY2hUbXAocm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmMpOyB9Cit9Cklu
ZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3RtcF9iYXNlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBl
cmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wX2Jhc2UuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3Jt
YW5jZVRlc3RzL0pTQWlyL3RtcF9iYXNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUg
QEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworY2xhc3MgVG1wQmFzZSB7CisgICAgZ2V0IGlzR1AoKSB7IHJldHVybiB0aGlzLnR5
cGUgPT0gR1A7IH0KKyAgICBnZXQgaXNGUCgpIHsgcmV0dXJuIHRoaXMudHlwZSA9PSBGUDsgfQor
ICAgIAorICAgIGdldCBpc0dQUigpIHsgcmV0dXJuIHRoaXMuaXNSZWcgJiYgdGhpcy5pc0dQOyB9
CisgICAgZ2V0IGlzRlBSKCkgeyByZXR1cm4gdGhpcy5pc1JlZyAmJiB0aGlzLmlzRlA7IH0KKyAg
ICAKKyAgICBnZXQgcmVnKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc1JlZykKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5yZWcgb24gbm9uLVJlZyIpOworICAgICAg
ICByZXR1cm4gdGhpczsKKyAgICB9CisKKyAgICBnZXQgZ3ByKCkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy5pc0dQUikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5ncHIg
b24gbm9uLUdQUiIpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9CisgICAgCisgICAgZ2V0
IGZwcigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNGUFIpCisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkNhbGxlZCAuZnByIG9uIG5vbi1GUFIiKTsKKyAgICAgICAgcmV0dXJuIHRo
aXM7CisgICAgfQorfQorCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3V0aWwuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci91dGlsLmpzCShyZXZpc2lvbiAwKQor
KysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci91dGlsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTE0IEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKK2Z1bmN0aW9uIGlzUmVwcmVzZW50YWJsZUFzSW50MzIodmFsdWUpCit7
CisgICAgcmV0dXJuICh2YWx1ZSB8IDApID09PSB2YWx1ZTsKK30KKworZnVuY3Rpb24gYWRkSW5k
ZXhlZChsaXN0LCBjb25zLCAuLi5hcmdzKQoreworICAgIGxldCByZXN1bHQgPSBuZXcgY29ucyhs
aXN0Lmxlbmd0aCwgLi4uYXJncyk7CisgICAgbGlzdC5wdXNoKHJlc3VsdCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworY29uc3Qgc3RhY2tBbGlnbm1lbnRCeXRlcyA9IDE2OworCitmdW5jdGlv
biByb3VuZFVwVG9NdWx0aXBsZU9mKGFtb3VudCwgdmFsdWUpCit7CisgICAgcmV0dXJuICh2YWx1
ZSArIGFtb3VudCAtIDEpIC8gYW1vdW50ICogYW1vdW50OworfQorCitmdW5jdGlvbiBzeW1ib2xO
YW1lKHN5bWJvbCkKK3sKKyAgICBsZXQgZnVsbFN0cmluZyA9IHN5bWJvbC50b1N0cmluZygpOwor
ICAgIHJldHVybiBmdWxsU3RyaW5nLnN1YnN0cmluZygiU3ltYm9sKCIubGVuZ3RoLCBmdWxsU3Ry
aW5nLmxlbmd0aCAtICIpIi5sZW5ndGgpOworfQorCitmdW5jdGlvbiBzZXRUb1N0cmluZyhzZXQp
Cit7CisgICAgbGV0IHJlc3VsdCA9ICIiOworICAgIGZvciAobGV0IHZhbHVlIG9mIHNldCkgewor
ICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgcmVzdWx0ICs9ICIsICI7CisgICAgICAg
IHJlc3VsdCArPSB2YWx1ZTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZnVuY3Rp
b24gbWVyZ2VJbnRvU2V0KHRhcmdldCwgc291cmNlKQoreworICAgIGxldCBkaWRBZGQgPSBmYWxz
ZTsKKyAgICBmb3IgKGxldCB2YWx1ZSBvZiBzb3VyY2UpIHsKKyAgICAgICAgaWYgKHRhcmdldC5o
YXModmFsdWUpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHRhcmdldC5hZGQodmFs
dWUpOworICAgICAgICBkaWRBZGQgPSB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZGlkQWRkOwor
fQorCitmdW5jdGlvbiBub25FbXB0eVJhbmdlc092ZXJsYXAobGVmdE1pbiwgbGVmdE1heCwgcmln
aHRNaW4sIHJpZ2h0TWF4KQoreworICAgIGlmIChsZWZ0TWluID49IGxlZnRNYXgpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQmFkIGxlZnQgcmFuZ2UiKTsKKyAgICBpZiAocmlnaHRNaW4gPj0g
cmlnaHRNYXgpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJpZ2h0IHJhbmdlIik7Cisg
ICAgCisgICAgaWYgKGxlZnRNaW4gPD0gcmlnaHRNaW4gJiYgbGVmdE1heCA+IHJpZ2h0TWluKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAocmlnaHRNaW4gPD0gbGVmdE1pbiAmJiByaWdo
dE1heCA+IGxlZnRNaW4pCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsK
K30KKworZnVuY3Rpb24gcmFuZ2VzT3ZlcmxhcChsZWZ0TWluLCBsZWZ0TWF4LCByaWdodE1pbiwg
cmlndGhNYXgpCit7CisgICAgaWYgKGxlZnRNaW4gPiBsZWZ0TWF4KQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkJhZCBsZWZ0IHJhbmdlIik7CisgICAgaWYgKHJpZ2h0TWluID4gcmlnaHRNYXgp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJpZ2h0IHJhbmdlIik7CisgICAgCisgICAg
aWYgKGxlZnRNaW4gPT0gbGVmdE1heCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChy
aWdodE1pbiA9PSByaWdodE1heCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJl
dHVybiBub25FbXB0eVJhbmdlc092ZXJsYXAobGVmdE1pbiwgbGVmdE1heCwgcmlnaHRNaW4sIHJp
Z2h0TWF4KTsKK30KKworZnVuY3Rpb24gcmVtb3ZlQWxsTWF0Y2hpbmcoYXJyYXksIGZ1bmMpCit7
CisgICAgbGV0IHNyY0luZGV4ID0gMDsKKyAgICBsZXQgZHN0SW5kZXggPSAwOworICAgIHdoaWxl
IChzcmNJbmRleCA8IGFycmF5Lmxlbmd0aCkgeworICAgICAgICBsZXQgdmFsdWUgPSBhcnJheVtz
cmNJbmRleCsrXTsKKyAgICAgICAgaWYgKCFmdW5jKHZhbHVlKSkKKyAgICAgICAgICAgIGFycmF5
W2RzdEluZGV4KytdID0gdmFsdWU7CisgICAgfQorICAgIGFycmF5Lmxlbmd0aCA9IGRzdEluZGV4
OworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTkzLDggKzE5OTMs
MjUgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogc3RhdGljIHZvaWQgZHVtcEV4
Y2VwdGlvbihHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBleGNlcHRpb24pCiB7
CiAgICAgcHJpbnRmKCJFeGNlcHRpb246ICVzXG4iLCBleGNlcHRpb24udG9XVEZTdHJpbmcoZ2xv
YmFsT2JqZWN0LT5nbG9iYWxFeGVjKCkpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgSWRlbnRpZmll
ciBuYW1lSUQgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhl
YygpLCAibmFtZSIpOworICAgIElkZW50aWZpZXIgZmlsZU5hbWVJRCA9IElkZW50aWZpZXI6OmZy
b21TdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksICJzb3VyY2VVUkwiKTsKKyAgICBJ
ZGVudGlmaWVyIGxpbmVOdW1iZXJJRCA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCksICJsaW5lIik7CiAgICAgSWRlbnRpZmllciBzdGFja0lEID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgInN0YWNrIik7
CisgICAgCisgICAgSlNWYWx1ZSBuYW1lVmFsdWUgPSBleGNlcHRpb24uZ2V0KGdsb2JhbE9iamVj
dC0+Z2xvYmFsRXhlYygpLCBuYW1lSUQpOworICAgIEpTVmFsdWUgZmlsZU5hbWVWYWx1ZSA9IGV4
Y2VwdGlvbi5nZXQoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGZpbGVOYW1lSUQpOworICAg
IEpTVmFsdWUgbGluZU51bWJlclZhbHVlID0gZXhjZXB0aW9uLmdldChnbG9iYWxPYmplY3QtPmds
b2JhbEV4ZWMoKSwgbGluZU51bWJlcklEKTsKICAgICBKU1ZhbHVlIHN0YWNrVmFsdWUgPSBleGNl
cHRpb24uZ2V0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBzdGFja0lEKTsKKyAgICAKKyAg
ICBpZiAobmFtZVZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKSA9
PSAiU3ludGF4RXJyb3IiCisgICAgICAgICYmICghZmlsZU5hbWVWYWx1ZS5pc1VuZGVmaW5lZE9y
TnVsbCgpIHx8ICFsaW5lTnVtYmVyVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkpIHsKKyAgICAg
ICAgcHJpbnRmKAorICAgICAgICAgICAgImF0ICVzOiVzXG4iLAorICAgICAgICAgICAgZmlsZU5h
bWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSkudXRmOCgpLmRh
dGEoKSwKKyAgICAgICAgICAgIGxpbmVOdW1iZXJWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSkudXRmOCgpLmRhdGEoKSk7CisgICAgfQorICAgIAogICAgIGlmICgh
c3RhY2tWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICBwcmludGYoIiVzXG4iLCBz
dGFja1ZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKS51dGY4KCku
ZGF0YSgpKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAy
MDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDggQEAKIAkJ
REMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4QTZB
QjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4ODY5
IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURDMjE0
MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0
YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCOEMxRDAwRTgyMjAwNEMxOEFGIC8qIEFpckR1bXBBc0pT
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNDU0
QjhBMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi87IH07CisJCURDNDU0QjhE
MUQwMEU4MjQwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1
bXBBc0pTLmggKi87IH07CiAJCURDNjA1QjVEMUNFMjZFQTAwMDU5MzcxOCAvKiBQcm9maWxlckV2
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
NjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCAqLzsgfTsKIAkJREM2
MDVCNUUxQ0UyNkVBMjAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVBMUNFMjZFOTgwMDU5MzcxOCAv
KiBQcm9maWxlckV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJREM2MDVCNUYxQ0UyNkVBNTAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVCMUNF
MjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi87IH07CkBAIC00MTk3LDYgKzQxOTks
OCBAQAogCQlEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENDYWxsSGVscGVycy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0
YXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElDU3RhdHMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNjFDQTMyRTUyMDAwQTg4Njkg
LyogSUNTdGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJQ1N0YXRzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNDU0QjhBMUQwMEU4MUYwMDRDMThBRiAv
KiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBB
aXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4QUYgLyogQWlyRHVtcEFz
SlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWlyRHVtcEFzSlMuaDsgcGF0
aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNwcDsgcGF0aCA9IHByb2Zp
bGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYw
NUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBQcm9maWxlckV2ZW50Lmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxl
ckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVCMUNFMjZFOTgw
MDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBQcm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODIxLDYgKzQ4MjUsOCBAQAogCQkJCTBG
RUM4NTUxMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJDb2RlLmggKi8sCiAJCQkJMEY2MTgzMjIxQzQ1
QkYwNzAwNzI0NTBCIC8qIEFpckN1c3RvbS5jcHAgKi8sCiAJCQkJMEYxMEYxQTIxQzQyMEJGMDAw
MUMwN0QyIC8qIEFpckN1c3RvbS5oICovLAorCQkJCURDNDU0QjhBMUQwMEU4MUYwMDRDMThBRiAv
KiBBaXJEdW1wQXNKUy5jcHAgKi8sCisJCQkJREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFGIC8qIEFp
ckR1bXBBc0pTLmggKi8sCiAJCQkJMEY0NTcwMzYxQkU0NEM5MTAwNjJBNjI5IC8qIEFpckVsaW1p
bmF0ZURlYWRDb2RlLmNwcCAqLywKIAkJCQkwRjQ1NzAzNzFCRTQ0QzkxMDA2MkE2MjkgLyogQWly
RWxpbWluYXRlRGVhZENvZGUuaCAqLywKIAkJCQkwRjYxODMyMzFDNDVCRjA3MDA3MjQ1MEIgLyog
QWlyRW1pdFNodWZmbGUuY3BwICovLApAQCAtNzAyMiw2ICs3MDI4LDcgQEAKIAkJCQkwRkVDODUw
NjFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1NwZWNpYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRUM4NTA4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUM4NTBBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbW1vbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkVDODUwQzFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tdXRhdGl2aXR5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUwRTFCREFDREFDMDA4MEZGNzQgLyogQjNDb25z
dDMyVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTEwMUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0NvbnN0NjRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MTA2LDYgKzkxMTMsNyBAQAog
CQkJCTE0MDU2NkQ2MTA3RUMyNzEwMDVEQkM4RCAvKiBKU0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGNEEzOEY5MUM4RTEzREYwMDE5MDMxOCAvKiBTdXBlclNhbXBsZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNzk3RTA3QTkxQjhGQ0ZCOTAwODQwMEJBIC8qIEpTR2xvYmFsTGV4
aWNhbEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDNDU0QjhDMUQwMEU4MjIw
MDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlEMjEw
N0VDMzc2MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTVGRDAwODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2Jh
bE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVTdGFjay5jcHAJKHJldmlzaW9u
IDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVTdGFj
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShCM19K
SVQpCiAKKyNpbmNsdWRlICJBaXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgog
I2luY2x1ZGUgIkFpckluc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgi
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgJKHJldmlzaW9uIDIwMTcx
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY4OCw3ICs2ODgsMTUgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1NvbWVJbW0oKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGlzSW1tKCkgfHwgaXNCaWdJbW0oKSB8fCBpc0Jp
dEltbSgpIHx8IGlzQml0SW1tNjQoKTsKKyAgICAgICAgc3dpdGNoIChraW5kKCkpIHsKKyAgICAg
ICAgY2FzZSBJbW06CisgICAgICAgIGNhc2UgQmlnSW1tOgorICAgICAgICBjYXNlIEJpdEltbToK
KyAgICAgICAgY2FzZSBCaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQog
CiAgICAgYm9vbCBpc0FkZHIoKSBjb25zdApAQCAtOTkzLDMzICsxMDAxLDYgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gdG1wKCkudG1wSW5kZXgoKTsKICAgICB9CiAKLSAgICAvLyBJZiAndGhp
cycgaXMgYW4gYWRkcmVzcyBBcmcsIHRoZW4gaXQgcmV0dXJucyBhIG5ldyBhZGRyZXNzIEFyZyB3
aXRoIHRoZSBhZGRpdGlvbmFsIG9mZnNldCBhcHBsaWVkLgotICAgIC8vIE5vdGUgdGhhdCB0aGlz
IGRvZXMgbm90IGNvbnNpZGVyIHdoZXRoZXIgZG9pbmcgc28gcHJvZHVjZXMgYSB2YWxpZCBBcmcg
b3Igbm90LiBVbmxlc3MgeW91IHJlYWxseQotICAgIC8vIGtub3cgd2hhdCB5b3UncmUgZG9pbmcs
IHlvdSBzaG91bGQgY2FsbCBBcmc6OmlzVmFsaWRGb3JtKCkgb24gdGhlIHJlc3VsdC4gU29tZSBj
b2RlIHdvbid0IGRvIHRoYXQsCi0gICAgLy8gbGlrZSBpZiB5b3UncmUgYXBwbHlpbmcgYSB2ZXJ5
IHNtYWxsIG9mZnNldCB0byBhIEFyZzo6c3RhY2soKSB0aGF0IHlvdSBrbm93IGhhcyBubyBvZmZz
ZXQgdG8gYmVnaW4KLSAgICAvLyB3aXRoLiBJdCdzIHNhZmUgdG8gYXNzdW1lIHRoYXQgYWxsIHRh
cmdldHMgYWxsb3cgc21hbGwgb2Zmc2V0cyAobGlrZSwgMC4uNykgZm9yIEFkZHIsIFN0YWNrLCBh
bmQKLSAgICAvLyBDYWxsQXJnLgotICAgIEFyZyB3aXRoT2Zmc2V0KGludDY0X3QgYWRkaXRpb25h
bE9mZnNldCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghaGFzT2Zmc2V0KCkpCi0gICAgICAg
ICAgICByZXR1cm4gQXJnKCk7Ci0gICAgICAgIGlmIChzdW1PdmVyZmxvd3M8aW50NjRfdD4ob2Zm
c2V0KCksIGFkZGl0aW9uYWxPZmZzZXQpKQotICAgICAgICAgICAgcmV0dXJuIEFyZygpOwotICAg
ICAgICBzd2l0Y2ggKGtpbmQoKSkgewotICAgICAgICBjYXNlIEFkZHI6Ci0gICAgICAgICAgICBy
ZXR1cm4gYWRkcihiYXNlKCksIG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNldCk7Ci0gICAgICAg
IGNhc2UgU3RhY2s6Ci0gICAgICAgICAgICByZXR1cm4gc3RhY2soc3RhY2tTbG90KCksIG9mZnNl
dCgpICsgYWRkaXRpb25hbE9mZnNldCk7Ci0gICAgICAgIGNhc2UgQ2FsbEFyZzoKLSAgICAgICAg
ICAgIHJldHVybiBjYWxsQXJnKG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNldCk7Ci0gICAgICAg
IGNhc2UgSW5kZXg6Ci0gICAgICAgICAgICByZXR1cm4gaW5kZXgoYmFzZSgpLCBpbmRleCgpLCBz
Y2FsZSgpLCBvZmZzZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIHJl
dHVybiBBcmcoKTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHN0YXRpYyBib29sIGlzVmFsaWRJ
bW1Gb3JtKGludDY0X3QgdmFsdWUpCiAgICAgewogICAgICAgICBpZiAoaXNYODYoKSkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnSW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnSW5saW5lcy5oCShyZXZpc2lv
biAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZ0lubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtODQsNiArODQsODggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
VGhpbmdIZWxwZXI8QXJnPiB7CiAgICAgfQogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJnVGhp
bmdIZWxwZXI8U3RhY2tTbG90Kj4geworICAgIHN0YXRpYyBib29sIGlzKGNvbnN0IEFyZyYgYXJn
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFyZy5pc1N0YWNrKCk7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBTdGFja1Nsb3QqIGFzKGNvbnN0IEFyZyYgYXJnKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFyZy5zdGFja1Nsb3QoKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoRmFzdChBcmcmIGFyZywgY29uc3QgRnVu
Y3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlzU3RhY2soKSkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIFN0YWNrU2xvdCogc3RhY2tTbG90ID0g
YXJnLnN0YWNrU2xvdCgpOworICAgICAgICBmdW5jdG9yKHN0YWNrU2xvdCk7CisgICAgICAgIGFy
ZyA9IEFyZzo6c3RhY2soc3RhY2tTbG90LCBhcmcub2Zmc2V0KCkpOworICAgIH0KKyAgICAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHN0YXRpYyB2b2lkIGZvckVhY2goQXJn
JiBhcmcsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0aCwg
Y29uc3QgRnVuY3RvciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlzU3RhY2so
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIFN0YWNrU2xvdCogc3Rh
Y2tTbG90ID0gYXJnLnN0YWNrU2xvdCgpOworICAgICAgICAKKyAgICAgICAgLy8gRklYTUU6IFRo
aXMgaXMgd2F5IHRvbyBvcHRpbWlzdGljIGFib3V0IHRoZSBtZWFuaW5nIG9mICJEZWYiLiBJdCBn
ZXRzIGx1Y2t5IGZvcgorICAgICAgICAvLyBub3cgYmVjYXVzZSBvdXIgb25seSB1c2Ugb2YgIkFu
b255bW91cyIgc3RhY2sgc2xvdHMgaGFwcGVucyB0byB3YW50IHRoZSBvcHRpbWlzdGljCisgICAg
ICAgIC8vIHNlbWFudGljcy4gV2UgY291bGQgZml4IHRoaXMgYnkganVzdCBjaGFuZ2luZyB0aGUg
Y29tbWVudHMgdGhhdCBkZXNjcmliZSB0aGUKKyAgICAgICAgLy8gc2VtYW50aWNzIG9mICJBbm9u
eW1vdXMiLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxMTI4CisgICAgICAgIAorICAgICAgICBmdW5jdG9yKHN0YWNrU2xvdCwgcm9sZSwgdHlw
ZSwgd2lkdGgpOworICAgICAgICBhcmcgPSBBcmc6OnN0YWNrKHN0YWNrU2xvdCwgYXJnLm9mZnNl
dCgpKTsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmdUaGluZ0hlbHBlcjxSZWc+
IHsKKyAgICBzdGF0aWMgYm9vbCBpcyhjb25zdCBBcmcmIGFyZykKKyAgICB7CisgICAgICAgIHJl
dHVybiBhcmcuaXNSZWcoKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIFJlZyBhcyhjb25zdCBB
cmcmIGFyZykKKyAgICB7CisgICAgICAgIHJldHVybiBhcmcucmVnKCk7CisgICAgfQorICAgIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgc3RhdGljIHZvaWQgZm9yRWFjaEZh
c3QoQXJnJiBhcmcsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAgICBhcmcu
Zm9yRWFjaFRtcEZhc3QoCisgICAgICAgICAgICBbJl0gKFRtcCYgdG1wKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCF0bXAuaXNSZWcoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJlZyByZWcgPSB0bXAucmVnKCk7CisgICAg
ICAgICAgICAgICAgZnVuY3RvcihyZWcpOworICAgICAgICAgICAgICAgIHRtcCA9IFRtcChyZWcp
OworICAgICAgICAgICAgfSk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3I+CisgICAgc3RhdGljIHZvaWQgZm9yRWFjaChBcmcmIGFyZywgQXJnOjpSb2xlIGFyZ1Jv
bGUsIEFyZzo6VHlwZSBhcmdUeXBlLCBBcmc6OldpZHRoIGFyZ1dpZHRoLCBjb25zdCBGdW5jdG9y
JiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgYXJnLmZvckVhY2hUbXAoCisgICAgICAgICAgICBh
cmdSb2xlLCBhcmdUeXBlLCBhcmdXaWR0aCwKKyAgICAgICAgICAgIFsmXSAoVG1wJiB0bXAsIEFy
Zzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0aCkgeworICAgICAg
ICAgICAgICAgIGlmICghdG1wLmlzUmVnKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSZWcgcmVnID0gdG1wLnJlZygpOwor
ICAgICAgICAgICAgICAgIGZ1bmN0b3IocmVnLCByb2xlLCB0eXBlLCB3aWR0aCk7CisgICAgICAg
ICAgICAgICAgdG1wID0gVG1wKHJlZyk7CisgICAgICAgICAgICB9KTsKKyAgICB9Cit9OworCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBUaGluZz4KIGJvb2wgQXJnOjppcygpIGNvbnN0CiB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjI2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBaXJEdW1w
QXNKUy5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkFpckNvZGUuaCIKKyNp
bmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsgbmFtZXNwYWNlIEFpciB7CisKK25hbWVzcGFjZSB7CisKK0NTdHJpbmcgdmFyTmFtZUZvckJs
b2NrQXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKCJiYiIs
IGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKEJhc2ljQmxvY2sqIGJsb2NrKQoreworICAg
IHJldHVybiB2YXJOYW1lRm9yQmxvY2tBdEluZGV4KGJsb2NrLT5pbmRleCgpKTsKK30KKworQ1N0
cmluZyB2YXJOYW1lRm9yU3RhY2tTbG90QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICBy
ZXR1cm4gdG9DU3RyaW5nKCJzbG90IiwgaW5kZXgpOworfQorCitDU3RyaW5nIHZhck5hbWUoU3Rh
Y2tTbG90KiBzbG90KQoreworICAgIHJldHVybiB2YXJOYW1lRm9yU3RhY2tTbG90QXRJbmRleChz
bG90LT5pbmRleCgpKTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFJlZyByZWcpCit7CisgICAgcmV0
dXJuIHRvQ1N0cmluZygiUmVnLiIsIHJlZy5kZWJ1Z05hbWUoKSk7Cit9CisKK0NTdHJpbmcgdmFy
TmFtZUZvclRtcFdpdGhUeXBlQW5kSW5kZXgoQXJnOjpUeXBlIHR5cGUsIHVuc2lnbmVkIGluZGV4
KQoreworICAgIHJldHVybiB0b0NTdHJpbmcodHlwZSA9PSBBcmc6OkZQID8gImYiIDogIiIsICJ0
bXAiLCBpbmRleCk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShUbXAgdG1wKQoreworICAgIGlmICh0
bXAuaXNSZWcoKSkKKyAgICAgICAgcmV0dXJuIHZhck5hbWUodG1wLnJlZygpKTsKKyAgICByZXR1
cm4gdmFyTmFtZUZvclRtcFdpdGhUeXBlQW5kSW5kZXgoQXJnKHRtcCkudHlwZSgpLCB0bXAudG1w
SW5kZXgoKSk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCit2b2lkIGR1bXBBc0pT
KENvZGUmIGNvZGUsIFByaW50U3RyZWFtJiBvdXQpCit7CisgICAgb3V0LnByaW50bG4oImxldCBj
b2RlID0gbmV3IENvZGUoKTsiKTsKKyAgICAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Y29kZS5zaXplKCk7ICsraSkKKyAgICAgICAgb3V0LnByaW50bG4oImxldCAiLCB2YXJOYW1lRm9y
QmxvY2tBdEluZGV4KGkpLCAiID0gY29kZS5hZGRCbG9jaygpOyIpOworICAgIAorICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBjb2RlLnN0YWNrU2xvdHMoKS5zaXplKCk7ICsraSkgeworICAg
ICAgICBTdGFja1Nsb3QqIHNsb3QgPSBjb2RlLnN0YWNrU2xvdHMoKVtpXTsKKyAgICAgICAgaWYg
KHNsb3QpCisgICAgICAgICAgICBvdXQucHJpbnRsbigibGV0ICIsIHZhck5hbWUoc2xvdCksICIg
PSBjb2RlLmFkZFN0YWNrU2xvdCgiLCBzbG90LT5ieXRlU2l6ZSgpLCAiLCAiLCBzbG90LT5raW5k
KCksICIpOyIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJpbnRsbigiY29kZS5h
ZGRTdGFja1Nsb3QoMSwgU3BpbGwpOyIpOworICAgIH0KKyAgICAKKyAgICBBcmc6OmZvckVhY2hU
eXBlKAorICAgICAgICBbJl0gKEFyZzo6VHlwZSB0eXBlKSB7CisgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBjb2RlLm51bVRtcHModHlwZSk7IGktLTspIHsKKyAgICAgICAgICAgICAgICBv
dXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgImxldCAiLCB2YXJOYW1lRm9yVG1wV2l0
aFR5cGVBbmRJbmRleCh0eXBlLCBpKSwgIiA9IGNvZGUubmV3VG1wKCIsIHR5cGUsICIpOyIpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAKKyAgICBvdXQucHJpbnRsbigibGV0IGlu
c3Q7Iik7CisgICAgb3V0LnByaW50bG4oImxldCBhcmc7Iik7CisgICAgCisgICAgZm9yIChCYXNp
Y0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgZm9yIChGcmVxdWVudGVkQmxvY2sgc3Vj
Y2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAgb3V0LnByaW50bG4o
CisgICAgICAgICAgICAgICAgdmFyTmFtZShibG9jayksICIuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soIiwKKyAgICAgICAgICAgICAgICB2YXJOYW1lKHN1Y2Nlc3Nvci5ibG9j
aygpKSwgIiwgIiwgc3VjY2Vzc29yLmZyZXF1ZW5jeSgpLCAiKSk7Iik7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGZvciAoQmFzaWNCbG9jayogcHJlZGVjZXNzb3IgOiBibG9jay0+cHJl
ZGVjZXNzb3JzKCkpCisgICAgICAgICAgICBvdXQucHJpbnRsbih2YXJOYW1lKGJsb2NrKSwgIi5w
cmVkZWNlc3NvcnMucHVzaCgiLCB2YXJOYW1lKHByZWRlY2Vzc29yKSwgIik7Iik7CisgICAgICAg
IAorICAgICAgICBmb3IgKEluc3QmIGluc3QgOiAqYmxvY2spIHsKKyAgICAgICAgICAgIG91dC5w
cmludGxuKCJpbnN0ID0gbmV3IEluc3QoIiwgaW5zdC5vcGNvZGUsICIpOyIpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBpbnN0LmZvckVhY2hBcmcoCisgICAgICAgICAgICAgICAgWyZdIChB
cmcmIGFyZywgQXJnOjpSb2xlLCBBcmc6OlR5cGUsIEFyZzo6V2lkdGgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgc3dpdGNoIChhcmcua2luZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
QXJnOjpJbnZhbGlkOgorICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpUbXA6CisgICAgICAg
ICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZVRtcCgiLCB2YXJO
YW1lKGFyZy50bXAoKSksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6Oklt
bToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRl
SW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJn
OjpCaWdJbW06CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJn
LmNyZWF0ZUJpZ0ltbSgiLCBhcmcudmFsdWUoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICBjYXNlIEFyZzo6Qml0SW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4o
ImFyZyA9IEFyZy5jcmVhdGVCaXRJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBBcmc6OkJpdEltbTY0OgorICAgICAgICAgICAgICAgICAgICAgICAg
b3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVCaXRJbW02NCgiLCBhcmcudmFsdWUoKSwgIik7
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6QWRkcjoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmcg
PSBBcmcuY3JlYXRlQWRkcigiLCB2YXJOYW1lKGFyZy5iYXNlKCkpLCAiLCAiLCBhcmcub2Zmc2V0
KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlN0YWNrOgorICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImFyZyA9IEFyZy5jcmVhdGVTdGFjaygiLCB2YXJOYW1lKGFyZy5zdGFja1Nsb3QoKSksICIs
ICIsIGFyZy5vZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6
Q2FsbEFyZzoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcu
Y3JlYXRlQ2FsbEFyZygiLCBhcmcub2Zmc2V0KCksICIpOyIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBBcmc6OkluZGV4OgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4o
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZyA9IEFyZy5jcmVhdGVJbmRleCgiLCB2
YXJOYW1lKGFyZy5iYXNlKCkpLCAiLCAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
ck5hbWUoYXJnLmluZGV4KCkpLCAiLCAiLCBhcmcuc2NhbGUoKSwgIiwgIiwgYXJnLm9mZnNldCgp
LCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpSZWxDb25kOgorICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKCIs
IGFyZy5hc1JlbGF0aW9uYWxDb25kaXRpb24oKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICBjYXNlIEFyZzo6UmVzQ29uZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxu
KCJhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZCgiLCBhcmcuYXNSZXN1bHRDb25kaXRpb24oKSwgIik7
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6RG91YmxlQ29uZDoKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZCgi
LCBhcmcuYXNEb3VibGVDb25kaXRpb24oKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBj
YXNlIEFyZzo6U3BlY2lhbDoKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEpTLUFpciBkb2Vz
bid0IGhhdmUgU3BlY2lhbHMuCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6V2lkdGhB
cmc6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0
ZVdpZHRoQXJnKCIsIGFyZy53aWR0aCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5hcmdzLnB1c2goYXJnKTsiKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGluc3Qub3Bj
b2RlID09IFBhdGNoKSB7CisgICAgICAgICAgICAgICAgaWYgKGluc3QuaGFzTm9uQXJnRWZmZWN0
cygpKQorICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOyIpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG91
dC5wcmludGxuKCJpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOyIpOwor
ICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsiKTsKKyAgICAgICAgICAgICAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdz
KCkuZm9yRWFjaCgKKyAgICAgICAgICAgICAgICAgICAgWyZdIChSZWcgcmVnKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVn
cy5hZGQoIiwgdmFyTmFtZShyZWcpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MoKS5mb3JFYWNoKAorICAgICAg
ICAgICAgICAgICAgICBbJl0gKFJlZyByZWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91
dC5wcmludGxuKCJpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoIiwgdmFyTmFtZShyZWcpLCAi
KTsiKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgb3V0LnByaW50bG4oImluc3QucGF0Y2hBcmdEYXRhID0gW107Iik7CisgICAgICAg
ICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKAorICAgICAgICAgICAgICAgICAgICBbJl0gKEFyZyYs
IEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0aCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy4iLCByb2xlLCAiLCB0eXBl
OiAiLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsIHdpZHRoOiAiLCB3aWR0
aCwgIn0pOyIpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgaWYgKGluc3Qub3Bjb2RlID09IENDYWxsIHx8IGluc3Qub3Bj
b2RlID09IENvbGRDQ2FsbCkgeworICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmND
YWxsVHlwZSA9ICIsIGluc3Qub3JpZ2luLT50eXBlKCkpOworICAgICAgICAgICAgICAgIG91dC5w
cmludGxuKCJpbnN0LmNDYWxsQXJnVHlwZXMgPSBbXTsiKTsKKyAgICAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAxOyBpIDwgaW5zdC5vcmlnaW4tPm51bUNoaWxkcmVuKCk7ICsraSkKKyAg
ICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuY0NhbGxBcmdUeXBlcy5wdXNoKCIs
IGluc3Qub3JpZ2luLT5jaGlsZChpKS0+dHlwZSgpLCAiKTsiKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgb3V0LnByaW50bG4odmFyTmFtZShibG9jayksICIuYXBw
ZW5kKGluc3QpOyIpOworICAgICAgICB9CisgICAgfQorfQorCit9IH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpCMzo6QWlyCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5oCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBBaXJEdW1wQXNKU19oCisjZGVmaW5lIEFpckR1bXBBc0pTX2gKKworI2lm
IEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KKworbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgeworCitjbGFzcyBDb2RlOwor
CisvLyBUaGlzIGlzIGEgam9rZS4gVmFyaW91cyBvcGVyYXRpb25zIG9uIEFpciBhcmUgaW50ZXJl
c3RpbmcgZnJvbSBhIGJlbmNobWFya2luZyBzdGFuZHBvaW50LiBXZSBjYW4KKy8vIHdyaXRlIHNv
bWUgQWlyIHBoYXNlcyBpbiBKUyBhbmQgdGhlbiB1c2UgdGhhdCB0byBiZW5jaG1hcmsgSlMuCit2
b2lkIGR1bXBBc0pTKENvZGUmLCBQcmludFN0cmVhbSYpOworCit9IH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpCMzo6QWlyCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQWly
RHVtcEFzSlNfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeE9i
dmlvdXNTcGlsbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJB
aXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckluc3RJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyUGhhc2VTY29wZS5oIgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJBbGxvY2F0ZVN0YWNrLmgiCiAj
aW5jbHVkZSAiQWlyQ29kZS5oIgorI2luY2x1ZGUgIkFpckR1bXBBc0pTLmgiCiAjaW5jbHVkZSAi
QWlyRWxpbWluYXRlRGVhZENvZGUuaCIKICNpbmNsdWRlICJBaXJGaXhPYnZpb3VzU3BpbGxzLmgi
CiAjaW5jbHVkZSAiQWlyRml4UGFydGlhbFJlZ2lzdGVyU3RhbGxzLmgiCkBAIC0xMDIsNiArMTAz
LDExIEBAIHZvaWQgcHJlcGFyZUZvckdlbmVyYXRpb24oQ29kZSYgY29kZSkKICAgICAvLyBQcmlv
ciB0byB0aGlzIHBvaW50IHRoZSBwcm9sb2d1ZSBhbmQgZXBpbG9ndWUgaXMgaW1wbGljaXQuIFRo
aXMgbWFrZXMgaXQgZXhwbGljaXQuIEl0IGFsc28KICAgICAvLyBkb2VzIHRoaW5ncyBsaWtlIGlk
ZW50aWZ5IHdoaWNoIGNhbGxlZS1zYXZlcyB3ZSdyZSB1c2luZyBhbmQgc2F2ZXMgdGhlbS4KICAg
ICBoYW5kbGVDYWxsZWVTYXZlcyhjb2RlKTsKKyAgICAKKyAgICBpZiAoT3B0aW9uczo6ZHVtcEFp
ckFzSlNCZWZvcmVBbGxvY2F0ZVN0YWNrKCkpIHsKKyAgICAgICAgZGF0YUxvZygiRHVtcGluZyBB
aXIgYXMgSlMgYmVmb3JlIGFsbG9jYXRlU3RhY2s6XG4iKTsKKyAgICAgICAgZHVtcEFzSlMoY29k
ZSwgV1RGOjpkYXRhRmlsZSgpKTsKKyAgICB9CiAKICAgICAvLyBUaGlzIHR1cm5zIGFsbCBTdGFj
ayBhbmQgQ2FsbEFyZyBBcmdzIGludG8gQWRkciBhcmdzIHRoYXQgdXNlIHRoZSBmcmFtZSBwb2lu
dGVyLiBJdCBkb2VzCiAgICAgLy8gdGhpcyBieSBmaXJzdC1maXQgYWxsb2NhdGluZyBzdGFjayBz
bG90cy4gSXQgc2hvdWxkIGJlIHByZXR0eSBkYXJuIGNsb3NlIHRvIG9wdGltYWwsIHNvIHdlCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3RJbmxpbmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5saW5lcy5oCShy
ZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3RJ
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDY1ICszNiwxMyBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKLXRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHN0cnVjdCBGb3JFYWNoOwotdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxUbXA+IHsKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAgIHN0YXRpYyB2b2lkIGZvckVhY2goSW5z
dCYgaW5zdCwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKLSAgICB7Ci0gICAgICAgIGluc3QuZm9y
RWFjaFRtcChmdW5jdG9yKTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNo
PEFyZz4gewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQg
Zm9yRWFjaChJbnN0JiBpbnN0LCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAg
ICAgaW5zdC5mb3JFYWNoQXJnKGZ1bmN0b3IpOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4gc3Ry
dWN0IEZvckVhY2g8U3RhY2tTbG90Kj4gewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+
Ci0gICAgc3RhdGljIHZvaWQgZm9yRWFjaChJbnN0JiBpbnN0LCBjb25zdCBGdW5jdG9yJiBmdW5j
dG9yKQotICAgIHsKLSAgICAgICAgaW5zdC5mb3JFYWNoQXJnKAotICAgICAgICAgICAgWyZdIChB
cmcmIGFyZywgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0eXBlLCBBcmc6OldpZHRoIHdpZHRo
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFhcmcuaXNTdGFjaygpKQotICAgICAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgU3RhY2tTbG90KiBzdGFja1Nsb3QgPSBhcmcu
c3RhY2tTbG90KCk7Ci0KLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyB3YXkgdG9v
IG9wdGltaXN0aWMgYWJvdXQgdGhlIG1lYW5pbmcgb2YgIkRlZiIuIEl0IGdldHMgbHVja3kgZm9y
Ci0gICAgICAgICAgICAgICAgLy8gbm93IGJlY2F1c2Ugb3VyIG9ubHkgdXNlIG9mICJBbm9ueW1v
dXMiIHN0YWNrIHNsb3RzIGhhcHBlbnMgdG8gd2FudCB0aGUgb3B0aW1pc3RpYwotICAgICAgICAg
ICAgICAgIC8vIHNlbWFudGljcy4gV2UgY291bGQgZml4IHRoaXMgYnkganVzdCBjaGFuZ2luZyB0
aGUgY29tbWVudHMgdGhhdCBkZXNjcmliZSB0aGUKLSAgICAgICAgICAgICAgICAvLyBzZW1hbnRp
Y3Mgb2YgIkFub255bW91cyIuCi0gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTEyOAotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIGZ1bmN0b3Ioc3RhY2tTbG90LCByb2xlLCB0eXBlLCB3aWR0aCk7Ci0gICAgICAgICAg
ICAgICAgYXJnID0gQXJnOjpzdGFjayhzdGFja1Nsb3QsIGFyZy5vZmZzZXQoKSk7Ci0gICAgICAg
ICAgICB9KTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNoPFJlZz4gewot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQgZm9yRWFjaChJ
bnN0JiBpbnN0LCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAgICAgaW5zdC5m
b3JFYWNoVG1wKAotICAgICAgICAgICAgWyZdIChUbXAmIHRtcCwgQXJnOjpSb2xlIHJvbGUsIEFy
Zzo6VHlwZSB0eXBlLCBBcmc6OldpZHRoIHdpZHRoKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0
bXAuaXNSZWcoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICAg
ICAgUmVnIHJlZyA9IHRtcC5yZWcoKTsKLSAgICAgICAgICAgICAgICBmdW5jdG9yKHJlZywgcm9s
ZSwgdHlwZSwgd2lkdGgpOwotICAgICAgICAgICAgICAgIHRtcCA9IFRtcChyZWcpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgfQotfTsKLQogdGVtcGxhdGU8dHlwZW5hbWUgVGhpbmcsIHR5cGVuYW1l
IEZ1bmN0b3I+CiB2b2lkIEluc3Q6OmZvckVhY2goY29uc3QgRnVuY3RvciYgZnVuY3RvcikKIHsK
LSAgICBGb3JFYWNoPFRoaW5nPjo6Zm9yRWFjaCgqdGhpcywgZnVuY3Rvcik7CisgICAgZm9yRWFj
aEFyZygKKyAgICAgICAgWyZdIChBcmcmIGFyZywgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0
eXBlLCBBcmc6OldpZHRoIHdpZHRoKSB7CisgICAgICAgICAgICBhcmcuZm9yRWFjaDxUaGluZz4o
cm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmN0b3IpOworICAgICAgICB9KTsKIH0KIAogaW5saW5lIGNv
bnN0IFJlZ2lzdGVyU2V0JiBJbnN0OjpleHRyYUNsb2JiZXJlZFJlZ3MoKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb2dSZWdpc3RlclByZXNzdXJlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckxvZ1JlZ2lzdGVyUHJlc3N1
cmUuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckxvZ1JlZ2lzdGVyUHJlc3N1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWlyQXJnSW5saW5lcy5oIgog
I2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgogI2luY2x1
ZGUgIkFpckxpdmVuZXNzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
clJlcG9ydFVzZWRSZWdpc3RlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5jcHAJKHJldmlzaW9uIDIwMTcxNikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShCM19KSVQp
CiAKKyNpbmNsdWRlICJBaXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2lu
Y2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyTGl2ZW5lc3MuaCIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BpbGxFdmVyeXRoaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwaWxsRXZlcnl0aGlu
Zy5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyU3BpbGxFdmVyeXRoaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAog
CiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIKICNpbmNs
dWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAi
QWlySW5zdElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL29wY29kZV9nZW5lcmF0b3IucmIJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkod29ya2luZyBjb3B5KQpAQCAt
MTA5MCwzICsxMDkwLDk2IEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVkIikgewogICAgIG91dHAu
cHV0cyAifSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpciIKIH0KIAorIyBUaGlzIGlzIGEg
aGFjayBmb3IgSlNBaXIuIEl0J3MgYSBqb2tlLgorRmlsZS5vcGVuKCJKU0Fpcl9vcGNvZGUuanMi
LCAidyIpIHsKKyAgICB8IG91dHAgfAorICAgIG91dHAucHV0cyAiXCJ1c2Ugc3RyaWN0XCI7Igor
ICAgIG91dHAucHV0cyAiLy8gR2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIgZnJvbSAj
eyRmaWxlTmFtZX0gLS0gZG8gbm90IGVkaXQhIgorICAgIAorICAgICRvcGNvZGVzLnZhbHVlcy5l
YWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBvdXRwLnB1dHMgImNvbnN0ICN7b3Bj
b2RlLm5hbWV9ID0gU3ltYm9sKCN7b3Bjb2RlLm5hbWUuaW5zcGVjdH0pOyIKKyAgICB9CisgICAg
CisgICAgb3V0cC5wdXRzICJmdW5jdGlvbiBJbnN0X2ZvckVhY2hBcmcoaW5zdCwgZnVuYykiCisg
ICAgb3V0cC5wdXRzICJ7IgorICAgIG91dHAucHV0cyAibGV0IHJlcGxhY2VtZW50OyIKKyAgICBv
dXRwLnB1dHMgInN3aXRjaCAoaW5zdC5vcGNvZGUpIHsiCisgICAgJG9wY29kZXMudmFsdWVzLmVh
Y2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29k
ZS5uYW1lfToiCisgICAgICAgIGlmIG9wY29kZS5jdXN0b20KKyAgICAgICAgICAgIG91dHAucHV0
cyAiI3tvcGNvZGUubmFtZX1DdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsiCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG5lZWRPdmVybG9hZFN3aXRjaCA9IG9wY29kZS5vdmVybG9hZHMu
c2l6ZSAhPSAxCisgICAgICAgICAgICBvdXRwLnB1dHMgInN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeyIgaWYgbmVlZE92ZXJsb2FkU3dpdGNoCisgICAgICAgICAgICBvcGNvZGUub3ZlcmxvYWRz
LmVhY2ggeworICAgICAgICAgICAgICAgIHwgb3ZlcmxvYWQgfAorICAgICAgICAgICAgICAgIG91
dHAucHV0cyAiY2FzZSAje292ZXJsb2FkLnNpZ25hdHVyZS5sZW5ndGh9OiIgaWYgbmVlZE92ZXJs
b2FkU3dpdGNoCisgICAgICAgICAgICAgICAgb3ZlcmxvYWQuc2lnbmF0dXJlLmVhY2hfd2l0aF9p
bmRleCB7CisgICAgICAgICAgICAgICAgICAgIHwgYXJnLCBpbmRleCB8CisgICAgICAgICAgICAg
ICAgICAgIHJvbGUgPSBuaWwKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBhcmcucm9sZQorICAg
ICAgICAgICAgICAgICAgICB3aGVuICJVIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9
ICJVc2UiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIkQiCisgICAgICAgICAgICAgICAgICAg
ICAgICByb2xlID0gIkRlZiIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiWkQiCisgICAgICAg
ICAgICAgICAgICAgICAgICByb2xlID0gIlpEZWYiCisgICAgICAgICAgICAgICAgICAgIHdoZW4g
IlVEIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJVc2VEZWYiCisgICAgICAgICAg
ICAgICAgICAgIHdoZW4gIlVaRCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNl
WkRlZiIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiVUEiCisgICAgICAgICAgICAgICAgICAg
ICAgICByb2xlID0gIlVzZUFkZHIiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlMiCisgICAg
ICAgICAgICAgICAgICAgICAgICByb2xlID0gIlNjcmF0Y2giCisgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgICAg
IGVuZAorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgb3V0cC5wdXRz
ICJpbnN0LnZpc2l0QXJnKCN7aW5kZXh9LCBmdW5jLCBBcmcuI3tyb2xlfSwgI3thcmcudHlwZX1Q
LCAje2FyZy53aWR0aH0pOyIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0
cC5wdXRzICJicmVhazsiCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiBuZWVkT3Zlcmxv
YWRTd2l0Y2gKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgImRlZmF1bHQ6IgorICAgICAgICAg
ICAgICAgIG91dHAucHV0cyAidGhyb3cgbmV3IEVycm9yKFwiQmFkIG92ZXJsb2FkXCIpOyIKKyAg
ICAgICAgICAgICAgICBvdXRwLnB1dHMgImJyZWFrOyIKKyAgICAgICAgICAgICAgICBvdXRwLnB1
dHMgIn0iCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kCisgICAgICAgIG91dHAucHV0cyAi
YnJlYWs7IgorICAgIH0KKyAgICBvdXRwLnB1dHMgImRlZmF1bHQ6IgorICAgIG91dHAucHV0cyAi
dGhyb3cgXCJCYWQgb3Bjb2RlXCI7IgorICAgIG91dHAucHV0cyAifSIKKyAgICBvdXRwLnB1dHMg
In0iCisgICAgCisgICAgb3V0cC5wdXRzICJmdW5jdGlvbiBJbnN0X2hhc05vbkFyZ0VmZmVjdHMo
aW5zdCkiCisgICAgb3V0cC5wdXRzICJ7IgorICAgIG91dHAucHV0cyAic3dpdGNoIChpbnN0Lm9w
Y29kZSkgeyIKKyAgICBmb3VuZFRydWUgPSBmYWxzZQorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNo
IHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuYXR0cmlidXRlc1s6dGVy
bWluYWxdIG9yIG9wY29kZS5hdHRyaWJ1dGVzWzplZmZlY3RzXQorICAgICAgICAgICAgb3V0cC5w
dXRzICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIGZvdW5kVHJ1ZSA9IHRydWUK
KyAgICAgICAgZW5kCisgICAgfQorICAgIGlmIGZvdW5kVHJ1ZQorICAgICAgICBvdXRwLnB1dHMg
InJldHVybiB0cnVlOyIKKyAgICBlbmQKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAg
ICAgIHwgb3Bjb2RlIHwKKyAgICAgICAgaWYgb3Bjb2RlLmN1c3RvbQorICAgICAgICAgICAgb3V0
cC5wdXRzICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIG91dHAucHV0cyAicmV0
dXJuICN7b3Bjb2RlLm5hbWV9Q3VzdG9tLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3Qp
OyIKKyAgICAgICAgZW5kCisgICAgfQorICAgIG91dHAucHV0cyAiZGVmYXVsdDoiCisgICAgb3V0
cC5wdXRzICJyZXR1cm4gZmFsc2U7IgorICAgIG91dHAucHV0cyAifSIKKyAgICBvdXRwLnB1dHMg
In0iCit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5jcHAJKHJldmlzaW9uIDIwMTcx
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzMsNiArMzMsMTUgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2NvbnN0IGNoYXIqIFJlZzo6ZGVi
dWdOYW1lKCkgY29uc3QKK3sKKyAgICBpZiAoISp0aGlzKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICBpZiAoaXNHUFIoKSkKKyAgICAgICAgcmV0dXJuIEdQUkluZm86OmRlYnVnTmFtZShn
cHIoKSk7CisgICAgcmV0dXJuIEZQUkluZm86OmRlYnVnTmFtZShmcHIoKSk7Cit9CisKIHZvaWQg
UmVnOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgaWYgKCEqdGhpcykKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuaAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZWcuaAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDYgKzE3Miw4IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1faW5kZXg7CiAgICAgfQogICAgIAorICAgIGNvbnN0
IGNoYXIqIGRlYnVnTmFtZSgpIGNvbnN0OworICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVh
bSYpIGNvbnN0OwogCiAgICAgY2xhc3MgQWxsUmVnc0l0ZXJhYmxlIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgJKHJldmlzaW9uIDIwMTcxNikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAkod29ya2luZyBjb3B5
KQpAQCAtMTIxLDQgKzEyMSw1MSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAor
bmFtZXNwYWNlIFdURiB7CisKK2lubGluZSB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0m
IG91dCwgSlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3JUeXBlIHR5cGUpCit7CisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpTeW50YXhFcnJvck5vbmU6
CisgICAgICAgIG91dC5wcmludCgiU3ludGF4RXJyb3JOb25lIik7CisgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6OlN5bnRheEVycm9ySXJyZWNvdmVyYWJsZToKKyAg
ICAgICAgb3V0LnByaW50KCJTeW50YXhFcnJvcklycmVjb3ZlcmFibGUiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3JVbnRlcm1pbmF0ZWRM
aXRlcmFsOgorICAgICAgICBvdXQucHJpbnQoIlN5bnRheEVycm9yVW50ZXJtaW5hdGVkTGl0ZXJh
bCIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpTeW50YXhF
cnJvclJlY292ZXJhYmxlOgorICAgICAgICBvdXQucHJpbnQoIlN5bnRheEVycm9yUmVjb3ZlcmFi
bGUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworfQorCitpbmxpbmUgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFt
JiBvdXQsIEpTQzo6UGFyc2VyRXJyb3I6OkVycm9yVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAo
dHlwZSkgeworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6RXJyb3JOb25lOgorICAgICAgICBv
dXQucHJpbnQoIkVycm9yTm9uZSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBh
cnNlckVycm9yOjpTdGFja092ZXJmbG93OgorICAgICAgICBvdXQucHJpbnQoIlN0YWNrT3ZlcmZs
b3ciKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6RXZhbEVy
cm9yOgorICAgICAgICBvdXQucHJpbnQoIkV2YWxFcnJvciIpOworICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpPdXRPZk1lbW9yeToKKyAgICAgICAgb3V0LnByaW50
KCJPdXRPZk1lbW9yeSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBhcnNlckVy
cm9yOjpTeW50YXhFcnJvcjoKKyAgICAgICAgb3V0LnByaW50KCJTeW50YXhFcnJvciIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiAjZW5kaWYgLy8gUGFyc2VyRXJyb3JfaApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMjAx
NzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNjgsNiArMzY4LDggQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJp
bmc7CiAgICAgdihib29sLCBkdW1wTW9kdWxlTG9hZGluZ1N0YXRlLCBmYWxzZSwgTm9ybWFsLCBu
dWxscHRyKSBcCiAgICAgdihib29sLCBleHBvc2VJbnRlcm5hbE1vZHVsZUxvYWRlciwgZmFsc2Us
IE5vcm1hbCwgImV4cG9zZSB0aGUgaW50ZXJuYWwgbW9kdWxlIGxvYWRlciBvYmplY3QgdG8gdGhl
IGdsb2JhbCBzcGFjZSBmb3IgZGVidWdnaW5nIikgXAogICAgIFwKKyAgICB2KGJvb2wsIGR1bXBB
aXJBc0pTQmVmb3JlQWxsb2NhdGVTdGFjaywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAorICAg
IFwKICAgICB2KGJvb2wsIHVzZVN1cGVyU2FtcGxlciwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikK
IAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QcmludFN0
cmVhbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgJKHJldmlz
aW9uIDIwMTcxNikKKysrIFNvdXJjZS9XVEYvd3RmL1ByaW50U3RyZWFtLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTcwLDYgKzcwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcHJpbnRJbnRlcm5hbCgqdGhp
cywgdmFsdWUpOwogICAgICAgICBwcmludChyZW1haW5pbmdWYWx1ZXMuLi4pOwogICAgIH0KKyAg
ICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUeXBlcz4KKyAgICB2b2lkIHByaW50bG4oY29u
c3QgVHlwZXMmLi4uIHZhbHVlcykKKyAgICB7CisgICAgICAgIHByaW50KHZhbHVlcy4uLik7Cisg
ICAgICAgIHByaW50KCJcbiIpOworICAgIH0KIH07CiAKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mLCBjb25zdCBjaGFyKik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280733</attachid>
            <date>2016-06-07 12:47:47 -0700</date>
            <delta_ts>2016-06-07 13:54:49 -0700</delta_ts>
            <desc>almost done</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>264480</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYWxsLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvYWxsLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0
cy9KU0Fpci9hbGwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorInVzZSBzdHJp
Y3QiOworCitsb2FkKCJzeW1ib2xzLmpzIik7Citsb2FkKCJ0bXBfYmFzZS5qcyIpOworbG9hZCgi
YXJnLmpzIik7Citsb2FkKCJiYXNpY19ibG9jay5qcyIpOworbG9hZCgiY29kZS5qcyIpOworbG9h
ZCgiZnJlcXVlbnRlZF9ibG9jay5qcyIpOworbG9hZCgiaW5zdC5qcyIpOworbG9hZCgib3Bjb2Rl
LmpzIik7Citsb2FkKCJyZWcuanMiKTsKK2xvYWQoInN0YWNrX3Nsb3QuanMiKTsKK2xvYWQoInRt
cC5qcyIpOworbG9hZCgidXRpbC5qcyIpOworbG9hZCgiY3VzdG9tLmpzIik7Citsb2FkKCJsaXZl
bmVzcy5qcyIpOworbG9hZCgiaW5zZXJ0aW9uX3NldC5qcyIpOworbG9hZCgiYWxsb2NhdGVfc3Rh
Y2suanMiKTsKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYWxsb2NhdGVfc3RhY2suanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9hbGxvY2F0ZV9zdGFjay5qcwko
cmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYWxsb2NhdGVfc3RhY2suanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNTMgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworZnVuY3Rpb24gYWxsb2NhdGVT
dGFjayhjb2RlKQoreworICAgIGlmIChjb2RlLmZyYW1lU2l6ZSkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJGcmFtZSBzaXplIGFscmVhZHkgZGV0ZXJtaW5lZCIpOworICAgIAorICAgIGZ1bmN0
aW9uIGF0dGVtcHRBc3NpZ25tZW50KHNsb3QsIG9mZnNldEZyb21GUCwgb3RoZXJTbG90cykKKyAg
ICB7CisgICAgICAgIGlmIChvZmZzZXRGcm9tRlAgPiAwKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJFeHBlY3QgbmVnYXRpdmUgb2Zmc2V0Iik7CisgICAgICAgIAorICAgICAgICBvZmZz
ZXRGcm9tRlAgPSAtcm91bmRVcFRvTXVsdGlwbGVPZihzbG90LmFsaWdubWVudCwgLW9mZnNldEZy
b21GUCk7CisgICAgICAgIAorICAgICAgICBmb3IgKGxldCBvdGhlclNsb3Qgb2Ygb3RoZXJTbG90
cykgeworICAgICAgICAgICAgaWYgKCFvdGhlclNsb3Qub2Zmc2V0RnJvbUZQKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgbGV0IG92ZXJsYXAgPSByYW5nZXNPdmVybGFw
KAorICAgICAgICAgICAgICAgIG9mZnNldEZyb21GUCwKKyAgICAgICAgICAgICAgICBvZmZzZXRG
cm9tRlAgKyBzbG90LmJ5dGVTaXplLAorICAgICAgICAgICAgICAgIG90aGVyU2xvdC5vZmZzZXRG
cm9tRlAsCisgICAgICAgICAgICAgICAgb3RoZXJTbG90Lm9mZnNldEZyb21GUCArIG90aGVyU2xv
dC5ieXRlU2l6ZSk7CisgICAgICAgICAgICBpZiAob3ZlcmxhcCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNsb3Quc2V0T2Zmc2V0
RnJvbUZQKG9mZnNldEZyb21GUCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAK
KyAgICBmdW5jdGlvbiBhc3NpZ24oc2xvdCwgb3RoZXJTbG90cykKKyAgICB7CisgICAgICAgIGlm
IChhdHRlbXB0QXNzaWdubWVudChzbG90LCAtc2xvdC5ieXRlU2l6ZSwgb3RoZXJTbG90cykpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBmb3IgKGxldCBvdGhlclNsb3Qg
b2Ygb3RoZXJTbG90cykgeworICAgICAgICAgICAgaWYgKCFvdGhlclNsb3Qub2Zmc2V0RnJvbUZQ
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKGF0dGVtcHRBc3Np
Z25tZW50KHNsb3QsIG90aGVyU2xvdC5vZmZzZXRGcm9tRlAgLSBzbG90LmJ5dGVTaXplLCBvdGhl
clNsb3RzKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQXNzaWdubWVudCBmYWlsZWQiKTsKKyAgICB9CisgICAg
CisgICAgLy8gQWxsb2NhdGUgYWxsIG9mIHRoZSBlc2NhcGVkIHNsb3RzIGluIG9yZGVyLiBUaGlz
IGlzIGtpbmQgb2YgYSBjcmF6eSBhbGdvcml0aG0gdG8gYWxsb3cgZm9yCisgICAgLy8gdGhlIHBv
c3NpYmlsaXR5IG9mIHN0YWNrIHNsb3RzIGJlaW5nIGFzc2lnbmVkIGZyYW1lIG9mZnNldHMgYmVm
b3JlIHdlIGV2ZW4gZ2V0IGhlcmUuCisgICAgbGV0IGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHMg
PSBbXTsKKyAgICBsZXQgZXNjYXBlZFN0YWNrU2xvdHNXb3JrbGlzdCA9IFtdOworICAgIGZvciAo
bGV0IHNsb3Qgb2YgY29kZS5zdGFja1Nsb3RzKSB7CisgICAgICAgIGlmIChzbG90LmlzTG9ja2Vk
KSB7CisgICAgICAgICAgICBpZiAoc2xvdC5vZmZzZXRGcm9tRlApCisgICAgICAgICAgICAgICAg
YXNzaWduZWRFc2NhcGVkU3RhY2tTbG90cy5wdXNoKHNsb3QpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGVzY2FwZWRTdGFja1Nsb3RzV29ya2xpc3QucHVzaChzbG90KTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzbG90Lm9mZnNldEZyb21GUCkKKyAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk9mZnNldCBhbHJlYWR5IGFzc2lnbmVkIik7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLy8gVGhpcyBpcyBhIGZhaXJseSBlc3BlbnNpdmUg
bG9vcCwgYnV0IGl0J3MgT0sgYmVjYXVzZSB3ZSdsbCB1c3VhbGx5IG9ubHkgaGF2ZSBhIGhhbmRm
dWwgb2YKKyAgICAvLyBlc2NhcGVkIHN0YWNrIHNsb3RzLgorICAgIHdoaWxlIChlc2NhcGVkU3Rh
Y2tTbG90c1dvcmtsaXN0Lmxlbmd0aCkgeworICAgICAgICBsZXQgc2xvdCA9IGVzY2FwZWRTdGFj
a1Nsb3RzV29ya2xpc3QucG9wKCk7CisgICAgICAgIGFzc2lnbihzbG90LCBhc3NpZ25lZEVzY2Fw
ZWRTdGFja1Nsb3RzKTsKKyAgICAgICAgYXNzaWduZWRFc2NhcGVkU3RhY2tTbG90cy5wdXNoKHNs
b3QpOworICAgIH0KKyAgICAKKyAgICAvLyBOb3cgd2UgaGFuZGxlIHRoZSBzcGlsbCBzbG90cy4K
KyAgICBsZXQgbGl2ZW5lc3MgPSBuZXcgTGl2ZW5lc3MoU3RhY2tTbG90LCBjb2RlKTsKKyAgICBs
ZXQgaW50ZXJmZXJlbmNlID0gbmV3IE1hcCgpOworICAgIGZvciAobGV0IHNsb3Qgb2YgY29kZS5z
dGFja1Nsb3RzKQorICAgICAgICBpbnRlcmZlcmVuY2Uuc2V0KHNsb3QsIG5ldyBTZXQoKSk7Cisg
ICAgbGV0IHNsb3RzID0gW107CisgICAgCisgICAgZm9yIChsZXQgYmxvY2sgb2YgY29kZSkgewor
ICAgICAgICBsZXQgbG9jYWxDYWxjID0gbGl2ZW5lc3MubG9jYWxDYWxjKGJsb2NrKTsKKyAgICAg
ICAgCisgICAgICAgIGZ1bmN0aW9uIGludGVyZmVyZShpbnN0SW5kZXgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIEluc3QuZm9yRWFjaERlZigKKyAgICAgICAgICAgICAgICBTdGFja1Nsb3QsIGJs
b2NrLmdldChpbnN0SW5kZXgpLCBibG9jay5nZXQoaW5zdEluZGV4ICsgMSksCisgICAgICAgICAg
ICAgICAgKHNsb3QsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghc2xvdC5pc1NwaWxsKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgb3RoZXJTbG90
IG9mIGxvY2FsQ2FsYy5saXZlU2V0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZl
cmVuY2UuZ2V0KHNsb3QpLmFkZChvdGhlclNsb3QpOworICAgICAgICAgICAgICAgICAgICAgICAg
aW50ZXJmZXJlbmNlLmdldChvdGhlclNsb3QpLmFkZChzbG90KTsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBm
b3IgKGxldCBpbnN0SW5kZXggPSBibG9jay5zaXplOyBpbnN0SW5kZXgtLTspIHsKKyAgICAgICAg
ICAgIC8vIEtpbGwgZGVhZCBzdG9yZXMuIEZvciBzaW1wbGljaXR5IHdlIHNheSB0aGF0IGEgc3Rv
cmUgaXMga2lsbGFibGUgaWYgaXQgaGFzIG9ubHkgbGF0ZQorICAgICAgICAgICAgLy8gZGVmcyBh
bmQgdGhvc2UgbGF0ZSBkZWZzIGFyZSB0byB0aGluZ3MgdGhhdCBhcmUgZGVhZCByaWdodCBub3cu
IFdlIG9ubHkgZG8gdGhhdAorICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGF0J3MgdGhlIG9ubHkg
a2luZCBvZiBkZWFkIHN0YWNrIHN0b3JlIHdlIHdpbGwgc2VlIGhlcmUuCisgICAgICAgICAgICBs
ZXQgaW5zdCA9IGJsb2NrLmF0KGluc3RJbmRleCk7CisgICAgICAgICAgICBpZiAoIWluc3QuaGFz
Tm9uQXJnRWZmZWN0cykgeworICAgICAgICAgICAgICAgIGxldCBvayA9IHRydWU7CisgICAgICAg
ICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKChhcmcsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNFYXJseURlZihyb2xlKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIUFyZy5p
c0xhdGVEZWYocm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgICAgIGlmICghYXJnLmlzU3RhY2spIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG9rID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGxl
dCBzbG90ID0gYXJnLnN0YWNrU2xvdDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzbG90Lmlz
U3BpbGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbENhbGMubGl2ZVNldC5oYXMo
c2xvdCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBpZiAob2spCisgICAgICAgICAgICAgICAgICAgIGlu
c3QuY2xlYXIoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50
ZXJmZXJlKGluc3RJbmRleCk7CisgICAgICAgICAgICBsb2NhbENhbGMuZXhlY3V0ZShpbnN0SW5k
ZXgpOworICAgICAgICB9CisgICAgICAgIGludGVyZmVyZSgtMSk7CisgICAgICAgIAorICAgICAg
ICByZW1vdmVBbGxNYXRjaGluZyhibG9jay5pbnN0cywgaW5zdCA9PiBpbnN0Lm9wY29kZSA9PSBO
b3ApOworICAgIH0KKyAgICAKKyAgICAvLyBOb3cgd2UgYXNzaWduIHN0YWNrIGxvY2F0aW9ucy4g
QXQgaXRzIGhlYXJ0IHRoaXMgYWxnb3JpdGhtIGlzIGp1c3QgZmlyc3QtZml0LiBGb3IgZWFjaAor
ICAgIC8vIFN0YWNrU2xvdCB3ZSBqdXN0IHdhbnQgdG8gZmluZCB0aGUgb2Zmc2V0RnJvbUZQIHRo
YXQgaXMgY2xvc2VzdCB0byB6ZXJvIHdoaWxlIGVuc3VyaW5nIG5vCisgICAgLy8gb3ZlcmxhcCB3
aXRoIG90aGVyIFN0YWNrU2xvdHMgdGhhdCB0aGlzIG92ZXJsYXBzIHdpdGguCisgICAgZm9yIChs
ZXQgc2xvdCBvZiBjb2RlLnN0YWNrU2xvdHMpIHsKKyAgICAgICAgaWYgKHNsb3Qub2Zmc2V0RnJv
bUZQKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIAorICAgICAgICBhc3NpZ24oc2xv
dCwgYXNzaWduZWRFc2NhcGVkU3RhY2tTbG90cy5jb25jYXQoaW50ZXJmZXJlbmNlLmdldChzbG90
KSkpOworICAgIH0KKyAgICAKKyAgICAvLyBGaWd1cmUgb3V0IGhvdyBtdWNoIHN0YWNrIHdlJ3Jl
IHVzaW5nIGZvciBzdGFjayBzbG90cy4KKyAgICBsZXQgZnJhbWVTaXplRm9yU3RhY2tTbG90cyA9
IDA7CisgICAgZm9yIChsZXQgc2xvdCBvZiBjb2RlLnN0YWNrU2xvdHMpIHsKKyAgICAgICAgZnJh
bWVTaXplRm9yU3RhY2tTbG90cyA9IE1hdGgubWF4KAorICAgICAgICAgICAgZnJhbWVTaXplRm9y
U3RhY2tTbG90cywKKyAgICAgICAgICAgIC1zbG90Lm9mZnNldEZyb21GUCk7CisgICAgfQorICAg
IAorICAgIGZyYW1lU2l6ZUZvclN0YWNrU2xvdHMgPSByb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNr
QWxpZ25tZW50Qnl0ZXMsIGZyYW1lU2l6ZUZvclN0YWNrU2xvdHMpOworCisgICAgLy8gTm8gd2Ug
bmVlZCB0byBkZWR1Y2UgaG93IG11Y2ggYXJndW1lbnQgYXJlYSB3ZSBuZWVkLgorICAgIGZvciAo
bGV0IGJsb2NrIG9mIGNvZGUpIHsKKyAgICAgICAgZm9yIChsZXQgaW5zdCBvZiBibG9jaykgewor
ICAgICAgICAgICAgZm9yIChsZXQgYXJnIG9mIGluc3QuYXJncykgeworICAgICAgICAgICAgICAg
IGlmIChhcmcuaXNDYWxsQXJnKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEZvciBub3csIHdl
IGFzc3VtZSB0aGF0IHdlIHVzZSA4IGJ5dGVzIG9mIHRoZSBjYWxsIGFyZy4gQnV0IHRoYXQncyBu
b3QKKyAgICAgICAgICAgICAgICAgICAgLy8gc3VjaCBhbiBhd2Vzb21lIGFzc3VtcHRpb24uCisg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUwNDU0CisgICAgICAgICAgICAgICAgICAgIGlmIChhcmcub2Zmc2V0IDwg
MCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRGlkIG5vdCBleHBl
Y3QgbmVnYXRpdmUgb2Zmc2V0IGZvciBjYWxsQXJnIik7CisgICAgICAgICAgICAgICAgICAgIGNv
ZGUucmVxdWVzdENhbGxBcmdBcmVhU2l6ZShhcmcub2Zmc2V0ICsgOCk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGNvZGUuc2V0
RnJhbWVTaXplKGZyYW1lU2l6ZUZvclN0YWNrU2xvdHMgKyBjb2RlLmNhbGxBcmdBcmVhU2l6ZSk7
CisgICAgCisgICAgLy8gRmluYWxseSB0cmFuc2Zvcm0gdGhlIGNvZGUgdG8gdXNlIEFkZHJzIGlu
c3RlYWQgb2YgU3RhY2tTbG90cy4gVGhpcyBpcyBhIGxvc3NsZXNzCisgICAgLy8gdHJhbnNmb3Jt
YXRpb24gc2luY2Ugd2UgY2FuIHNlYXJjaCB0aGUgU3RhY2tTbG90cyBhcnJheSB0byBmaWd1cmUg
b3V0IHdoaWNoIFN0YWNrU2xvdCBhbnkKKyAgICAvLyBvZmZzZXQtZnJvbS1GUCByZWZlcnMgdG8u
CisKKyAgICAvLyBGSVhNRTogVGhpcyBtYXkgcHJvZHVjZSBhZGRyZXNzZXMgdGhhdCBhcmVuJ3Qg
dmFsaWQgaWYgd2UgZW5kIHVwIHdpdGggYSBnaW5vcm1vdXMgc3RhY2sgZnJhbWUuCisgICAgLy8g
V2Ugd291bGQgaGF2ZSB0byBzY2F2ZW5nZSBmb3IgdGVtcG9yYXJpZXMgaWYgdGhpcyBoYXBwZW5l
ZC4gRm9ydHVuYXRlbHksIHRoaXMgY2FzZSB3aWxsIGJlCisgICAgLy8gZXh0cmVtZWx5IHJhcmUg
c28gd2UgY2FuIGRvIGNyYXp5IHRoaW5ncyB3aGVuIGl0IGFyaXNlcy4KKyAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyNTMwCisgICAgCisgICAgbGV0IGlu
c2VydGlvblNldCA9IG5ldyBJbnNlcnRpb25TZXQoKTsKKyAgICBmb3IgKGxldCBibG9jayBvZiBj
b2RlKSB7CisgICAgICAgIGZvciAobGV0IGluc3RJbmRleCA9IDA7IGluc3RJbmRleCA8IGJsb2Nr
LnNpemU7ICsraW5zdEluZGV4KSB7CisgICAgICAgICAgICBsZXQgaW5zdCA9IGJsb2NrLmF0KGlu
c3RJbmRleCk7CisgICAgICAgICAgICBpbnN0LmZvckVhY2hBcmcoKGFyZywgcm9sZSwgdHlwZSwg
d2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBzdGFja0FkZHIob2Zmc2V0KQor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFyZy5jcmVhdGVT
dGFja0FkZHIob2Zmc2V0LCBjb2RlLmZyYW1lU2l6ZSwgd2lkdGgpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGFyZy5raW5kKSB7
CisgICAgICAgICAgICAgICAgY2FzZSBBcmcuU3RhY2s6IHsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IHNsb3QgPSBhcmcuc3RhY2tTbG90OworICAgICAgICAgICAgICAgICAgICBpZiAoQXJnLmlz
WkRlZihyb2xlKQorICAgICAgICAgICAgICAgICAgICAgICAgJiYgc2xvdC5pc1NwaWxsCisgICAg
ICAgICAgICAgICAgICAgICAgICAmJiBzbG90LmJ5dGVTaXplID4gQXJnLmJ5dGVzKHdpZHRoKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgaGFuZGxlIHRo
aXMgc2ltcGxlIGNhc2UgYmVjYXVzZSBpdCdzIHRoZSBvbmx5IG9uZQorICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gdGhhdCBhcmlzZXM6IFpEZWYncyBhcmUgb25seSAzMi1iaXQgcmlnaHQgbm93
LiBTbywgd2hlbiB3ZSBoaXQgdGhlc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFzc2Vy
dGlvbnMgaXQgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIGltcGxlbWVudCB0aG9zZSBvdGhlciBraW5k
cyBvZgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gemVybyBmaWxscy4KKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChzbG90LmJ5dGVTaXplICE9IDgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJCYWQgc3BpbGwgc2xvdCBzaXplIGZvciBaRGVmOiAiICsgc2xvdC5ieXRlU2l6ZSArICIs
IHdpZHRoIGlzICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgp
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHdpZHRoICE9IDMyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIHdpZHRoIGZvciBaRGVmIik7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnQoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5zdEluZGV4ICsgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
ZXcgSW5zdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RvcmVaZXJvMzIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGFja0FkZHIoYXJnLm9mZnNldCArIDQg
KyBzbG90Lm9mZnNldEZyb21GUCldKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHN0YWNrQWRkcihhcmcub2Zmc2V0ICsgc2xvdC5vZmZzZXRGcm9t
RlApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIEFyZy5DYWxsQXJn
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhY2tBZGRyKGFyZy5vZmZzZXQgLSBjb2Rl
LmZyYW1lU2l6ZSk7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICAgICAgaW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2suaW5zdHMpOworICAgIH0KK30KSW5k
ZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYXJnLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvYXJnLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9K
U0Fpci9hcmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5MjYgQEAKKyJ1c2Ugc3RyaWN0
IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3Mg
QXJnIHsKKyAgICBjb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICB0aGlzLl9raW5kID0gQXJn
LkludmFsaWQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0FueVVzZShyb2xlKQorICAgIHsK
KyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAg
Y2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNl
IEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFy
Zy5MYXRlQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6
CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBpc0NvbGRVc2Uocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgewor
ICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAg
IGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2Fz
ZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5a
RGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNo
OgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNXYXJtVXNlKHJvbGUpCisg
ICAgeworICAgICAgICByZXR1cm4gQXJnLmlzQW55VXNlKHJvbGUpICYmICFBcmcuaXNDb2xkVXNl
KHJvbGUpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY29vbGVkKHJvbGUpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKHJvbGUpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToK
KyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoK
KyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAg
ICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNl
IEFyZy5TY3JhdGNoOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgICAgIHJl
dHVybiByb2xlOworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgICAgICByZXR1cm4gQXJn
LkNvbGRVc2U7CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgICAgICByZXR1cm4g
QXJnLkxhdGVDb2xkVXNlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RhdGljIGlzRWFy
bHlVc2Uocm9sZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNl
IEFyZy5Vc2U6CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVz
ZURlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAg
IGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNh
c2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICBj
YXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNMYXRlVXNlKHJvbGUpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2Fz
ZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBB
cmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpE
ZWY6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAg
ICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGlj
IGlzQW55RGVmKHJvbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAg
Y2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFy
Zy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5M
YXRlQ29sZFVzZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcu
RGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6Cisg
ICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAg
ICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAg
ICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzRWFybHlEZWYocm9sZSkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAgICAgIGNh
c2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2Ug
QXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNl
RGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgor
ICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBz
dGF0aWMgaXNMYXRlRGVmKHJvbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAg
ICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBj
YXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNl
IEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBB
cmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2Ug
QXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVm
OgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7
CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzWkRlZihyb2xlKQorICAgIHsK
KyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAg
Y2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2Fz
ZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5V
c2VEZWY6CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICBjYXNlIEFyZy5TY3Jh
dGNoOgorICAgICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAg
IHN0YXRpYyB0eXBlRm9yQjNUeXBlKHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUp
IHsKKyAgICAgICAgY2FzZSBJbnQzMjoKKyAgICAgICAgY2FzZSBJbnQ2NDoKKyAgICAgICAgICAg
IHJldHVybiBHUDsKKyAgICAgICAgY2FzZSBGbG9hdDoKKyAgICAgICAgY2FzZSBEb3VibGU6Cisg
ICAgICAgICAgICByZXR1cm4gRlA7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkJhZCBCMyB0eXBlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAg
c3RhdGljIHdpZHRoRm9yQjNUeXBlKHR5cGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHR5cGUp
IHsKKyAgICAgICAgY2FzZSBJbnQzMjoKKyAgICAgICAgY2FzZSBGbG9hdDoKKyAgICAgICAgICAg
IHJldHVybiAzMjsKKyAgICAgICAgY2FzZSBJbnQ2NDoKKyAgICAgICAgY2FzZSBEb3VibGU6Cisg
ICAgICAgICAgICByZXR1cm4gNjQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkJhZCBCMyB0eXBlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAg
c3RhdGljIGNvbnNlcnZhdGl2ZVdpZHRoKHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gdHlw
ZSA9PSBHUCA/IFB0ciA6IDY0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgbWluaW11bVdpZHRo
KHR5cGUpCisgICAgeworICAgICAgICByZXR1cm4gdHlwZSA9PSBHUCA/IDggOiAzMjsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIGJ5dGVzKHdpZHRoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHdp
ZHRoIC8gODsKKyAgICB9CisgICAgCisgICAgc3RhdGljIHdpZHRoRm9yQnl0ZXMoYnl0ZXMpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKGJ5dGVzKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIDg7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgIHJldHVybiAxNjsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICBjYXNlIDQ6CisgICAgICAg
ICAgICByZXR1cm4gMzI7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoYnl0ZXMg
PiA4KQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG51bWJlciBvZiBieXRl
cyIpOworICAgICAgICAgICAgcmV0dXJuIDY0OworICAgICAgICB9CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBjcmVhdGVUbXAodG1wKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBB
cmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLlRtcDsKKyAgICAgICAgcmVzdWx0Ll90
bXAgPSB0bXA7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBmcm9tUmVnKHJlZykKKyAgICB7CisgICAgICAgIHJldHVybiBBcmcuY3JlYXRlVG1wKHJlZyk7
CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVJbW0odmFsdWUpCisgICAgeworICAgICAg
ICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuSW1t
OworICAgICAgICByZXN1bHQuX3ZhbHVlID0gdmFsdWU7CisgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVCaWdJbW0odmFsdWUpCisgICAgeworICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcu
QmlnSW1tOworICAgICAgICByZXN1bHQuX3ZhbHVlID0gdmFsdWU7CisgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVCaXRJbW0odmFsdWUpCisgICAg
eworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQg
PSBBcmcuQml0SW1tOworICAgICAgICByZXN1bHQuX3ZhbHVlID0gdmFsdWU7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVCaXRJbW02NCh2YWx1
ZSkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3Vs
dC5fa2luZCA9IEFyZy5CaXRJbW02NDsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQWRk
cihiYXNlLCBvZmZzZXQpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpCisgICAg
ICAgICAgICBvZmZzZXQgPSAwOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAg
ICAgICByZXN1bHQuX2tpbmQgPSBBcmcuQWRkcjsKKyAgICAgICAgcmVzdWx0Ll9iYXNlID0gYmFz
ZTsKKyAgICAgICAgcmVzdWx0Ll9vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVTdGFjayhzbG90LCBvZmZzZXQpCisg
ICAgeworICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpCisgICAgICAgICAgICBvZmZzZXQgPSAw
OworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQg
PSBBcmcuU3RhY2s7CisgICAgICAgIHJlc3VsdC5fc2xvdCA9IHNsb3Q7CisgICAgICAgIHJlc3Vs
dC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgY3JlYXRlQ2FsbEFyZyhvZmZzZXQpCisgICAgeworICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuQ2FsbEFyZzsKKyAg
ICAgICAgcmVzdWx0Ll9vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVTdGFja0FkZHIob2Zmc2V0RnJvbUZQLCBmcmFt
ZVNpemUsIHdpZHRoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IEFyZy5jcmVhdGVBZGRy
KFJlZy5jYWxsRnJhbWVSZWdpc3Rlciwgb2Zmc2V0RnJvbUZQKTsKKyAgICAgICAgaWYgKCFyZXN1
bHQuaXNWYWxpZEZvcm0od2lkdGgpKQorICAgICAgICAgICAgcmVzdWx0ID0gQXJnLmNyZWF0ZUFk
ZHIoUmVnLnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBvZmZzZXRGcm9tRlAgKyBmcmFtZVNpemUpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNWYWxpZFNj
YWxlKHNjYWxlLCB3aWR0aCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoc2NhbGUpIHsKKyAgICAg
ICAgY2FzZSAxOgorICAgICAgICBjYXNlIDI6CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgY2Fz
ZSA4OgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGxv
Z1NjYWxlKHNjYWxlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChzY2FsZSkgeworICAgICAgICBj
YXNlIDE6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJldHVybiAyOworICAg
ICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHNjYWxlIik7CisgICAgICAgIH0KKyAgICB9
CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUluZGV4KGJhc2UsIGluZGV4LCBzY2FsZSwgb2Zmc2V0
KQorICAgIHsKKyAgICAgICAgaWYgKHNjYWxlID09IG51bGwpCisgICAgICAgICAgICBzY2FsZSA9
IDE7CisgICAgICAgIGlmIChvZmZzZXQgPT0gbnVsbCkKKyAgICAgICAgICAgIG9mZnNldCA9IDA7
CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9
IEFyZy5JbmRleDsKKyAgICAgICAgcmVzdWx0Ll9iYXNlID0gYmFzZTsKKyAgICAgICAgcmVzdWx0
Ll9pbmRleCA9IGluZGV4OworICAgICAgICByZXN1bHQuX3NjYWxlID0gc2NhbGU7CisgICAgICAg
IHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0K
KyAgICAKKyAgICBzdGF0aWMgY3JlYXRlUmVsQ29uZChjb25kaXRpb24pCisgICAgeworICAgICAg
ICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcuUmVs
Q29uZDsKKyAgICAgICAgcmVzdWx0Ll9jb25kaXRpb24gPSBjb25kaXRpb247CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVSZXNDb25kKGNvbmRp
dGlvbikKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJl
c3VsdC5fa2luZCA9IEFyZy5SZXNDb25kOworICAgICAgICByZXN1bHQuX2NvbmRpdGlvbiA9IGNv
bmRpdGlvbjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGlj
IGNyZWF0ZURvdWJsZUNvbmQoY29uZGl0aW9uKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9
IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkRvdWJsZUNvbmQ7CisgICAg
ICAgIHJlc3VsdC5fY29uZGl0aW9uID0gY29uZGl0aW9uOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlV2lkdGgod2lkdGgpCisgICAgeworICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tpbmQgPSBBcmcu
V2lkdGg7CisgICAgICAgIHJlc3VsdC5fd2lkdGggPSB3aWR0aDsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CisgICAgCisgICAgZ2V0IGtpbmQoKSB7IHJldHVybiB0aGlzLl9raW5kOyB9
CisgICAgZ2V0IGlzVG1wKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuVG1wOyB9CisgICAg
Z2V0IGlzSW1tKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuSW1tOyB9CisgICAgZ2V0IGlz
QmlnSW1tKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuQmlnSW1tOyB9CisgICAgZ2V0IGlz
Qml0SW1tKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuQml0SW1tOyB9CisgICAgZ2V0IGlz
Qml0SW1tNjQoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5CaXRJbW02NDsgfQorICAgIGdl
dCBpc1NvbWVJbW0oKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAg
ICAgIGNhc2UgQXJnLkltbToKKyAgICAgICAgY2FzZSBBcmcuQmlnSW1tOgorICAgICAgICBjYXNl
IEFyZy5CaXRJbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbTY0OgorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgZ2V0IGlzQWRkcigpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0g
QXJnLkFkZHI7IH0KKyAgICBnZXQgaXNTdGFjaygpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJn
LlN0YWNrOyB9CisgICAgZ2V0IGlzQ2FsbEFyZygpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJn
LkNhbGxBcmc7IH0KKyAgICBnZXQgaXNJbmRleCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJn
LkluZGV4OyB9CisgICAgZ2V0IGlzTWVtb3J5KCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhp
cy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICBjYXNlIEFyZy5TdGFj
azoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6Cisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBnZXQgaXNTdGFja01lbW9yeSgpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuQWRk
cjoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9iYXNlID09IFJlZy5jYWxsRnJhbWVSZWdpc3Rl
cgorICAgICAgICAgICAgICAgIHx8IHRoaXMuX2Jhc2UgPT0gUmVnLnN0YWNrUG9pbnRlclJlZ2lz
dGVyOworICAgICAgICBjYXNlIEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIGdldCBpc1JlbENvbmQoKSB7IHJl
dHVybiB0aGlzLl9raW5kID09IEFyZy5SZWxDb25kOyB9CisgICAgZ2V0IGlzUmVzQ29uZCgpIHsg
cmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlJlc0NvbmQ7IH0KKyAgICBnZXQgaXNEb3VibGVDb25k
KCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuRG91YmxlQ29uZDsgfQorICAgIGdldCBpc0Nv
bmRpdGlvbigpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAg
Y2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoKKyAgICAgICAgY2Fz
ZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIGdl
dCBpc1dpZHRoKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuV2lkdGg7IH0KKyAgICBnZXQg
aXNBbGl2ZSgpIHsgcmV0dXJuIHRoaXMuaXNUbXAgfHwgdGhpcy5pc1N0YWNrOyB9CisgICAgCisg
ICAgZ2V0IHRtcCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBBcmcuVG1wKQor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnRtcCBmb3Igbm9uLXRtcCIpOwor
ICAgICAgICByZXR1cm4gdGhpcy5fdG1wOworICAgIH0KKyAgICAKKyAgICBnZXQgdmFsdWUoKQor
ICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzU29tZUltbSkKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiQ2FsbGVkIC52YWx1ZSBmb3Igbm9uLWltbSIpOworICAgICAgICByZXR1cm4gdGhp
cy5fdmFsdWU7CisgICAgfQorICAgIAorICAgIGdldCBiYXNlKCkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICBjYXNl
IEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9iYXNlOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLmJhc2UgZm9yIG5vbi1h
ZGRyZXNzIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0IGhhc09mZnNldCgpIHsg
cmV0dXJuIHRoaXMuaXNNZW1vcnk7IH0KKyAgICAKKyAgICBnZXQgb2Zmc2V0KCkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAg
ICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6CisgICAgICAgIGNh
c2UgQXJnLkNhbGxBcmc6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fb2Zmc2V0OworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLm9mZnNldCBm
b3Igbm9uLWFkZHJlc3MiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgc3RhY2tT
bG90KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5kICE9IEFyZy5TdGFjaykKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5zdGFja1Nsb3QgZm9yIG5vbi1hZGRyZXNz
Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9zbG90OworICAgIH0KKyAgICAKKyAgICBnZXQgaW5k
ZXgoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLkluZGV4KQorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLmluZGV4IGZvciBub24tSW5kZXgiKTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2luZGV4OworICAgIH0KKyAgICAKKyAgICBnZXQgc2NhbGUoKQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLkluZGV4KQorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnNjYWxlIGZvciBub24tSW5kZXgiKTsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3NjYWxlOworICAgIH0KKyAgICAKKyAgICBnZXQgbG9nU2NhbGUoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIEFyZy5sb2dTY2FsZSh0aGlzLnNjYWxlKTsKKyAgICB9CisgICAg
CisgICAgZ2V0IHdpZHRoKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5kICE9IEFyZy5X
aWR0aCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC53aWR0aCBmb3Igbm9u
LVdpZHRoIik7CisgICAgICAgIHJldHVybiB0aGlzLl93aWR0aDsKKyAgICB9CisgICAgCisgICAg
Z2V0IGlzR1BUbXAoKSB7IHJldHVybiB0aGlzLmlzVG1wICYmIHRoaXMudG1wLmlzR1A7IH0KKyAg
ICBnZXQgaXNGUFRtcCgpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYgdGhpcy50bXAuaXNGUDsgfQor
ICAgIAorICAgIGdldCBpc0dQKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkg
eworICAgICAgICBjYXNlIEFyZy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpZ0ltbToKKyAgICAg
ICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAg
Y2FzZSBBcmcuQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6CisgICAgICAgIGNhc2UgQXJn
LlN0YWNrOgorICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICBjYXNlIEFyZy5SZWxD
b25kOgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFyZy5Eb3VibGVD
b25kOgorICAgICAgICBjYXNlIEFyZy5XaWR0aDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBjYXNlIEFyZy5UbXA6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5pc0dQVG1wOwor
ICAgICAgICBjYXNlIEFyZy5JbnZhbGlkOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQga2luZCIpOwor
ICAgICAgICB9CisgICAgfQorICAgIAorICAgIGdldCBpc0ZQKCkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbW06CisgICAgICAgIGNhc2Ug
QXJnLkJpdEltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tNjQ6CisgICAgICAgIGNhc2UgQXJn
LlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRv
dWJsZUNvbmQ6CisgICAgICAgIGNhc2UgQXJnLldpZHRoOgorICAgICAgICBjYXNlIEFyZy5JbnZh
bGlkOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFyZy5BZGRyOgor
ICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6CisgICAgICAg
IGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgIGNhc2UgQXJnLkJpZ0ltbToKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5UbXA6CisgICAgICAgICAgICByZXR1cm4g
dGhpcy5pc0ZQVG1wOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJCYWQga2luZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGdldCBoYXNUeXBl
KCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFy
Zy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1t
NjQ6CisgICAgICAgIGNhc2UgQXJnLlRtcDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
fQorICAgIAorICAgIGdldCB0eXBlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmlzR1Ag
PyBHUCA6IEZQOworICAgIH0KKyAgICAKKyAgICBpc1R5cGUodHlwZSkKKyAgICB7CisgICAgICAg
IHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIEFyZy5HUDoKKyAgICAgICAgICAgIHJldHVy
biB0aGlzLmlzR1A7CisgICAgICAgIGNhc2UgQXJnLkZQOgorICAgICAgICAgICAgcmV0dXJuIHRo
aXMuaXNGUDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
QmFkIHR5cGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpc0NvbXBhdGlibGVUeXBl
KG90aGVyKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuaGFzVHlwZSkKKyAgICAgICAgICAgIHJl
dHVybiBvdGhlci5pc1R5cGUodGhpcy50eXBlKTsKKyAgICAgICAgaWYgKG90aGVyLmhhc1R5cGUp
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5pc1R5cGUob3RoZXIudHlwZSk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBnZXQgaXNHUFIoKSB7IHJldHVybiB0aGlzLmlz
VG1wICYmIHRoaXMudG1wLmlzR1BSOyB9CisgICAgZ2V0IGdwcigpIHsgcmV0dXJuIHRoaXMudG1w
LmdwcjsgfQorICAgIGdldCBpc0ZQUigpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYgdGhpcy50bXAu
aXNGUFI7IH0KKyAgICBnZXQgZnByKCkgeyByZXR1cm4gdGhpcy50bXAuZnByOyB9CisgICAgZ2V0
IGlzUmVnKCkgeyByZXR1cm4gdGhpcy5pc1RtcCAmJiB0aGlzLnRtcC5pc1JlZzsgfQorICAgIGdl
dCByZWcoKSB7IHJldHVybiB0aGlzLnRtcC5yZWc7IH0KKyAgICAKKyAgICBzdGF0aWMgaXNWYWxp
ZEltbUZvcm0odmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gaXNSZXByZXNlbnRhYmxlQXNJ
bnQzMih2YWx1ZSk7CisgICAgfQorICAgIHN0YXRpYyBpc1ZhbGlkQml0SW1tRm9ybSh2YWx1ZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBpc1JlcHJlc2VudGFibGVBc0ludDMyKHZhbHVlKTsKKyAg
ICB9CisgICAgc3RhdGljIGlzVmFsaWRCaXRJbW02NEZvcm0odmFsdWUpCisgICAgeworICAgICAg
ICByZXR1cm4gaXNSZXByZXNlbnRhYmxlQXNJbnQzMih2YWx1ZSk7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBpc1ZhbGlkQWRkckZvcm0ob2Zmc2V0LCB3aWR0aCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNWYWxpZEluZGV4Rm9ybShzY2Fs
ZSwgb2Zmc2V0LCB3aWR0aCkKKyAgICB7CisgICAgICAgIGlmICghaXNWYWxpZFNjYWxlKHNjYWxl
LCB3aWR0aCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyAgICAKKyAgICBpc1ZhbGlkRm9ybSh3aWR0aCkKKyAgICB7CisgICAgICAgIHN3
aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbnZhbGlkOgorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjYXNlIEFyZy5UbXA6CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAgICAgICAgcmV0dXJuIEFyZy5p
c1ZhbGlkSW1tRm9ybSh0aGlzLnZhbHVlKTsKKyAgICAgICAgY2FzZSBBcmcuQmlnSW1tOgorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAg
ICAgIHJldHVybiBBcmcuaXNWYWxpZEJpdEltbUZvcm0odGhpcy52YWx1ZSk7CisgICAgICAgIGNh
c2UgQXJnLkJpdEltbTY0OgorICAgICAgICAgICAgcmV0dXJuIEFyZy5pc1ZhbGlkQml0SW1tNjRG
b3JtKHRoaXMudmFsdWUpOworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICBjYXNlIEFy
Zy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgICAgIHJldHVybiBB
cmcuaXNWYWxpZEFkZHJGb3JtKHRoaXMub2Zmc2V0LCB3aWR0aCk7CisgICAgICAgIGNhc2UgQXJn
LkluZGV4OgorICAgICAgICAgICAgcmV0dXJuIEFyZy5pc1ZhbGlkSW5kZXhGb3JtKHRoaXMuc2Nh
bGUsIHRoaXMub2Zmc2V0LCB3aWR0aCk7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAg
ICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAg
ICAgIGNhc2UgQXJnLldpZHRoOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBraW5kIik7CisgICAgICAg
IH0KKyAgICB9CisgICAgCisgICAgZm9yRWFjaFRtcEZhc3QoZnVuYykKKyAgICB7CisgICAgICAg
IHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5UbXA6IHsKKyAgICAgICAg
ICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMo
dGhpcy5fdG1wKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVRtcChyZXBsYWNl
bWVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFyZy5B
ZGRyOiB7CisgICAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVw
bGFjZW1lbnQgPSBmdW5jKHRoaXMuX2Jhc2UpKQorICAgICAgICAgICAgICAgIHJldHVybiBBcmcu
Y3JlYXRlQWRkcihyZXBsYWNlbWVudCwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJnLkluZGV4OiB7CisgICAgICAgICAgICBsZXQg
YmFzZVJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9iYXNlKTsKKyAgICAgICAgICAgIGxldCBpbmRl
eFJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9pbmRleCk7CisgICAgICAgICAgICBpZiAoYmFzZVJl
cGxhY2VtZW50IHx8IGluZGV4UmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
QXJnLmNyZWF0ZUluZGV4KAorICAgICAgICAgICAgICAgICAgICBiYXNlUmVwbGFjZW1lbnQgPyBi
YXNlUmVwbGFjZW1lbnQgOiB0aGlzLl9iYXNlLAorICAgICAgICAgICAgICAgICAgICBpbmRleFJl
cGxhY2VtZW50ID8gaW5kZXhSZXBsYWNlbWVudCA6IHRoaXMuX2luZGV4LAorICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9zY2FsZSwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB1c2VzVG1wKGV4cGVjdGVkVG1wKQor
ICAgIHsKKyAgICAgICAgbGV0IHVzZXNUbXAgPSBmYWxzZTsKKyAgICAgICAgZm9yRWFjaFRtcEZh
c3QodG1wID0+IHsKKyAgICAgICAgICAgIHVzZXNUbXAgfD0gdG1wID09IGV4cGVjdGVkVG1wOwor
ICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHVzZXNUbXA7CisgICAgfQorICAgIAorICAgIGZv
ckVhY2hUbXAocm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmMpCisgICAgeworICAgICAgICBzd2l0Y2gg
KHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuVG1wOiB7CisgICAgICAgICAgICBsZXQg
cmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX3Rt
cCwgcm9sZSwgdHlwZSwgd2lkdGgpKQorICAgICAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRl
VG1wKHJlcGxhY2VtZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGNhc2UgQXJnLkFkZHI6IHsKKyAgICAgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAg
ICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmModGhpcy5fYmFzZSwgQXJnLlVzZSwgR1AsIHJvbGUg
PT0gQXJnLlVzZUFkZHIgPyB3aWR0aCA6IFB0cikpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFy
Zy5jcmVhdGVBZGRyKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZzZXQpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6IHsKKyAgICAgICAgICAgIGxl
dCBiYXNlUmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2Jhc2UsIEFyZy5Vc2UsIEdQLCByb2xlID09
IEFyZy5Vc2VBZGRyID8gd2lkdGggOiBQdHIpOworICAgICAgICAgICAgbGV0IGluZGV4UmVwbGFj
ZW1lbnQgPSBmdW5jKHRoaXMuX2luZGV4LCBBcmcuVXNlLCBHUCwgcm9sZSA9PSBBcmcuVXNlQWRk
ciA/IHdpZHRoIDogUHRyKTsKKyAgICAgICAgICAgIGlmIChiYXNlUmVwbGFjZW1lbnQgfHwgaW5k
ZXhSZXBsYWNlbWVudCkgeworICAgICAgICAgICAgICAgIHJldHVybiBBcmcuY3JlYXRlSW5kZXgo
CisgICAgICAgICAgICAgICAgICAgIGJhc2VSZXBsYWNlbWVudCA/IGJhc2VSZXBsYWNlbWVudCA6
IHRoaXMuX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgIGluZGV4UmVwbGFjZW1lbnQgPyBpbmRl
eFJlcGxhY2VtZW50IDogdGhpcy5faW5kZXgsCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nj
YWxlLCB0aGlzLl9vZmZzZXQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorICAgIAorICAgIGlzKHRoaW5nKSB7IHJldHVybiAhIXRoaW5nLmV4dHJhY3QodGhp
cyk7IH0KKyAgICBhcyh0aGluZykgeyByZXR1cm4gdGhpbmcuZXh0cmFjdCh0aGlzKTsgfQorICAg
IAorICAgIC8vIFRoaXMgbGV0cyB5b3Ugc2F5IHRoaW5ncyBsaWtlOgorICAgIC8vIGFyZy5mb3JF
YWNoKFRtcCB8IFJlZyB8IEFyZyB8IFN0YWNrU2xvdCwgLi4uKQorICAgIC8vCisgICAgLy8gSXQn
cyB1c2VkIGZvciBhYnN0cmFjdCBsaXZlbmVzcyBhbmFseXNpcy4KKyAgICBmb3JFYWNoRmFzdCh0
aGluZywgZnVuYykKKyAgICB7CisgICAgICAgIHJldHVybiB0aGluZy5mb3JFYWNoRmFzdCh0aGlz
LCBmdW5jKTsKKyAgICB9CisgICAgZm9yRWFjaCh0aGluZywgcm9sZSwgdHlwZSwgd2lkdGgsIGZ1
bmMpCisgICAgeworICAgICAgICByZXR1cm4gdGhpbmcuZm9yRWFjaCh0aGlzLCByb2xlLCB0eXBl
LCB3aWR0aCwgZnVuYyk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBleHRyYWN0KGFyZykgeyBy
ZXR1cm4gYXJnOyB9CisgICAgc3RhdGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykgeyByZXR1cm4g
ZnVuYyhhcmcpOyB9CisgICAgc3RhdGljIGZvckVhY2goYXJnLCByb2xlLCB0eXBlLCB3aWR0aCwg
ZnVuYykgeyByZXR1cm4gZnVuYyhhcmcsIHJvbGUsIHR5cGUsIHdpZHRoKTsgfQorCisgICAgZ2V0
IGNvbmRpdGlvbigpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAg
ICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoKKyAgICAgICAg
Y2FzZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb25kaXRpb247
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAu
Y29uZGl0aW9uIGZvciBub24tY29uZGl0aW9uIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisg
ICAgZ2V0IGlzSW52ZXJ0aWJsZSgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQp
IHsKKyAgICAgICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuRG91YmxlQ29s
ZDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgor
ICAgICAgICAgICAgc3dpdGNoICh0aGlzLl9jb25kaXRpb24pIHsKKyAgICAgICAgICAgIGNhc2Ug
WmVybzoKKyAgICAgICAgICAgIGNhc2UgTm9uWmVybzoKKyAgICAgICAgICAgIGNhc2UgU2lnbmVk
OgorICAgICAgICAgICAgY2FzZSBQb3NpdGl2ZU9yWmVybzoKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7Cisg
ICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgeworICAgICAgICBjYXNlIEFyZy5JbnZhbGlkOgor
ICAgICAgICAgICAgcmV0dXJuICI8aW52YWxpZD4iOworICAgICAgICBjYXNlIEFyZy5UbXA6Cisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fdG1wLnRvU3RyaW5nKCk7CisgICAgICAgIGNhc2UgQXJn
LkltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICAgICAgcmV0dXJuICIkIiAr
IHRoaXMuX3ZhbHVlOworICAgICAgICBjYXNlIEFyZy5CaWdJbW06CisgICAgICAgIGNhc2UgQXJn
LkJpdEltbTY0OgorICAgICAgICAgICAgcmV0dXJuICIkMHgiICsgdGhpcy5fdmFsdWUudG9TdHJp
bmcoMTYpOworICAgICAgICBjYXNlIEFyZy5BZGRyOgorICAgICAgICAgICAgcmV0dXJuICIiICsg
KHRoaXMuX29mZnNldCA/IHRoaXMuX29mZnNldCA6ICIiKSArICIoIiArIHRoaXMuX2Jhc2UgKyAi
KSI7CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICAgICAgcmV0dXJuICIiICsgKHRo
aXMuX29mZnNldCA/IHRoaXMuX29mZnNldCA6ICIiKSArICIoIiArIHRoaXMuX2Jhc2UgKworICAg
ICAgICAgICAgICAgICIsIiArIHRoaXMuX2luZGV4ICsgKHRoaXMuX3NjYWxlID09IDEgPyAiIiA6
ICIsIiArIHRoaXMuX3NjYWxlKSArICIpIjsKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6CisgICAg
ICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhpcy5fb2Zmc2V0IDogIiIpICsg
IigiICsgdGhpcy5fc2xvdCArICIpIjsKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAg
ICAgICAgIHJldHVybiAiIiArICh0aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikgKyAi
KGNhbGxBcmcpIjsKKyAgICAgICAgY2FzZSBBcmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcu
UmVzQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuRG91YmxlQ29uZDoKKyAgICAgICAgY2FzZSBBcmcu
V2lkdGg6CisgICAgICAgICAgICByZXR1cm4gc3ltYm9sTmFtZSh0aGlzLl9jb25kaXRpb24pOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQga2luZCIp
OworICAgICAgICB9CisgICAgfQorfQorCisvLyBBcmcga2luZHMKK0FyZy5JbnZhbGlkID0gU3lt
Ym9sKCJJbnZhbGlkIik7CitBcmcuVG1wID0gU3ltYm9sKCJUbXAiKTsKK0FyZy5JbW0gPSBTeW1i
b2woIkltbSIpOworQXJnLkJpZ0ltbSA9IFN5bWJvbCgiQmlnSW1tIik7CitBcmcuQml0SW1tID0g
U3ltYm9sKCJCaXRJbW0iKTsKK0FyZy5CaXRJbW02NCA9IFN5bWJvbCgiQml0SW1tNjQiKTsKK0Fy
Zy5BZGRyID0gU3ltYm9sKCJBZGRyIik7CitBcmcuU3RhY2sgPSBTeW1ib2woIlN0YWNrIik7CitB
cmcuQ2FsbEFyZyA9IFN5bWJvbCgiQ2FsbEFyZyIpOworQXJnLkluZGV4ID0gU3ltYm9sKCJJbmRl
eCIpOworQXJnLlJlbENvbmQgPSBTeW1ib2woIlJlbENvbmQiKTsKK0FyZy5SZXNDb25kID0gU3lt
Ym9sKCJSZXNDb25kIik7CitBcmcuRG91YmxlQ29uZCA9IFN5bWJvbCgiRG91YmxlQ29uZCIpOwor
QXJnLldpZHRoID0gU3ltYm9sKCJXaWR0aCIpOworCisvLyBBcmcgcm9sZXMKK0FyZy5Vc2UgPSBT
eW1ib2woIlVzZSIpOworQXJnLkNvbGRVc2UgPSBTeW1ib2woIkNvbGRVc2UiKTsKK0FyZy5MYXRl
VXNlID0gU3ltYm9sKCJMYXRlVXNlIik7CitBcmcuTGF0ZUNvbGRVc2UgPSBTeW1ib2woIkxhdGVD
b2xkVXNlIik7CitBcmcuRGVmID0gU3ltYm9sKCJEZWYiKTsKK0FyZy5aRGVmID0gU3ltYm9sKCJa
RGVmIik7CitBcmcuVXNlRGVmID0gU3ltYm9sKCJVc2VEZWYiKTsKK0FyZy5Vc2VaRGVmID0gU3lt
Ym9sKCJVc2VaRGVmIik7CitBcmcuRWFybHlEZWYgPSBTeW1ib2woIkVhcmx5RGVmIik7CitBcmcu
U2NyYXRjaCA9IFN5bWJvbCgiU2NyYXRjaCIpOworQXJnLlVzZUFkZHIgPSBTeW1ib2woIlVzZUFk
ZHIiKTsKKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9iYXNpY19ibG9jay5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2Jhc2ljX2Jsb2NrLmpzCShyZXZpc2lv
biAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9iYXNpY19ibG9jay5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEzMyBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBCYXNpY0Jsb2NrIHsKKyAgICBjb25z
dHJ1Y3RvcihpbmRleCwgZnJlcXVlbmN5KQorICAgIHsKKyAgICAgICAgdGhpcy5faW5kZXggPSBp
bmRleDsKKyAgICAgICAgdGhpcy5fZnJlcXVlbmN5ID0gZnJlcXVlbmN5OworICAgICAgICB0aGlz
Ll9pbnN0cyA9IFtdOworICAgICAgICB0aGlzLl9zdWNjZXNzb3JzID0gW107CisgICAgICAgIHRo
aXMuX3ByZWRlY2Vzc29ycyA9IFtdOworICAgIH0KKyAgICAKKyAgICBnZXQgaW5kZXgoKSB7IHJl
dHVybiB0aGlzLl9pbmRleDsgfQorICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5faW5zdHMu
bGVuZ3RoOyB9CisgICAgCisgICAgW1N5bWJvbC5pdGVyYXRvcl0oKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX2luc3RzW1N5bWJvbC5pdGVyYXRvcl0oKTsKKyAgICB9CisgICAgCisgICAg
YXQoaW5kZXgpCisgICAgeworICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy5faW5zdHMubGVuZ3Ro
KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPdXQgb2YgYm91bmRzIGFjY2VzcyIpOwor
ICAgICAgICByZXR1cm4gdGhpcy5faW5zdHNbaW5kZXhdOworICAgIH0KKyAgICAKKyAgICBnZXQo
aW5kZXgpCisgICAgeworICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy5faW5zdHMubGVuZ3RoKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHJldHVybiB0aGlzLl9pbnN0c1tpbmRl
eF07CisgICAgfQorICAgIAorICAgIGdldCBsYXN0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9pbnN0c1t0aGlzLl9pbnN0cy5sZW5ndGggLSAxXTsKKyAgICB9CisgICAgCisgICAgZ2V0
IGluc3RzKCkgeyByZXR1cm4gdGhpcy5faW5zdHM7IH0KKyAgICAKKyAgICBhcHBlbmQoaW5zdCkg
eyB0aGlzLl9pbnN0cy5wdXNoKGluc3QpOyB9CisgICAgCisgICAgZ2V0IG51bVN1Y2Nlc3NvcnMo
KSB7IHJldHVybiB0aGlzLl9zdWNjZXNzb3JzLmxlbmd0aDsgfQorICAgIHN1Y2Nlc3NvcihpbmRl
eCkgeyByZXR1cm4gdGhpcy5fc3VjY2Vzc29yc1tpbmRleF07IH0KKyAgICBnZXQgc3VjY2Vzc29y
cygpIHsgcmV0dXJuIHRoaXMuX3N1Y2Nlc3NvcnM7IH0KKyAgICAKKyAgICBzdWNjZXNzb3JCbG9j
ayhpbmRleCkgeyByZXR1cm4gdGhpcy5fc3VjY2Vzc29yc1tpbmRleF0uYmxvY2s7IH0KKyAgICBn
ZXQgc3VjY2Vzc29yQmxvY2tzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgUHJveHkodGhp
cy5fc3VjY2Vzc29ycywgeworICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbih0YXJnZXQsIHByb3Bl
cnR5KSB7CisgICAgICAgICAgICAgICAgaWYgKChwcm9wZXJ0eSB8IDApID09IHByb3BlcnR5KQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5XS5ibG9jazsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5XTsKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIHNldDogZnVuY3Rpb24odGFyZ2V0LCBwcm9wZXJ0eSwgdmFs
dWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoKHByb3BlcnR5IHwgMCkgPT0gcHJvcGVydHkpIHsK
KyAgICAgICAgICAgICAgICAgICAgdmFyIG9sZFZhbHVlID0gdGFyZ2V0W3Byb3BlcnR5XTsKKyAg
ICAgICAgICAgICAgICAgICAgdGFyZ2V0W3Byb3BlcnR5XSA9IG5ldyBGcmVxdWVudGVkQmxvY2so
CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgb2xkVmFsdWUgPyBvbGRWYWx1ZS5mcmVx
dWVuY3kgOiBOb3JtYWwpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wZXJ0
eV0gPSB2YWx1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorICAgIAorICAg
IGdldCBudW1QcmVkZWNlc3NvcnMoKSB7IHJldHVybiB0aGlzLl9wcmVkZWNlc3NvcnMubGVuZ3Ro
OyB9CisgICAgcHJlZGVjZXNzb3IoaW5kZXgpIHsgcmV0dXJuIHRoaXMuX3ByZWRlY2Vzc29yc1tp
bmRleF07IH0KKyAgICBnZXQgcHJlZGVjZXNzb3JzKCkgeyByZXR1cm4gdGhpcy5fcHJlZGVjZXNz
b3JzOyB9CisgICAgCisgICAgZ2V0IGZyZXF1ZW5jeSgpIHsgcmV0dXJuIHRoaXMuX2ZyZXF1ZW5j
eTsgfQorCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICIjIiArIHRoaXMu
X2luZGV4OworICAgIH0KKyAgICAKKyAgICBnZXQgaGVhZGVyU3RyaW5nKCkKKyAgICB7CisgICAg
ICAgIGxldCByZXN1bHQgPSAiIjsKKyAgICAgICAgcmVzdWx0ICs9ICJCQiIgKyB0aGlzICsgIjog
OyBmcmVxdWVuY3kgPSAiICsgdGhpcy5fZnJlcXVlbmN5ICsgIlxuIjsKKyAgICAgICAgaWYgKHRo
aXMuX3ByZWRlY2Vzc29ycy5sZW5ndGgpCisgICAgICAgICAgICByZXN1bHQgKz0gIiAgUHJlZGVj
ZXNzb3JzOiAiICsgdGhpcy5fcHJlZGVjZXNzb3JzLmpvaW4oIiwgIikgKyAiXG4iOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBnZXQgZm9vdGVyU3RyaW5nKCkKKyAg
ICB7CisgICAgICAgIGxldCByZXN1bHQgPSAiIjsKKyAgICAgICAgaWYgKHRoaXMuX3N1Y2Nlc3Nv
cnMubGVuZ3RoKQorICAgICAgICAgICAgcmVzdWx0ICs9ICIgIFN1Y2Nlc3NvcnM6ICIgKyB0aGlz
Ll9zdWNjZXNzb3JzLmpvaW4oIiwgIikgKyAiXG4iOworICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgIH0KKyAgICAKKyAgICB0b1N0cmluZ0RlZXAoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9ICIiOworICAgICAgICByZXN1bHQgKz0gdGhpcy5oZWFkZXJTdHJpbmc7CisgICAgICAgIGZv
ciAobGV0IGluc3Qgb2YgdGhpcykKKyAgICAgICAgICAgIHJlc3VsdCArPSAiICAgICIgKyBpbnN0
ICsgIlxuIjsKKyAgICAgICAgcmVzdWx0ICs9IHRoaXMuZm9vdGVyU3RyaW5nOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KK30KKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9j
b2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvY29kZS5qcwkocmV2
aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvY29kZS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDk5IEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIENvZGUgeworICAgIGNvbnN0cnVjdG9yKCkK
KyAgICB7CisgICAgICAgIHRoaXMuX2Jsb2NrcyA9IFtdOworICAgICAgICB0aGlzLl9zdGFja1Ns
b3RzID0gW107CisgICAgICAgIHRoaXMuX2dwVG1wcyA9IFtdOworICAgICAgICB0aGlzLl9mcFRt
cHMgPSBbXTsKKyAgICAgICAgdGhpcy5fY2FsbEFyZ0FyZWFTaXplID0gMDsKKyAgICAgICAgdGhp
cy5fZnJhbWVTaXplID0gMDsKKyAgICB9CisgICAgCisgICAgYWRkQmxvY2soZnJlcXVlbmN5KQor
ICAgIHsKKyAgICAgICAgaWYgKGZyZXF1ZW5jeSA9PSBudWxsKQorICAgICAgICAgICAgZnJlcXVl
bmN5ID0gMTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGFkZEluZGV4ZWQodGhpcy5fYmxvY2tzLCBC
YXNpY0Jsb2NrLCBmcmVxdWVuY3kpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAg
ICAKKyAgICBhZGRTdGFja1Nsb3QoYnl0ZVNpemUsIGtpbmQpCisgICAgeworICAgICAgICBsZXQg
cmVzdWx0ID0gYWRkSW5kZXhlZCh0aGlzLl9zdGFja1Nsb3RzLCBTdGFja1Nsb3QsIGJ5dGVTaXpl
LCBraW5kKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgbmV3VG1w
KHR5cGUpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gYWRkSW5kZXhlZCh0aGlzWyJfIiAr
IHN5bWJvbE5hbWUodHlwZSkudG9Mb3dlckNhc2UoKSArICJUbXBzIl0sIFRtcCwgdHlwZSk7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIGdldCBzaXplKCkgeyByZXR1
cm4gdGhpcy5fYmxvY2tzLmxlbmd0aDsgfQorICAgIGF0KGluZGV4KSB7IHJldHVybiB0aGlzLl9i
bG9ja3NbaW5kZXhdOyB9CisgICAgCisgICAgW1N5bWJvbC5pdGVyYXRvcl0oKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2Jsb2Nrc1tTeW1ib2wuaXRlcmF0b3JdKCk7CisgICAgfQorICAg
IAorICAgIGdldCBibG9ja3MoKSB7IHJldHVybiB0aGlzLl9ibG9ja3M7IH0KKyAgICBnZXQgc3Rh
Y2tTbG90cygpIHsgcmV0dXJuIHRoaXMuX3N0YWNrU2xvdHM7IH0KKyAgICAKKyAgICB0bXBzKHR5
cGUpIHsgcmV0dXJuIHRoaXNbIl8iICsgc3ltYm9sTmFtZSh0eXBlKS50b0xvd2VyQ2FzZSgpICsg
IlRtcHMiXTsgfQorICAgIAorICAgIGdldCBjYWxsQXJnQXJlYVNpemUoKSB7IHJldHVybiB0aGlz
Ll9jYWxsQXJnQXJlYVNpemU7IH0KKyAgICAKKyAgICByZXF1ZXN0Q2FsbEFyZ0FyZWFTaXplKHNp
emUpCisgICAgeworICAgICAgICB0aGlzLl9jYWxsQXJnQXJlYVNpemUgPSBNYXRoLm1heCh0aGlz
Ll9jYWxsQXJnQXJlYVNpemUsIHJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRl
cywgc2l6ZSkpOworICAgIH0KKyAgICAKKyAgICBnZXQgZnJhbWVTaXplKCkgeyByZXR1cm4gdGhp
cy5fZnJhbWVTaXplOyB9CisgICAgCisgICAgc2V0RnJhbWVTaXplKGZyYW1lU2l6ZSkgeyB0aGlz
Ll9mcmFtZVNpemUgPSBmcmFtZVNpemU7IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAgewor
ICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIGZvciAobGV0IGJsb2NrIG9mIHRoaXMp
IHsKKyAgICAgICAgICAgIHJlc3VsdCArPSBibG9jay50b1N0cmluZ0RlZXAoKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAodGhpcy5zdGFja1Nsb3RzLmxlbmd0aCkgeworICAgICAgICAgICAgcmVz
dWx0ICs9ICJTdGFjayBzbG90czpcbiI7CisgICAgICAgICAgICBmb3IgKGxldCBzbG90IG9mIHRo
aXMuc3RhY2tTbG90cykKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gIiAgICAiICsgc2xvdCAr
ICJcbiI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuX2ZyYW1lU2l6ZSkKKyAgICAgICAg
ICAgIHJlc3VsdCArPSAiRnJhbWUgc2l6ZTogIiArIHRoaXMuX2ZyYW1lU2l6ZSArICJcbiI7Cisg
ICAgICAgIGlmICh0aGlzLl9jYWxsQXJnQXJlYVNpemUpCisgICAgICAgICAgICByZXN1bHQgKz0g
IkNhbGwgYXJnIGFyZWEgc2l6ZTogIiArIHRoaXMuX2NhbGxBcmdBcmVhU2l6ZSArICJcbiI7Cisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9K
U0Fpci9jdXN0b20uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9jdXN0
b20uanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2N1c3RvbS5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNCBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjb25zdCBTaHVmZmxlQ3VzdG9t
ID0geworICAgIGZvckVhY2hBcmcoaW5zdCwgZnVuYykKKyAgICB7CisgICAgICAgIHZhciBsaW1p
dCA9IGluc3QuYXJncy5sZW5ndGggLyAzICogMzsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCBsaW1pdDsgaSArPSAzKSB7CisgICAgICAgICAgICBsZXQgc3JjID0gaW5zdC5hcmdzW2kgKyAw
XTsKKyAgICAgICAgICAgIGxldCBkc3QgPSBpbnN0LmFyZ3NbaSArIDFdOworICAgICAgICAgICAg
bGV0IHdpZHRoQXJnID0gaW5zdC5hcmdzW2kgKyAyXTsKKyAgICAgICAgICAgIGxldCB3aWR0aCA9
IHdpZHRoQXJnLndpZHRoOworICAgICAgICAgICAgbGV0IHR5cGUgPSBzcmMuaXNHUCAmJiBkc3Qu
aXNHUCA/IEdQIDogRlA7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKGkgKyAwLCBmdW5jLCBB
cmcuVXNlLCB0eXBlLCB3aWR0aCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKGkgKyAxLCBm
dW5jLCBBcmcuRGVmLCB0eXBlLCB3aWR0aCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKGkg
KyAyLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIH0KKyAgICB9LAorICAgIAorICAg
IGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpCisgICAgeworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorfTsKKworY29uc3QgUGF0Y2hDdXN0b20gPSB7CisgICAgZm9yRWFjaEFy
ZyhpbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnN0LmFy
Z3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoCisgICAgICAgICAg
ICAgICAgaSwgZnVuYywgaW5zdC5wYXRjaEFyZ0RhdGFbaV0ucm9sZSwgaW5zdC5wYXRjaEFyZ0Rh
dGFbaV0udHlwZSwKKyAgICAgICAgICAgICAgICBpbnN0LnBhdGNoQXJnRGF0YVtpXS53aWR0aCk7
CisgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3Rz
KGluc3QpCisgICAgeworICAgICAgICByZXR1cm4gaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHM7
CisgICAgfQorfTsKKworY29uc3QgQ0NhbGxDdXN0b20gPSB7CisgICAgZm9yRWFjaEFyZyhpbnN0
LCBmdW5jKQorICAgIHsKKyAgICAgICAgbGV0IGluZGV4ID0gMDsKKyAgICAgICAgaW5zdC52aXNp
dEFyZyhpbmRleCsrLCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsgLy8gY2FsbGVlCisgICAgICAg
IAorICAgICAgICBpZiAoaW5zdC5jQ2FsbFR5cGUgIT0gVm9pZCkgeworICAgICAgICAgICAgaW5z
dC52aXNpdEFyZygKKyAgICAgICAgICAgICAgICBpbmRleCsrLCBmdW5jLCBBcmcuRGVmLCBBcmcu
dHlwZUZvckIzVHlwZShpbnN0LmNDYWxsVHlwZSksCisgICAgICAgICAgICAgICAgQXJnLndpZHRo
Rm9yQjNUeXBlKGluc3QuY0NhbGxUeXBlKSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IGZvciAobGV0IHR5cGUgb2YgaW5zdC5jQ2FsbEFyZ1R5cGVzKSB7CisgICAgICAgICAgICBpbnN0
LnZpc2l0QXJnKAorICAgICAgICAgICAgICAgIGluZGV4KyssIGZ1bmMsIEFyZy5Vc2UsIEFyZy50
eXBlRm9yQjNUeXBlKHR5cGUpLCBBcmcud2lkdGhGb3JCM1R5cGUodHlwZSkpOworICAgICAgICB9
CisgICAgfSwKKyAgICAKKyAgICBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworY29uc3QgQ29sZENDYWxsQ3Vz
dG9tID0geworICAgIGZvckVhY2hBcmcoaW5zdCwgZnVuYykKKyAgICB7CisgICAgICAgIENDYWxs
Q3VzdG9tLmZvckVhY2hBcmcoCisgICAgICAgICAgICBpbnN0LAorICAgICAgICAgICAgKGFyZywg
cm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyhhcmcs
IEFyZy5jb29sZWQocm9sZSksIHR5cGUsIHdpZHRoKTsKKyAgICAgICAgICAgIH0pOworICAgIH0s
CisgICAgCisgICAgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNB
aXIvZnJlcXVlbnRlZF9ibG9jay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pT
QWlyL2ZyZXF1ZW50ZWRfYmxvY2suanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0pTQWlyL2ZyZXF1ZW50ZWRfYmxvY2suanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBA
QAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCitjbGFzcyBGcmVxdWVudGVkQmxvY2sgeworICAgIGNvbnN0cnVjdG9yKGJsb2NrLCBm
cmVxdWVuY3kpCisgICAgeworICAgICAgICB0aGlzLmJsb2NrID0gYmxvY2s7CisgICAgICAgIHRo
aXMuZnJlcXVlbmN5ID0gZnJlcXVlbmN5OworICAgIH0KKyAgICAKKyAgICB0b1N0cmluZygpCisg
ICAgeworICAgICAgICByZXR1cm4gKHRoaXMuZnJlcXVlbmN5ID09IE5vcm1hbCA/ICIiIDogIlJh
cmU6IikgKyB0aGlzLmJsb2NrOworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNB
aXIvaW5zZXJ0aW9uX3NldC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWly
L2luc2VydGlvbl9zZXQuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWly
L2luc2VydGlvbl9zZXQuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4OSBAQAorInVzZSBz
dHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitj
bGFzcyBJbnNlcnRpb24geworICAgIGNvbnN0cnVjdG9yKGluZGV4LCBlbGVtZW50KQorICAgIHsK
KyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKKyAgICAgICAgdGhpcy5fZWxlbWVudCA9IGVs
ZW1lbnQ7CisgICAgfQorICAgIAorICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4
OyB9CisgICAgZ2V0IGVsZW1lbnQoKSB7IHJldHVybiB0aGlzLl9lbGVtZW50OyB9CisgICAgCisg
ICAgbGVzc1RoYW4ob3RoZXIpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5faW5kZXggPCBv
dGhlci5faW5kZXg7CisgICAgfQorfQorCitjbGFzcyBJbnNlcnRpb25TZXQgeworICAgIGNvbnN0
cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2luc2VydGlvbnMgPSBbXQorICAgIH0KKyAg
ICAKKyAgICBhcHBlbmRJbnNlcnRpb24oaW5zZXJ0aW9uKQorICAgIHsKKyAgICAgICAgdGhpcy5f
aW5zZXJ0aW9ucy5wdXNoKGluc2VydGlvbik7CisgICAgfQorICAgIAorICAgIGFwcGVuZChpbmRl
eCwgZWxlbWVudCkKKyAgICB7CisgICAgICAgIHRoaXMuYXBwZW5kSW5zZXJ0aW9uKG5ldyBJbnNl
cnRpb24oaW5kZXgsIGVsZW1lbnQpKTsKKyAgICB9CisgICAgCisgICAgZXhlY3V0ZSh0YXJnZXQp
CisgICAgeworICAgICAgICAvLyBXZSBidWJibGUtc29ydCBiZWNhdXNlIHRoYXQncyB3aGF0IHRo
ZSBDKysgY29kZSwgYW5kIGZvciB0aGUgc2FtZSByZWFzb24gYXMgd2UgZG8gaXQ6CisgICAgICAg
IC8vIHRoZSBzdGRsaWIgZG9lc24ndCBoYXZlIGEgc3RhYmxlIHNvcnQgYW5kIG1lcmdlc29ydCBp
cyBzbG93ZXIgaW4gdGhlIGNvbW1vbiBjYXNlIG9mIHRoZQorICAgICAgICAvLyBhcnJheSB1c3Vh
bGx5IGJlaW5nIHNvcnRlZC4gVGhpcyBhcnJheSBpcyB1c3VhbGx5IHNvcnRlZC4KKyAgICAgICAg
YnViYmxlU29ydCh0aGlzLl9pbnNlcnRpb25zLCAoYSwgYikgPT4gKGEubGVzc1RoYW4oYikpKTsK
KyAgICAgICAgCisgICAgICAgIGxldCBudW1JbnNlcnRpb25zID0gdGhpcy5faW5zZXJ0aW9ucy5s
ZW5ndGg7CisgICAgICAgIGlmICghbnVtSW5zZXJ0aW9ucykKKyAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICBsZXQgb3JpZ2luYWxUYXJnZXRTaXplID0gdGFyZ2V0Lmxlbmd0aDsKKyAgICAg
ICAgdGFyZ2V0Lmxlbmd0aCArPSBudW1JbnNlcnRpb25zOworICAgICAgICBsZXQgbGFzdEluZGV4
ID0gdGFyZ2V0Lmxlbmd0aDsKKyAgICAgICAgZm9yIChsZXQgaW5kZXhJbkluc2VydGlvbnMgPSBu
dW1JbnNlcnRpb25zOyBpbmRleEluSW5zZXJ0aW9ucy0tOykgeworICAgICAgICAgICAgbGV0IGlu
c2VydGlvbiA9IHRoaXMuX2luc2VydGlvbnNbaW5kZXhJbkluc2VydGlvbnNdOworICAgICAgICAg
ICAgaWYgKGluZGV4SW5JbnNlcnRpb25zICYmIGluc2VydGlvbi5pbmRleCA8IHRoaXMuX2luc2Vy
dGlvbnNbaW5kZXhJbkluc2VydGlvbnMgLSAxXS5pbmRleCkKKyAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkluc2VydGlvbnMgb3V0IG9mIG9yZGVyIik7CisgICAgICAgICAgICBpZiAo
aW5zZXJ0aW9uLmluZGV4ID4gb3JpZ2luYWxUYXJnZXRTaXplKQorICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiT3V0LW9mLWJvdW5kcyBpbnNlcnRpb24iKTsKKyAgICAgICAgICAgIGxl
dCBmaXJzdEluZGV4ID0gaW5zZXJ0aW9uLmluZGV4ICsgaW5kZXhJbkluc2VydGlvbnM7CisgICAg
ICAgICAgICBsZXQgaW5kZXhPZmZzZXQgPSBpbmRleEluSW5zZXJ0aW9ucyArIDE7CisgICAgICAg
ICAgICBmb3IgKGxldCBpID0gbGFzdEluZGV4OyAtLWkgPiBmaXJzdEluZGV4OykKKyAgICAgICAg
ICAgICAgICB0YXJnZXRbaV0gPSB0YXJnZXRbaSAtIGluZGV4T2Zmc2V0XTsKKyAgICAgICAgICAg
IHRhcmdldFtmaXJzdEluZGV4XSA9IGluc2VydGlvbi5lbGVtZW50OworICAgICAgICAgICAgbGFz
dEluZGV4ID0gZmlyc3RJbmRleDsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9pbnNlcnRpb25z
ID0gW107CisgICAgICAgIHJldHVybiBudW1JbnNlcnRpb25zOworICAgIH0KK30KKwpJbmRleDog
UGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9pbnN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNl
VGVzdHMvSlNBaXIvaW5zdC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNB
aXIvaW5zdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzMyBAQAorInVzZSBzdHJpY3Qi
OworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBJ
bnN0IHsKKyAgICBjb25zdHJ1Y3RvcihvcGNvZGUsIGFyZ3MpCisgICAgeworICAgICAgICB0aGlz
Ll9vcGNvZGUgPSBvcGNvZGU7CisgICAgICAgIHRoaXMuX2FyZ3MgPSBhcmdzID09IG51bGwgPyBb
XSA6IGFyZ3M7CisgICAgfQorICAgIAorICAgIGFwcGVuZCguLi5hcmdzKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fYXJncy5wdXNoKC4uLmFyZ3MpOworICAgIH0KKyAgICAKKyAgICBjbGVhcigpCisg
ICAgeworICAgICAgICB0aGlzLl9vcGNvZGUgPSBOb3A7CisgICAgICAgIHRoaXMuX2FyZ3MgPSBb
XTsKKyAgICB9CisgICAgCisgICAgZ2V0IG9wY29kZSgpIHsgcmV0dXJuIHRoaXMuX29wY29kZTsg
fQorICAgIGdldCBhcmdzKCkgeyByZXR1cm4gdGhpcy5fYXJnczsgfQorICAgIAorICAgIHZpc2l0
QXJnKGluZGV4LCBmdW5jLCAuLi5hcmdzKQorICAgIHsKKyAgICAgICAgbGV0IHJlcGxhY2VtZW50
ID0gZnVuYyh0aGlzLl9hcmdzW2luZGV4XSwgLi4uYXJncyk7CisgICAgICAgIGlmIChyZXBsYWNl
bWVudCkKKyAgICAgICAgICAgIHRoaXMuX2FyZ3NbaW5kZXhdID0gcmVwbGFjZW1lbnQ7CisgICAg
fQorICAgIAorICAgIGZvckVhY2hUbXBGYXN0KGZ1bmMpCisgICAgeworICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IHRoaXMuX2FyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGxldCBy
ZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IHRoaXMuX2FyZ3NbaV0u
Zm9yRWFjaFRtcEZhc3QoZnVuYykpCisgICAgICAgICAgICAgICAgdGhpcy5fYXJnc1tpXSA9IHJl
cGxhY2VtZW50OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGZvckVhY2hBcmcoZnVuYykK
KyAgICB7CisgICAgICAgIEluc3RfZm9yRWFjaEFyZyh0aGlzLCBmdW5jKTsKKyAgICB9CisgICAg
CisgICAgZm9yRWFjaFRtcChmdW5jKQorICAgIHsKKyAgICAgICAgdGhpcy5mb3JFYWNoQXJnKChh
cmcsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gYXJnLmZvckVh
Y2hUbXAocm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmMpOworICAgICAgICB9KTsKKyAgICB9CisgICAg
CisgICAgZm9yRWFjaCh0aGluZywgZnVuYykKKyAgICB7CisgICAgICAgIHRoaXMuZm9yRWFjaEFy
ZygoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgcmV0dXJuIGFyZy5m
b3JFYWNoKHRoaW5nLCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYyk7CisgICAgICAgIH0pOworICAg
IH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaERlZih0aGluZywgcHJldkluc3QsIG5leHRJbnN0
LCBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKHByZXZJbnN0KSB7CisgICAgICAgICAgICBwcmV2
SW5zdC5mb3JFYWNoKAorICAgICAgICAgICAgICAgIHRoaW5nLAorICAgICAgICAgICAgICAgICh2
YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKEFy
Zy5pc0xhdGVEZWYocm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyh2
YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBpZiAobmV4dEluc3QpIHsKKyAgICAgICAgICAgIG5leHRJbnN0
LmZvckVhY2goCisgICAgICAgICAgICAgICAgdGhpbmcsCisgICAgICAgICAgICAgICAgKHZhbHVl
LCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAgICAgICBpZiAoQXJnLmlz
RWFybHlEZWYocm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyh2YWx1
ZSwgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNoRGVmV2l0aEV4dHJhQ2xvYmJlcmVkUmVncyh0
aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgZm9yRWFjaERl
Zih0aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5jKTsKKyAgICAgICAgCisgICAgICAgIGxl
dCByZWdEZWZSb2xlOworICAgICAgICAKKyAgICAgICAgbGV0IHJlcG9ydFJlZyA9IHJlZyA9PiB7
CisgICAgICAgICAgICBsZXQgdHlwZSA9IHJlZy5pc0dQUiA/IEdQIDogRlA7CisgICAgICAgICAg
ICBmdW5jKHRoaW5nLmZyb21SZWcocmVnKSwgcmVnRGVmUm9sZSwgdHlwZSwgQXJnLmNvbnNlcnZh
dGl2ZVdpZHRoKHR5cGUpKTsKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIGlmIChwcmV2
SW5zdCAmJiBwcmV2SW5zdC5vcGNvZGUgPT0gUGF0Y2gpIHsKKyAgICAgICAgICAgIHJlZ0RlZlJv
bGUgPSBBcmcuRGVmOworICAgICAgICAgICAgcHJldkluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmZv
ckVhY2gocmVwb3J0UmVnKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG5leHRJ
bnN0ICYmIG5leHRJbnN0Lm9wY29kZSA9PSBQYXRjaCkgeworICAgICAgICAgICAgcmVnRGVmUm9s
ZSA9IEFyZy5FYXJseURlZjsKKyAgICAgICAgICAgIG5leHRJbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzLmZvckVhY2gocmVwb3J0UmVnKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBn
ZXQgaGFzTm9uQXJnRWZmZWN0cygpIHsgcmV0dXJuIEluc3RfaGFzTm9uQXJnRWZmZWN0cyh0aGlz
KTsgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiIiArIHN5
bWJvbE5hbWUodGhpcy5fb3Bjb2RlKSArICIgIiArIHRoaXMuX2FyZ3Muam9pbigiLCAiKTsKKyAg
ICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvbGl2ZW5lc3MuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9saXZlbmVzcy5qcwkocmV2aXNpb24gMCkK
KysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvbGl2ZW5lc3MuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNTIgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgTGl2ZW5lc3MgeworICAgIGNvbnN0cnVjdG9yKHRo
aW5nLCBjb2RlKQorICAgIHsKKyAgICAgICAgdGhpcy5fdGhpbmcgPSB0aGluZzsKKyAgICAgICAg
dGhpcy5fY29kZSA9IGNvZGU7CisgICAgICAgIAorICAgICAgICB0aGlzLl9saXZlQXRIZWFkID0g
bmV3IE1hcCgpOworICAgICAgICB0aGlzLl9saXZlQXRUYWlsID0gbmV3IE1hcCgpOworICAgICAg
ICAKKyAgICAgICAgZm9yIChsZXQgYmxvY2sgb2YgY29kZSkgeworICAgICAgICAgICAgdGhpcy5f
bGl2ZUF0SGVhZC5zZXQoYmxvY2ssIG5ldyBTZXQoKSk7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGxldCBsaXZlQXRUYWlsID0gbmV3IFNldCgpOworICAgICAgICAgICAgdGhpcy5fbGl2ZUF0
VGFpbC5zZXQoYmxvY2ssIGxpdmVBdFRhaWwpOworICAgICAgICAgICAgCisgICAgICAgICAgICBi
bG9jay5sYXN0LmZvckVhY2goCisgICAgICAgICAgICAgICAgdGhpbmcsCisgICAgICAgICAgICAg
ICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAgICAgICBp
ZiAoQXJnLmlzTGF0ZVVzZShyb2xlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVBdFRh
aWwuYWRkKHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgbGV0IGRpcnR5QmxvY2tzID0gbmV3IFNldChjb2RlKTsKKyAgICAgICAgCisgICAg
ICAgIGxldCBjaGFuZ2VkOworICAgICAgICBkbyB7CisgICAgICAgICAgICBjaGFuZ2VkID0gZmFs
c2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAobGV0IGJsb2NrSW5kZXggPSBjb2Rl
LnNpemU7IGJsb2NrSW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBsZXQgYmxvY2sgPSBjb2Rl
LmF0KGJsb2NrSW5kZXgpOworICAgICAgICAgICAgICAgIGlmICghYmxvY2spCisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlm
ICghZGlydHlCbG9ja3MuZGVsZXRlKGJsb2NrKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbGV0IGxvY2FsQ2FsYyA9IHRo
aXMubG9jYWxDYWxjKGJsb2NrKTsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBpbnN0SW5kZXgg
PSBibG9jay5zaXplOyBpbnN0SW5kZXgtLTspCisgICAgICAgICAgICAgICAgICAgIGxvY2FsQ2Fs
Yy5leGVjdXRlKGluc3RJbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
Ly8gSGFuZGxlIHRoZSBlYXJseSBkZWYncyBvZiB0aGUgZmlyc3QgaW5zdHJ1Y3Rpb24uCisgICAg
ICAgICAgICAgICAgYmxvY2suYXQoMCkuZm9yRWFjaCgKKyAgICAgICAgICAgICAgICAgICAgdGhp
bmcsCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNFYXJseURlZihyb2xlKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsb2NhbENhbGMubGl2ZVNldC5yZW1vdmUodmFsdWUpOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBsZXQgbGl2ZUF0SGVhZCA9IHRoaXMuX2xpdmVBdEhlYWQuZ2V0KGJsb2NrKTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIW1lcmdlSW50b1NldChsaXZlQXRIZWFkLCBs
b2NhbENhbGMubGl2ZVNldCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAobGV0IHByZWRlY2Vzc29yIG9mIGJsb2Nr
LnByZWRlY2Vzc29ycykgeworICAgICAgICAgICAgICAgICAgICBpZiAobWVyZ2VJbnRvU2V0KHRo
aXMuX2xpdmVBdFRhaWwuZ2V0KHByZWRlY2Vzc29yKSwgbGl2ZUF0SGVhZCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRpcnR5QmxvY2tzLmFkZChwcmVkZWNlc3Nvcik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAoY2hhbmdlZCk7
CisgICAgfQorICAgIAorICAgIGdldCB0aGluZygpIHsgcmV0dXJuIHRoaXMuX3RoaW5nOyB9Cisg
ICAgZ2V0IGNvZGUoKSB7IHJldHVybiB0aGlzLl9jb2RlOyB9CisgICAgZ2V0IGxpdmVBdEhlYWQo
KSB7IHJldHVybiB0aGlzLl9saXZlQXRIZWFkOyB9CisgICAgZ2V0IGxpdmVBdFRhaWwoKSB7IHJl
dHVybiB0aGlzLl9saXZlQXRUYWlsOyB9CisgICAgCisgICAgbG9jYWxDYWxjKGJsb2NrKQorICAg
IHsKKyAgICAgICAgbGV0IGxpdmVuZXNzID0gdGhpczsKKyAgICAgICAgY2xhc3MgTG9jYWxDYWxj
IHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9saXZlU2V0ID0gbmV3IFNldChsaXZlbmVzcy5saXZlQXRUYWlsLmdldChibG9j
aykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBnZXQgbGl2ZVNl
dCgpIHsgcmV0dXJuIHRoaXMuX2xpdmVTZXQ7IH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAg
ZXhlY3V0ZShpbnN0SW5kZXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbGV0IGlu
c3QgPSBibG9jay5hdChpbnN0SW5kZXgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIC8vIEZpcnN0IGhhbmRsZSB0aGUgZWFybHkgZGVmcyBvZiB0aGUgbmV4dCBpbnN0cnVjdGlv
bi4KKyAgICAgICAgICAgICAgICBpZiAoaW5zdEluZGV4ICsgMSA8IGJsb2NrLnNpemUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYmxvY2suYXQoaW5zdEluZGV4ICsgMSkuZm9yRWFjaCgKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxpdmVuZXNzLnRoaW5nLAorICAgICAgICAgICAgICAgICAgICAg
ICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChBcmcuaXNFYXJseURlZihyb2xlKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fbGl2ZVNldC5kZWxldGUodmFsdWUpOworICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIC8vIFRoZW4gaGFuZGxlIGRlZnMuCisgICAgICAgICAgICAgICAgaW5zdC5mb3JFYWNo
KAorICAgICAgICAgICAgICAgICAgICBsaXZlbmVzcy50aGluZywKKyAgICAgICAgICAgICAgICAg
ICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKEFyZy5pc0xhdGVEZWYocm9sZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5fbGl2ZVNldC5kZWxldGUodmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBUaGVuIGhhbmRsZSB1c2VzLgorICAg
ICAgICAgICAgICAgIGluc3QuZm9yRWFjaCgKKyAgICAgICAgICAgICAgICAgICAgbGl2ZW5lc3Mu
dGhpbmcsCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNFYXJseVVzZShyb2xlKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9saXZlU2V0LmFkZCh2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8v
IEZpbmFsbHkgaGFuZGxlIHRoZSBsYXRlIHVzZXMgb2YgdGhlIHByZXZpb3VzIGluc3RydWN0aW9u
LgorICAgICAgICAgICAgICAgIGlmIChpbnN0SW5kZXggLSAxID49IDApIHsKKyAgICAgICAgICAg
ICAgICAgICAgYmxvY2suYXQoaW5zdEluZGV4IC0gMSkuZm9yRWFjaCgKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxpdmVuZXNzLnRoaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVl
LCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChBcmcuaXNMYXRlVXNlKHJvbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLl9saXZlU2V0LmFkZCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIHJldHVybiBuZXcgTG9jYWxDYWxjKCk7CisgICAgfQorfQorCkluZGV4OiBQZXJmb3JtYW5j
ZVRlc3RzL0pTQWlyL29wY29kZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pT
QWlyL29wY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bj
b2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTM4MCBAQAorInVzZSBzdHJpY3QiOwor
Ly8gR2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIgZnJvbSBKYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyT3Bjb2RlLm9wY29kZXMgLS0gZG8gbm90IGVkaXQhCitjb25zdCBOb3AgPSBTeW1i
b2woIk5vcCIpOworY29uc3QgQWRkMzIgPSBTeW1ib2woIkFkZDMyIik7Citjb25zdCBBZGQ4ID0g
U3ltYm9sKCJBZGQ4Iik7Citjb25zdCBBZGQxNiA9IFN5bWJvbCgiQWRkMTYiKTsKK2NvbnN0IEFk
ZDY0ID0gU3ltYm9sKCJBZGQ2NCIpOworY29uc3QgQWRkRG91YmxlID0gU3ltYm9sKCJBZGREb3Vi
bGUiKTsKK2NvbnN0IEFkZEZsb2F0ID0gU3ltYm9sKCJBZGRGbG9hdCIpOworY29uc3QgU3ViMzIg
PSBTeW1ib2woIlN1YjMyIik7Citjb25zdCBTdWI2NCA9IFN5bWJvbCgiU3ViNjQiKTsKK2NvbnN0
IFN1YkRvdWJsZSA9IFN5bWJvbCgiU3ViRG91YmxlIik7Citjb25zdCBTdWJGbG9hdCA9IFN5bWJv
bCgiU3ViRmxvYXQiKTsKK2NvbnN0IE5lZzMyID0gU3ltYm9sKCJOZWczMiIpOworY29uc3QgTmVn
NjQgPSBTeW1ib2woIk5lZzY0Iik7Citjb25zdCBOZWdhdGVEb3VibGUgPSBTeW1ib2woIk5lZ2F0
ZURvdWJsZSIpOworY29uc3QgTXVsMzIgPSBTeW1ib2woIk11bDMyIik7Citjb25zdCBNdWw2NCA9
IFN5bWJvbCgiTXVsNjQiKTsKK2NvbnN0IE11bHRpcGx5QWRkMzIgPSBTeW1ib2woIk11bHRpcGx5
QWRkMzIiKTsKK2NvbnN0IE11bHRpcGx5QWRkNjQgPSBTeW1ib2woIk11bHRpcGx5QWRkNjQiKTsK
K2NvbnN0IE11bHRpcGx5U3ViMzIgPSBTeW1ib2woIk11bHRpcGx5U3ViMzIiKTsKK2NvbnN0IE11
bHRpcGx5U3ViNjQgPSBTeW1ib2woIk11bHRpcGx5U3ViNjQiKTsKK2NvbnN0IE11bHRpcGx5TmVn
MzIgPSBTeW1ib2woIk11bHRpcGx5TmVnMzIiKTsKK2NvbnN0IE11bHRpcGx5TmVnNjQgPSBTeW1i
b2woIk11bHRpcGx5TmVnNjQiKTsKK2NvbnN0IERpdjMyID0gU3ltYm9sKCJEaXYzMiIpOworY29u
c3QgRGl2NjQgPSBTeW1ib2woIkRpdjY0Iik7Citjb25zdCBNdWxEb3VibGUgPSBTeW1ib2woIk11
bERvdWJsZSIpOworY29uc3QgTXVsRmxvYXQgPSBTeW1ib2woIk11bEZsb2F0Iik7Citjb25zdCBE
aXZEb3VibGUgPSBTeW1ib2woIkRpdkRvdWJsZSIpOworY29uc3QgRGl2RmxvYXQgPSBTeW1ib2wo
IkRpdkZsb2F0Iik7Citjb25zdCBYODZDb252ZXJ0VG9Eb3VibGVXb3JkMzIgPSBTeW1ib2woIlg4
NkNvbnZlcnRUb0RvdWJsZVdvcmQzMiIpOworY29uc3QgWDg2Q29udmVydFRvUXVhZFdvcmQ2NCA9
IFN5bWJvbCgiWDg2Q29udmVydFRvUXVhZFdvcmQ2NCIpOworY29uc3QgWDg2RGl2MzIgPSBTeW1i
b2woIlg4NkRpdjMyIik7Citjb25zdCBYODZEaXY2NCA9IFN5bWJvbCgiWDg2RGl2NjQiKTsKK2Nv
bnN0IExlYSA9IFN5bWJvbCgiTGVhIik7Citjb25zdCBBbmQzMiA9IFN5bWJvbCgiQW5kMzIiKTsK
K2NvbnN0IEFuZDY0ID0gU3ltYm9sKCJBbmQ2NCIpOworY29uc3QgQW5kRG91YmxlID0gU3ltYm9s
KCJBbmREb3VibGUiKTsKK2NvbnN0IEFuZEZsb2F0ID0gU3ltYm9sKCJBbmRGbG9hdCIpOworY29u
c3QgWG9yRG91YmxlID0gU3ltYm9sKCJYb3JEb3VibGUiKTsKK2NvbnN0IFhvckZsb2F0ID0gU3lt
Ym9sKCJYb3JGbG9hdCIpOworY29uc3QgTHNoaWZ0MzIgPSBTeW1ib2woIkxzaGlmdDMyIik7Citj
b25zdCBMc2hpZnQ2NCA9IFN5bWJvbCgiTHNoaWZ0NjQiKTsKK2NvbnN0IFJzaGlmdDMyID0gU3lt
Ym9sKCJSc2hpZnQzMiIpOworY29uc3QgUnNoaWZ0NjQgPSBTeW1ib2woIlJzaGlmdDY0Iik7Citj
b25zdCBVcnNoaWZ0MzIgPSBTeW1ib2woIlVyc2hpZnQzMiIpOworY29uc3QgVXJzaGlmdDY0ID0g
U3ltYm9sKCJVcnNoaWZ0NjQiKTsKK2NvbnN0IE9yMzIgPSBTeW1ib2woIk9yMzIiKTsKK2NvbnN0
IE9yNjQgPSBTeW1ib2woIk9yNjQiKTsKK2NvbnN0IFhvcjMyID0gU3ltYm9sKCJYb3IzMiIpOwor
Y29uc3QgWG9yNjQgPSBTeW1ib2woIlhvcjY0Iik7Citjb25zdCBOb3QzMiA9IFN5bWJvbCgiTm90
MzIiKTsKK2NvbnN0IE5vdDY0ID0gU3ltYm9sKCJOb3Q2NCIpOworY29uc3QgQWJzRG91YmxlID0g
U3ltYm9sKCJBYnNEb3VibGUiKTsKK2NvbnN0IEFic0Zsb2F0ID0gU3ltYm9sKCJBYnNGbG9hdCIp
OworY29uc3QgQ2VpbERvdWJsZSA9IFN5bWJvbCgiQ2VpbERvdWJsZSIpOworY29uc3QgQ2VpbEZs
b2F0ID0gU3ltYm9sKCJDZWlsRmxvYXQiKTsKK2NvbnN0IEZsb29yRG91YmxlID0gU3ltYm9sKCJG
bG9vckRvdWJsZSIpOworY29uc3QgRmxvb3JGbG9hdCA9IFN5bWJvbCgiRmxvb3JGbG9hdCIpOwor
Y29uc3QgU3FydERvdWJsZSA9IFN5bWJvbCgiU3FydERvdWJsZSIpOworY29uc3QgU3FydEZsb2F0
ID0gU3ltYm9sKCJTcXJ0RmxvYXQiKTsKK2NvbnN0IENvbnZlcnRJbnQzMlRvRG91YmxlID0gU3lt
Ym9sKCJDb252ZXJ0SW50MzJUb0RvdWJsZSIpOworY29uc3QgQ29udmVydEludDY0VG9Eb3VibGUg
PSBTeW1ib2woIkNvbnZlcnRJbnQ2NFRvRG91YmxlIik7Citjb25zdCBDb252ZXJ0SW50MzJUb0Zs
b2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0Zsb2F0Iik7Citjb25zdCBDb252ZXJ0SW50NjRU
b0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50NjRUb0Zsb2F0Iik7Citjb25zdCBDb3VudExlYWRp
bmdaZXJvczMyID0gU3ltYm9sKCJDb3VudExlYWRpbmdaZXJvczMyIik7Citjb25zdCBDb3VudExl
YWRpbmdaZXJvczY0ID0gU3ltYm9sKCJDb3VudExlYWRpbmdaZXJvczY0Iik7Citjb25zdCBDb252
ZXJ0RG91YmxlVG9GbG9hdCA9IFN5bWJvbCgiQ29udmVydERvdWJsZVRvRmxvYXQiKTsKK2NvbnN0
IENvbnZlcnRGbG9hdFRvRG91YmxlID0gU3ltYm9sKCJDb252ZXJ0RmxvYXRUb0RvdWJsZSIpOwor
Y29uc3QgTW92ZSA9IFN5bWJvbCgiTW92ZSIpOworY29uc3QgU3dhcDMyID0gU3ltYm9sKCJTd2Fw
MzIiKTsKK2NvbnN0IFN3YXA2NCA9IFN5bWJvbCgiU3dhcDY0Iik7Citjb25zdCBNb3ZlMzIgPSBT
eW1ib2woIk1vdmUzMiIpOworY29uc3QgU3RvcmVaZXJvMzIgPSBTeW1ib2woIlN0b3JlWmVybzMy
Iik7Citjb25zdCBTaWduRXh0ZW5kMzJUb1B0ciA9IFN5bWJvbCgiU2lnbkV4dGVuZDMyVG9QdHIi
KTsKK2NvbnN0IFplcm9FeHRlbmQ4VG8zMiA9IFN5bWJvbCgiWmVyb0V4dGVuZDhUbzMyIik7Citj
b25zdCBTaWduRXh0ZW5kOFRvMzIgPSBTeW1ib2woIlNpZ25FeHRlbmQ4VG8zMiIpOworY29uc3Qg
WmVyb0V4dGVuZDE2VG8zMiA9IFN5bWJvbCgiWmVyb0V4dGVuZDE2VG8zMiIpOworY29uc3QgU2ln
bkV4dGVuZDE2VG8zMiA9IFN5bWJvbCgiU2lnbkV4dGVuZDE2VG8zMiIpOworY29uc3QgTW92ZUZs
b2F0ID0gU3ltYm9sKCJNb3ZlRmxvYXQiKTsKK2NvbnN0IE1vdmVEb3VibGUgPSBTeW1ib2woIk1v
dmVEb3VibGUiKTsKK2NvbnN0IE1vdmVaZXJvVG9Eb3VibGUgPSBTeW1ib2woIk1vdmVaZXJvVG9E
b3VibGUiKTsKK2NvbnN0IE1vdmU2NFRvRG91YmxlID0gU3ltYm9sKCJNb3ZlNjRUb0RvdWJsZSIp
OworY29uc3QgTW92ZTMyVG9GbG9hdCA9IFN5bWJvbCgiTW92ZTMyVG9GbG9hdCIpOworY29uc3Qg
TW92ZURvdWJsZVRvNjQgPSBTeW1ib2woIk1vdmVEb3VibGVUbzY0Iik7Citjb25zdCBNb3ZlRmxv
YXRUbzMyID0gU3ltYm9sKCJNb3ZlRmxvYXRUbzMyIik7Citjb25zdCBMb2FkOCA9IFN5bWJvbCgi
TG9hZDgiKTsKK2NvbnN0IFN0b3JlOCA9IFN5bWJvbCgiU3RvcmU4Iik7Citjb25zdCBMb2FkOFNp
Z25lZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQ4U2lnbmVkRXh0ZW5kVG8zMiIpOworY29uc3Qg
TG9hZDE2ID0gU3ltYm9sKCJMb2FkMTYiKTsKK2NvbnN0IExvYWQxNlNpZ25lZEV4dGVuZFRvMzIg
PSBTeW1ib2woIkxvYWQxNlNpZ25lZEV4dGVuZFRvMzIiKTsKK2NvbnN0IFN0b3JlMTYgPSBTeW1i
b2woIlN0b3JlMTYiKTsKK2NvbnN0IENvbXBhcmUzMiA9IFN5bWJvbCgiQ29tcGFyZTMyIik7Citj
b25zdCBDb21wYXJlNjQgPSBTeW1ib2woIkNvbXBhcmU2NCIpOworY29uc3QgVGVzdDMyID0gU3lt
Ym9sKCJUZXN0MzIiKTsKK2NvbnN0IFRlc3Q2NCA9IFN5bWJvbCgiVGVzdDY0Iik7Citjb25zdCBD
b21wYXJlRG91YmxlID0gU3ltYm9sKCJDb21wYXJlRG91YmxlIik7Citjb25zdCBDb21wYXJlRmxv
YXQgPSBTeW1ib2woIkNvbXBhcmVGbG9hdCIpOworY29uc3QgQnJhbmNoOCA9IFN5bWJvbCgiQnJh
bmNoOCIpOworY29uc3QgQnJhbmNoMzIgPSBTeW1ib2woIkJyYW5jaDMyIik7Citjb25zdCBCcmFu
Y2g2NCA9IFN5bWJvbCgiQnJhbmNoNjQiKTsKK2NvbnN0IEJyYW5jaFRlc3Q4ID0gU3ltYm9sKCJC
cmFuY2hUZXN0OCIpOworY29uc3QgQnJhbmNoVGVzdDMyID0gU3ltYm9sKCJCcmFuY2hUZXN0MzIi
KTsKK2NvbnN0IEJyYW5jaFRlc3Q2NCA9IFN5bWJvbCgiQnJhbmNoVGVzdDY0Iik7Citjb25zdCBC
cmFuY2hEb3VibGUgPSBTeW1ib2woIkJyYW5jaERvdWJsZSIpOworY29uc3QgQnJhbmNoRmxvYXQg
PSBTeW1ib2woIkJyYW5jaEZsb2F0Iik7Citjb25zdCBCcmFuY2hBZGQzMiA9IFN5bWJvbCgiQnJh
bmNoQWRkMzIiKTsKK2NvbnN0IEJyYW5jaEFkZDY0ID0gU3ltYm9sKCJCcmFuY2hBZGQ2NCIpOwor
Y29uc3QgQnJhbmNoTXVsMzIgPSBTeW1ib2woIkJyYW5jaE11bDMyIik7Citjb25zdCBCcmFuY2hN
dWw2NCA9IFN5bWJvbCgiQnJhbmNoTXVsNjQiKTsKK2NvbnN0IEJyYW5jaFN1YjMyID0gU3ltYm9s
KCJCcmFuY2hTdWIzMiIpOworY29uc3QgQnJhbmNoU3ViNjQgPSBTeW1ib2woIkJyYW5jaFN1YjY0
Iik7Citjb25zdCBCcmFuY2hOZWczMiA9IFN5bWJvbCgiQnJhbmNoTmVnMzIiKTsKK2NvbnN0IEJy
YW5jaE5lZzY0ID0gU3ltYm9sKCJCcmFuY2hOZWc2NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFs
bHkzMiA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHkzMiIpOworY29uc3QgTW92ZUNvbmRpdGlv
bmFsbHk2NCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHk2NCIpOworY29uc3QgTW92ZUNvbmRp
dGlvbmFsbHlUZXN0MzIgPSBTeW1ib2woIk1vdmVDb25kaXRpb25hbGx5VGVzdDMyIik7Citjb25z
dCBNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2NCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlUZXN0
NjQiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5RG91YmxlID0gU3ltYm9sKCJNb3ZlQ29uZGl0
aW9uYWxseURvdWJsZSIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgi
TW92ZUNvbmRpdGlvbmFsbHlGbG9hdCIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkz
MiA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkzMiIpOworY29uc3QgTW92ZURvdWJs
ZUNvbmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHk2NCIpOwor
Y29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0MzIgPSBTeW1ib2woIk1vdmVEb3VibGVD
b25kaXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2
NCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0NjQiKTsKK2NvbnN0IE1vdmVE
b3VibGVDb25kaXRpb25hbGx5RG91YmxlID0gU3ltYm9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxs
eURvdWJsZSIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgi
TW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCIpOworY29uc3QgSnVtcCA9IFN5bWJvbCgiSnVt
cCIpOworY29uc3QgUmV0MzIgPSBTeW1ib2woIlJldDMyIik7Citjb25zdCBSZXQ2NCA9IFN5bWJv
bCgiUmV0NjQiKTsKK2NvbnN0IFJldEZsb2F0ID0gU3ltYm9sKCJSZXRGbG9hdCIpOworY29uc3Qg
UmV0RG91YmxlID0gU3ltYm9sKCJSZXREb3VibGUiKTsKK2NvbnN0IE9vcHMgPSBTeW1ib2woIk9v
cHMiKTsKK2NvbnN0IFNodWZmbGUgPSBTeW1ib2woIlNodWZmbGUiKTsKK2NvbnN0IFBhdGNoID0g
U3ltYm9sKCJQYXRjaCIpOworY29uc3QgQ0NhbGwgPSBTeW1ib2woIkNDYWxsIik7Citjb25zdCBD
b2xkQ0NhbGwgPSBTeW1ib2woIkNvbGRDQ2FsbCIpOworZnVuY3Rpb24gSW5zdF9mb3JFYWNoQXJn
KGluc3QsIGZ1bmMpCit7CitsZXQgcmVwbGFjZW1lbnQ7Citzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7
CitjYXNlIE5vcDoKK2JyZWFrOworYnJlYWs7CitjYXNlIEFkZDMyOgorc3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZp
c2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CitjYXNlIDI6CitpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVy
cm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIEFkZDg6CitpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA4KTsKK2luc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZURlZiwgR1AsIDgpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQWRkMTY6CitpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAxNik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2VEZWYsIEdQLCAxNik7CiticmVhazsKK2JyZWFrOworY2FzZSBBZGQ2NDoKK3N3
aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBH
UCwgNjQpOworYnJlYWs7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7CiticmVhazsKK2RlZmF1bHQ6Cit0
aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2Ug
QWRkRG91YmxlOgorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2
NCk7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAs
IDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDY0KTsKK2JyZWFr
OworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30K
K2JyZWFrOworY2FzZSBBZGRGbG9hdDoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2Fz
ZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBB
cmcuRGVmLCBGUCwgMzIpOworYnJlYWs7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMs
IEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQ
LCAzMik7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIp
OworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgU3ViMzI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBH
UCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgU3ViNjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYs
IEdQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBTdWJEb3VibGU6Citzd2l0Y2ggKGluc3Qu
YXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
RlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3Qu
dmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOworY2FzZSAyOgoraW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBm
dW5jLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVy
cm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIFN1YkZsb2F0Ogor
c3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7CiticmVhazsK
K2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDMyKTsKK2JyZWFrOworZGVmYXVsdDoK
K3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2Fz
ZSBOZWczMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7Citi
cmVhazsKK2JyZWFrOworY2FzZSBOZWc2NDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZURlZiwgR1AsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE5lZ2F0ZURvdWJsZToKK2luc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE11bDMyOgorc3dpdGNo
IChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFy
Zy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwg
MzIpOworYnJlYWs7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZp
c2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CitkZWZhdWx0OgordGhy
b3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIE11
bDY0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5V
c2VEZWYsIEdQLCA2NCk7CiticmVhazsKK2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0
KTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwgR1AsIDY0KTsKK2JyZWFrOworZGVm
YXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFr
OworY2FzZSBNdWx0aXBseUFkZDMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBH
UCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52
aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygzLCBmdW5j
LCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE11bHRpcGx5QWRkNjQ6
CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5V
c2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7Citi
cmVhazsKK2JyZWFrOworY2FzZSBNdWx0aXBseVN1YjMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwg
MzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygzLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE11
bHRpcGx5U3ViNjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7Citp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5EZWYs
IEdQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBNdWx0aXBseU5lZzMyOgoraW5zdC52aXNp
dEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMy
KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE11bHRpcGx5TmVnNjQ6CitpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgNjQpOworYnJl
YWs7CiticmVhazsKK2Nhc2UgRGl2MzI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nh
c2UgRGl2NjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5EZWYsIEdQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBNdWxEb3VibGU6Citz
d2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAs
IDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOwor
Y2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworYnJlYWs7CitkZWZhdWx0Ogor
dGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNl
IE11bEZsb2F0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQLCAz
Mik7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAs
IDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDMyKTsKK2JyZWFr
OworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30K
K2JyZWFrOworY2FzZSBEaXZEb3VibGU6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nh
c2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3Qudmlz
aXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywg
QXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBG
UCwgNjQpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQi
KTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIERpdkZsb2F0Ogorc3dpdGNoIChpbnN0LmFyZ3Mu
bGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAz
Mik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0
QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7CiticmVhazsKK2Nhc2UgMjoKK2luc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZURlZiwgRlAsIDMyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigi
QmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBYODZDb252ZXJ0VG9Eb3Vi
bGVXb3JkMzI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nh
c2UgWDg2Q29udmVydFRvUXVhZFdvcmQ2NDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgR1AsIDY0KTsKK2Jy
ZWFrOworYnJlYWs7CitjYXNlIFg4NkRpdjMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlWkRlZiwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CiticmVhazsK
K2JyZWFrOworY2FzZSBYODZEaXY2NDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZVpE
ZWYsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgNjQp
OworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworYnJlYWs7CiticmVh
azsKK2Nhc2UgTGVhOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlQWRkciwgR1AsIFB0
cik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCBQdHIpOworYnJlYWs7Citi
cmVhazsKK2Nhc2UgQW5kMzI6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoK
K2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmco
MSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpE
ZWYsIEdQLCAzMik7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAz
Mik7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOwor
YnJlYWs7Cit9CiticmVhazsKK2Nhc2UgQW5kNjQ6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgp
IHsKK2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2lu
c3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwg
ZnVuYywgQXJnLkRlZiwgR1AsIDY0KTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFyZygw
LCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNl
RGVmLCBHUCwgNjQpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3Zl
cmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIEFuZERvdWJsZToKK3N3aXRjaCAoaW5z
dC5hcmdzLmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
LCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5z
dC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworYnJlYWs7CitjYXNlIDI6Citp
bnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcg
RXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgQW5kRmxvYXQ6
Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwg
RlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsKK2JyZWFr
OworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5z
dC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgMzIpOworYnJlYWs7CitkZWZhdWx0
OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7Citj
YXNlIFhvckRvdWJsZToKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSAzOgoraW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBm
dW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBG
UCwgNjQpOworYnJlYWs7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCA2NCk7Citi
cmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7
Cit9CiticmVhazsKK2Nhc2UgWG9yRmxvYXQ6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsK
K2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVu
YywgQXJnLkRlZiwgRlAsIDMyKTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVm
LCBGUCwgMzIpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3Zlcmxv
YWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIExzaGlmdDMyOgorc3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZp
c2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CitjYXNlIDI6CitpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworYnJlYWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVy
cm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7CitjYXNlIExzaGlmdDY0Ogor
c3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgNjQpOworYnJlYWs7
CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CiticmVhazsKK2RlZmF1bHQ6
Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nh
c2UgUnNoaWZ0MzI6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2luc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQ
LCAzMik7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7Citi
cmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7
Cit9CiticmVhazsKK2Nhc2UgUnNoaWZ0NjQ6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsK
K2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVu
YywgQXJnLlpEZWYsIEdQLCA2NCk7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURl
ZiwgR1AsIDY0KTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJs
b2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBVcnNoaWZ0MzI6Citzd2l0Y2ggKGluc3Qu
YXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3Qu
dmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2Nhc2UgMjoKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcg
RXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgVXJzaGlmdDY0
Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgNjQpOworYnJl
YWs7CitjYXNlIDI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7Citp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CiticmVhazsKK2RlZmF1
bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsK
K2Nhc2UgT3IzMjoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuWkRlZiwgR1As
IDMyKTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBH
UCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKK2Jy
ZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsK
K30KK2JyZWFrOworY2FzZSBPcjY0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CitjYXNl
IDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFy
Zy5EZWYsIEdQLCA2NCk7CiticmVhazsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgR1As
IDY0KTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7
CiticmVhazsKK30KK2JyZWFrOworY2FzZSBYb3IzMjoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworY2FzZSAyOgoraW5zdC52aXNpdEFy
ZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcu
VXNlWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFk
IG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBYb3I2NDoKK3N3aXRjaCAoaW5z
dC5hcmdzLmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
LCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5z
dC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworYnJlYWs7CitjYXNlIDI6Citp
bnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcg
RXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgTm90MzI6Citz
d2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlpEZWYsIEdQ
LCAzMik7CiticmVhazsKK2Nhc2UgMToKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZVpE
ZWYsIEdQLCAzMik7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVy
bG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nhc2UgTm90NjQ6Citzd2l0Y2ggKGluc3QuYXJn
cy5sZW5ndGgpIHsKK2Nhc2UgMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1As
IDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgR1AsIDY0KTsKK2JyZWFrOwor
Y2FzZSAxOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworYnJl
YWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOwor
fQorYnJlYWs7CitjYXNlIEFic0RvdWJsZToKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2Jy
ZWFrOworYnJlYWs7CitjYXNlIEFic0Zsb2F0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgMzIpOwor
YnJlYWs7CiticmVhazsKK2Nhc2UgQ2VpbERvdWJsZToKK2luc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0
KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIENlaWxGbG9hdDoKK2luc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAs
IDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIEZsb29yRG91YmxlOgoraW5zdC52aXNpdEFyZygw
LCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVm
LCBGUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgRmxvb3JGbG9hdDoKK2luc3QudmlzaXRB
cmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LkRlZiwgRlAsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIFNxcnREb3VibGU6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBTcXJ0RmxvYXQ6CitpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5EZWYsIEZQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBDb252ZXJ0SW50MzJU
b0RvdWJsZToKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNl
IENvbnZlcnRJbnQ2NFRvRG91YmxlOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBH
UCwgNjQpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworYnJlYWs7
CiticmVhazsKK2Nhc2UgQ29udmVydEludDMyVG9GbG9hdDoKK2luc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAs
IDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIENvbnZlcnRJbnQ2NFRvRmxvYXQ6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5EZWYsIEZQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBDb3VudExlYWRpbmdaZXJv
czMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIENv
dW50TGVhZGluZ1plcm9zNjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2
NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7CiticmVhazsKK2Jy
ZWFrOworY2FzZSBDb252ZXJ0RG91YmxlVG9GbG9hdDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDMy
KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIENvbnZlcnRGbG9hdFRvRG91YmxlOgoraW5zdC52aXNp
dEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuRGVmLCBGUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgTW92ZToKK2luc3QudmlzaXRB
cmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5EZWYsIEdQLCBQdHIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgU3dhcDMyOgoraW5zdC52aXNp
dEFyZygwLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgU3dhcDY0OgoraW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygx
LCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgTW92ZTMy
OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIFN0b3Jl
WmVybzMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworYnJlYWs7
CiticmVhazsKK2Nhc2UgU2lnbkV4dGVuZDMyVG9QdHI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCBQ
dHIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgWmVyb0V4dGVuZDhUbzMyOgoraW5zdC52aXNpdEFy
ZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5a
RGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgU2lnbkV4dGVuZDhUbzMyOgoraW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgWmVyb0V4dGVuZDE2
VG8zMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDE2KTsKK2luc3Qudmlz
aXRBcmcoMSwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBT
aWduRXh0ZW5kMTZUbzMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMTYp
OworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJl
YWs7CitjYXNlIE1vdmVGbG9hdDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAs
IDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsKK2JyZWFrOwor
YnJlYWs7CitjYXNlIE1vdmVEb3VibGU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CiticmVh
azsKK2JyZWFrOworY2FzZSBNb3ZlWmVyb1RvRG91YmxlOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuRGVmLCBGUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgTW92ZTY0VG9Eb3VibGU6
CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBNb3ZlMzJU
b0Zsb2F0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2Ug
TW92ZURvdWJsZVRvNjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7
CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7CiticmVhazsKK2JyZWFr
OworY2FzZSBNb3ZlRmxvYXRUbzMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBG
UCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwgMzIpOworYnJlYWs7
CiticmVhazsKK2Nhc2UgTG9hZDg6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCA4KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsK
K2JyZWFrOworY2FzZSBTdG9yZTg6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCA4KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgR1AsIDgpOworYnJlYWs7Citi
cmVhazsKK2Nhc2UgTG9hZDhTaWduZWRFeHRlbmRUbzMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgOCk7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwg
MzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgTG9hZDE2OgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMTYpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1As
IDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIExvYWQxNlNpZ25lZEV4dGVuZFRvMzI6CitpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAxNik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgU3RvcmUxNjoKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDE2KTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLkRlZiwgR1AsIDE2KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIENvbXBhcmUzMjoK
K2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmco
MSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7Citi
cmVhazsKK2JyZWFrOworY2FzZSBDb21wYXJlNjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFy
Zy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7
CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJn
KDMsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgVGVzdDMy
OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcu
VXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsK
K2JyZWFrOworYnJlYWs7CitjYXNlIFRlc3Q2NDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsK
K2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmco
MywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBDb21wYXJl
RG91YmxlOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5j
LCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRlZiwgR1As
IDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIENvbXBhcmVGbG9hdDoKK2luc3QudmlzaXRBcmco
MCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVz
ZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2lu
c3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOwor
Y2FzZSBCcmFuY2g4OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7CitpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCA4KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIEJyYW5jaDMyOgor
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygx
LCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNl
LCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQnJhbmNoNjQ6CitpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5V
c2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7Citi
cmVhazsKK2JyZWFrOworY2FzZSBCcmFuY2hUZXN0ODoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDgp
OworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7CiticmVhazsKK2JyZWFr
OworY2FzZSBCcmFuY2hUZXN0MzI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZp
c2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CiticmVhazsKK2JyZWFrOworY2FzZSBC
cmFuY2hUZXN0NjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7Citp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBCcmFuY2hEb3Vi
bGU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFy
Zy5Vc2UsIEZQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBCcmFuY2hGbG9hdDoKK2luc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAs
IDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNlIEJyYW5jaEFkZDMyOgorc3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7CitjYXNlIDQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZp
c2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMs
IEFyZy5aRGVmLCBHUCwgMzIpOworYnJlYWs7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworYnJl
YWs7CitkZWZhdWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOwor
fQorYnJlYWs7CitjYXNlIEJyYW5jaEFkZDY0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CitjYXNlIDQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5aRGVmLCBH
UCwgNjQpOworYnJlYWs7CitjYXNlIDM6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CiticmVhazsKK2RlZmF1bHQ6
Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nh
c2UgQnJhbmNoTXVsMzI6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKK2Nhc2UgMzoKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZVpE
ZWYsIEdQLCAzMik7CiticmVhazsKK2Nhc2UgNDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsK
K2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmco
MywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CiticmVhazsKK2Nhc2UgNjoKK2luc3QudmlzaXRB
cmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsK
K2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlNjcmF0Y2gsIEdQLCAzMik7CitpbnN0LnZpc2l0
QXJnKDQsIGZ1bmMsIEFyZy5TY3JhdGNoLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZyg1LCBmdW5j
LCBBcmcuWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworZGVmYXVsdDoKK3Rocm93IG5ldyBFcnJvcigi
QmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFrOworY2FzZSBCcmFuY2hNdWw2NDoKK3N3
aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworY2FzZSAzOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwg
NjQpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKK2JyZWFr
OworY2FzZSA2OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5z
dC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygyLCBm
dW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuU2NyYXRj
aCwgR1AsIDY0KTsKK2luc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlNjcmF0Y2gsIEdQLCA2NCk7
CitpbnN0LnZpc2l0QXJnKDUsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgNjQpOworYnJlYWs7CitkZWZh
dWx0OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7
CitjYXNlIEJyYW5jaFN1YjMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwg
MzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNp
dEFyZygyLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKK2JyZWFrOworYnJlYWs7CitjYXNl
IEJyYW5jaFN1YjY0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2UgQnJhbmNo
TmVnMzI6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZp
c2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nh
c2UgQnJhbmNoTmVnNjQ6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7
CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgNjQpOworYnJlYWs7Citi
cmVhazsKK2Nhc2UgTW92ZUNvbmRpdGlvbmFsbHkzMjoKK3N3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworY2FzZSA1OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNl
LCBHUCwgUHRyKTsKK2luc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIFB0cik7
CiticmVhazsKK2Nhc2UgNjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMy
KTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRB
cmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJn
LlVzZSwgR1AsIFB0cik7CitpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIp
OworaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKK2JyZWFrOworZGVm
YXVsdDoKK3Rocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CiticmVhazsKK30KK2JyZWFr
OworY2FzZSBNb3ZlQ29uZGl0aW9uYWxseTY0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CitjYXNlIDU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCBQdHIpOworaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKK2Jy
ZWFrOworY2FzZSA2OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNl
LCBHUCwgUHRyKTsKK2luc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7Citp
bnN0LnZpc2l0QXJnKDUsIGZ1bmMsIEFyZy5EZWYsIEdQLCBQdHIpOworYnJlYWs7CitkZWZhdWx0
OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7Citj
YXNlIE1vdmVDb25kaXRpb25hbGx5VGVzdDMyOgorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CitjYXNlIDU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCBQdHIpOworaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKK2Jy
ZWFrOworY2FzZSA2OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNl
LCBHUCwgUHRyKTsKK2luc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7Citp
bnN0LnZpc2l0QXJnKDUsIGZ1bmMsIEFyZy5EZWYsIEdQLCBQdHIpOworYnJlYWs7CitkZWZhdWx0
OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7Citj
YXNlIE1vdmVDb25kaXRpb25hbGx5VGVzdDY0Ogorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CitjYXNlIDU6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCBQdHIpOworaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKK2Jy
ZWFrOworY2FzZSA2OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNl
LCBHUCwgUHRyKTsKK2luc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7Citp
bnN0LnZpc2l0QXJnKDUsIGZ1bmMsIEFyZy5EZWYsIEdQLCBQdHIpOworYnJlYWs7CitkZWZhdWx0
OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7Citj
YXNlIE1vdmVDb25kaXRpb25hbGx5RG91YmxlOgorc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CitjYXNlIDY6CitpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCBQdHIpOworaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKK2luc3Qu
dmlzaXRBcmcoNSwgZnVuYywgQXJnLkRlZiwgR1AsIFB0cik7CiticmVhazsKK2Nhc2UgNToKK2lu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwg
RlAsIDY0KTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CitpbnN0
LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworYnJlYWs7CitkZWZhdWx0
OgordGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKK2JyZWFrOworfQorYnJlYWs7Citj
YXNlIE1vdmVDb25kaXRpb25hbGx5RmxvYXQ6Citzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsK
K2Nhc2UgNjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVu
YywgQXJnLlVzZSwgRlAsIDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1As
IFB0cik7CitpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworaW5zdC52
aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKK2JyZWFrOworY2FzZSA1OgoraW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBm
dW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBG
UCwgMzIpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKK2luc3Qu
dmlzaXRBcmcoNCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIFB0cik7CiticmVhazsKK2RlZmF1bHQ6
Cit0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworYnJlYWs7Cit9CiticmVhazsKK2Nh
c2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkzMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsK
K2luc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmco
MywgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlVz
ZSwgRlAsIDY0KTsKK2luc3QudmlzaXRBcmcoNSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2Jy
ZWFrOworYnJlYWs7CitjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5NjQ6CitpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5Vc2UsIEdQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7
CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJn
KDQsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDUsIGZ1bmMsIEFyZy5E
ZWYsIEZQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9uYWxs
eVRlc3QzMjoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMiwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKK2luc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgRlAs
IDY0KTsKK2luc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKK2luc3Qudmlz
aXRBcmcoNSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE1v
dmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDY0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlLCBHUCwgMzIpOworaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOwor
aW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworaW5zdC52aXNpdEFyZygz
LCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNl
LCBGUCwgNjQpOworaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworYnJl
YWs7CiticmVhazsKK2Nhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlEb3VibGU6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CitpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2
NCk7CitpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0
QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CitpbnN0LnZpc2l0QXJnKDUsIGZ1bmMsIEFy
Zy5EZWYsIEZQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBNb3ZlRG91YmxlQ29uZGl0aW9u
YWxseUZsb2F0OgoraW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworaW5z
dC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygyLCBm
dW5jLCBBcmcuVXNlLCBGUCwgMzIpOworaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBG
UCwgNjQpOworaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworaW5zdC52
aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworYnJlYWs7CiticmVhazsKK2Nhc2Ug
SnVtcDoKK2JyZWFrOworYnJlYWs7CitjYXNlIFJldDMyOgoraW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworYnJlYWs7CiticmVhazsKK2Nhc2UgUmV0NjQ6CitpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CiticmVhazsKK2JyZWFrOworY2FzZSBS
ZXRGbG9hdDoKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKK2JyZWFr
OworYnJlYWs7CitjYXNlIFJldERvdWJsZToKK2luc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgRlAsIDY0KTsKK2JyZWFrOworYnJlYWs7CitjYXNlIE9vcHM6CiticmVhazsKK2JyZWFrOwor
Y2FzZSBTaHVmZmxlOgorU2h1ZmZsZUN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOworYnJl
YWs7CitjYXNlIFBhdGNoOgorUGF0Y2hDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKK2Jy
ZWFrOworY2FzZSBDQ2FsbDoKK0NDYWxsQ3VzdG9tLmZvckVhY2hBcmcoaW5zdCwgZnVuYyk7Citi
cmVhazsKK2Nhc2UgQ29sZENDYWxsOgorQ29sZENDYWxsQ3VzdG9tLmZvckVhY2hBcmcoaW5zdCwg
ZnVuYyk7CiticmVhazsKK2RlZmF1bHQ6Cit0aHJvdyAiQmFkIG9wY29kZSI7Cit9Cit9CitmdW5j
dGlvbiBJbnN0X2hhc05vbkFyZ0VmZmVjdHMoaW5zdCkKK3sKK3N3aXRjaCAoaW5zdC5vcGNvZGUp
IHsKK2Nhc2UgQnJhbmNoODoKK2Nhc2UgQnJhbmNoMzI6CitjYXNlIEJyYW5jaDY0OgorY2FzZSBC
cmFuY2hUZXN0ODoKK2Nhc2UgQnJhbmNoVGVzdDMyOgorY2FzZSBCcmFuY2hUZXN0NjQ6CitjYXNl
IEJyYW5jaERvdWJsZToKK2Nhc2UgQnJhbmNoRmxvYXQ6CitjYXNlIEJyYW5jaEFkZDMyOgorY2Fz
ZSBCcmFuY2hBZGQ2NDoKK2Nhc2UgQnJhbmNoTXVsMzI6CitjYXNlIEJyYW5jaE11bDY0OgorY2Fz
ZSBCcmFuY2hTdWIzMjoKK2Nhc2UgQnJhbmNoU3ViNjQ6CitjYXNlIEJyYW5jaE5lZzMyOgorY2Fz
ZSBCcmFuY2hOZWc2NDoKK2Nhc2UgSnVtcDoKK2Nhc2UgUmV0MzI6CitjYXNlIFJldDY0OgorY2Fz
ZSBSZXRGbG9hdDoKK2Nhc2UgUmV0RG91YmxlOgorY2FzZSBPb3BzOgorcmV0dXJuIHRydWU7Citj
YXNlIFNodWZmbGU6CityZXR1cm4gU2h1ZmZsZUN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZm
ZWN0cyhpbnN0KTsKK2Nhc2UgUGF0Y2g6CityZXR1cm4gUGF0Y2hDdXN0b20uaGFzTm9uQXJnTm9u
Q29udHJvbEVmZmVjdHMoaW5zdCk7CitjYXNlIENDYWxsOgorcmV0dXJuIENDYWxsQ3VzdG9tLmhh
c05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOworY2FzZSBDb2xkQ0NhbGw6CityZXR1cm4g
Q29sZENDYWxsQ3VzdG9tLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOworZGVmYXVs
dDoKK3JldHVybiBmYWxzZTsKK30KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcGF5
bG9hZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3BheWxvYWQuanMJ
KHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3BheWxvYWQuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzMDU5IEBACisvLyBHZW5lcmF0ZWQgYnkgQWlyOjpkdW1wQXNK
Uy4gRG8gbm90IGVkaXQhCitsZXQgY29kZSA9IG5ldyBDb2RlKCk7CitsZXQgYmIwID0gY29kZS5h
ZGRCbG9jaygpOworbGV0IGJiMSA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjIgPSBjb2RlLmFk
ZEJsb2NrKCk7CitsZXQgYmIzID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiNCA9IGNvZGUuYWRk
QmxvY2soKTsKK2xldCBiYjUgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmI2ID0gY29kZS5hZGRC
bG9jaygpOworbGV0IGJiNyA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjggPSBjb2RlLmFkZEJs
b2NrKCk7CitsZXQgYmI5ID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMTAgPSBjb2RlLmFkZEJs
b2NrKCk7CitsZXQgYmIxMSA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjEyID0gY29kZS5hZGRC
bG9jaygpOworbGV0IGJiMTMgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIxNCA9IGNvZGUuYWRk
QmxvY2soKTsKK2xldCBiYjE1ID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMTYgPSBjb2RlLmFk
ZEJsb2NrKCk7CitsZXQgYmIxNyA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjE4ID0gY29kZS5h
ZGRCbG9jaygpOworbGV0IGJiMTkgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIyMCA9IGNvZGUu
YWRkQmxvY2soKTsKK2xldCBiYjIxID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMjIgPSBjb2Rl
LmFkZEJsb2NrKCk7CitsZXQgYmIyMyA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjI0ID0gY29k
ZS5hZGRCbG9jaygpOworbGV0IGJiMjUgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIyNiA9IGNv
ZGUuYWRkQmxvY2soKTsKK2xldCBiYjI3ID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMjggPSBj
b2RlLmFkZEJsb2NrKCk7CitsZXQgYmIyOSA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjMwID0g
Y29kZS5hZGRCbG9jaygpOworbGV0IGJiMzEgPSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIzMiA9
IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjMzID0gY29kZS5hZGRCbG9jaygpOworbGV0IGJiMzQg
PSBjb2RlLmFkZEJsb2NrKCk7CitsZXQgYmIzNSA9IGNvZGUuYWRkQmxvY2soKTsKK2xldCBiYjM2
ID0gY29kZS5hZGRCbG9jaygpOworbGV0IHNsb3QwID0gY29kZS5hZGRTdGFja1Nsb3QoNDAsIExv
Y2tlZCk7CitsZXQgc2xvdDEgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CitsZXQgc2xv
dDIgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CitsZXQgc2xvdDMgPSBjb2RlLmFkZFN0
YWNrU2xvdCg0LCBTcGlsbCk7CitsZXQgc2xvdDQgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGls
bCk7CitsZXQgc2xvdDUgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CitsZXQgc2xvdDYg
PSBjb2RlLmFkZFN0YWNrU2xvdCg0MCwgTG9ja2VkKTsKK2xldCB0bXAxNDEgPSBjb2RlLm5ld1Rt
cChHUCk7CitsZXQgdG1wMTQwID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEzOSA9IGNvZGUu
bmV3VG1wKEdQKTsKK2xldCB0bXAxMzggPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTM3ID0g
Y29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEzNiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAx
MzUgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTM0ID0gY29kZS5uZXdUbXAoR1ApOworbGV0
IHRtcDEzMyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMzIgPSBjb2RlLm5ld1RtcChHUCk7
CitsZXQgdG1wMTMxID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEzMCA9IGNvZGUubmV3VG1w
KEdQKTsKK2xldCB0bXAxMjkgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTI4ID0gY29kZS5u
ZXdUbXAoR1ApOworbGV0IHRtcDEyNyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMjYgPSBj
b2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTI1ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEy
NCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMjMgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQg
dG1wMTIyID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEyMSA9IGNvZGUubmV3VG1wKEdQKTsK
K2xldCB0bXAxMjAgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTE5ID0gY29kZS5uZXdUbXAo
R1ApOworbGV0IHRtcDExOCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMTcgPSBjb2RlLm5l
d1RtcChHUCk7CitsZXQgdG1wMTE2ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDExNSA9IGNv
ZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMTQgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTEz
ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDExMiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0
bXAxMTEgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTEwID0gY29kZS5uZXdUbXAoR1ApOwor
bGV0IHRtcDEwOSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMDggPSBjb2RlLm5ld1RtcChH
UCk7CitsZXQgdG1wMTA3ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDEwNiA9IGNvZGUubmV3
VG1wKEdQKTsKK2xldCB0bXAxMDUgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTA0ID0gY29k
ZS5uZXdUbXAoR1ApOworbGV0IHRtcDEwMyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMDIg
PSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wMTAxID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRt
cDEwMCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA5OSA9IGNvZGUubmV3VG1wKEdQKTsKK2xl
dCB0bXA5OCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA5NyA9IGNvZGUubmV3VG1wKEdQKTsK
K2xldCB0bXA5NiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA5NSA9IGNvZGUubmV3VG1wKEdQ
KTsKK2xldCB0bXA5NCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA5MyA9IGNvZGUubmV3VG1w
KEdQKTsKK2xldCB0bXA5MiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA5MSA9IGNvZGUubmV3
VG1wKEdQKTsKK2xldCB0bXA5MCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA4OSA9IGNvZGUu
bmV3VG1wKEdQKTsKK2xldCB0bXA4OCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA4NyA9IGNv
ZGUubmV3VG1wKEdQKTsKK2xldCB0bXA4NiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA4NSA9
IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA4NCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA4
MyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA4MiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0
bXA4MSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA4MCA9IGNvZGUubmV3VG1wKEdQKTsKK2xl
dCB0bXA3OSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA3OCA9IGNvZGUubmV3VG1wKEdQKTsK
K2xldCB0bXA3NyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA3NiA9IGNvZGUubmV3VG1wKEdQ
KTsKK2xldCB0bXA3NSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA3NCA9IGNvZGUubmV3VG1w
KEdQKTsKK2xldCB0bXA3MyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA3MiA9IGNvZGUubmV3
VG1wKEdQKTsKK2xldCB0bXA3MSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA3MCA9IGNvZGUu
bmV3VG1wKEdQKTsKK2xldCB0bXA2OSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA2OCA9IGNv
ZGUubmV3VG1wKEdQKTsKK2xldCB0bXA2NyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA2NiA9
IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA2NSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA2
NCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA2MyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0
bXA2MiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA2MSA9IGNvZGUubmV3VG1wKEdQKTsKK2xl
dCB0bXA2MCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA1OSA9IGNvZGUubmV3VG1wKEdQKTsK
K2xldCB0bXA1OCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA1NyA9IGNvZGUubmV3VG1wKEdQ
KTsKK2xldCB0bXA1NiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA1NSA9IGNvZGUubmV3VG1w
KEdQKTsKK2xldCB0bXA1NCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA1MyA9IGNvZGUubmV3
VG1wKEdQKTsKK2xldCB0bXA1MiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA1MSA9IGNvZGUu
bmV3VG1wKEdQKTsKK2xldCB0bXA1MCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA0OSA9IGNv
ZGUubmV3VG1wKEdQKTsKK2xldCB0bXA0OCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA0NyA9
IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA0NiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA0
NSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA0NCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0
bXA0MyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA0MiA9IGNvZGUubmV3VG1wKEdQKTsKK2xl
dCB0bXA0MSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA0MCA9IGNvZGUubmV3VG1wKEdQKTsK
K2xldCB0bXAzOSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAzOCA9IGNvZGUubmV3VG1wKEdQ
KTsKK2xldCB0bXAzNyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAzNiA9IGNvZGUubmV3VG1w
KEdQKTsKK2xldCB0bXAzNSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAzNCA9IGNvZGUubmV3
VG1wKEdQKTsKK2xldCB0bXAzMyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAzMiA9IGNvZGUu
bmV3VG1wKEdQKTsKK2xldCB0bXAzMSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAzMCA9IGNv
ZGUubmV3VG1wKEdQKTsKK2xldCB0bXAyOSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAyOCA9
IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAyNyA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAy
NiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAyNSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0
bXAyNCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAyMyA9IGNvZGUubmV3VG1wKEdQKTsKK2xl
dCB0bXAyMiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAyMSA9IGNvZGUubmV3VG1wKEdQKTsK
K2xldCB0bXAyMCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxOSA9IGNvZGUubmV3VG1wKEdQ
KTsKK2xldCB0bXAxOCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxNyA9IGNvZGUubmV3VG1w
KEdQKTsKK2xldCB0bXAxNiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxNSA9IGNvZGUubmV3
VG1wKEdQKTsKK2xldCB0bXAxNCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMyA9IGNvZGUu
bmV3VG1wKEdQKTsKK2xldCB0bXAxMiA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMSA9IGNv
ZGUubmV3VG1wKEdQKTsKK2xldCB0bXAxMCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA5ID0g
Y29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDggPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNyA9
IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXA2ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDUg
PSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1wNCA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAz
ID0gY29kZS5uZXdUbXAoR1ApOworbGV0IHRtcDIgPSBjb2RlLm5ld1RtcChHUCk7CitsZXQgdG1w
MSA9IGNvZGUubmV3VG1wKEdQKTsKK2xldCB0bXAwID0gY29kZS5uZXdUbXAoR1ApOworbGV0IGZ0
bXA3NCA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNzMgPSBjb2RlLm5ld1RtcChGUCk7Cits
ZXQgZnRtcDcyID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA3MSA9IGNvZGUubmV3VG1wKEZQ
KTsKK2xldCBmdG1wNzAgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDY5ID0gY29kZS5uZXdU
bXAoRlApOworbGV0IGZ0bXA2OCA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNjcgPSBjb2Rl
Lm5ld1RtcChGUCk7CitsZXQgZnRtcDY2ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA2NSA9
IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNjQgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRt
cDYzID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA2MiA9IGNvZGUubmV3VG1wKEZQKTsKK2xl
dCBmdG1wNjEgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDYwID0gY29kZS5uZXdUbXAoRlAp
OworbGV0IGZ0bXA1OSA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNTggPSBjb2RlLm5ld1Rt
cChGUCk7CitsZXQgZnRtcDU3ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA1NiA9IGNvZGUu
bmV3VG1wKEZQKTsKK2xldCBmdG1wNTUgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDU0ID0g
Y29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA1MyA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1w
NTIgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDUxID0gY29kZS5uZXdUbXAoRlApOworbGV0
IGZ0bXA1MCA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNDkgPSBjb2RlLm5ld1RtcChGUCk7
CitsZXQgZnRtcDQ4ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA0NyA9IGNvZGUubmV3VG1w
KEZQKTsKK2xldCBmdG1wNDYgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDQ1ID0gY29kZS5u
ZXdUbXAoRlApOworbGV0IGZ0bXA0NCA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNDMgPSBj
b2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDQyID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXA0
MSA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wNDAgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQg
ZnRtcDM5ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAzOCA9IGNvZGUubmV3VG1wKEZQKTsK
K2xldCBmdG1wMzcgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDM2ID0gY29kZS5uZXdUbXAo
RlApOworbGV0IGZ0bXAzNSA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMzQgPSBjb2RlLm5l
d1RtcChGUCk7CitsZXQgZnRtcDMzID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAzMiA9IGNv
ZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMzEgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDMw
ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAyOSA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBm
dG1wMjggPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDI3ID0gY29kZS5uZXdUbXAoRlApOwor
bGV0IGZ0bXAyNiA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMjUgPSBjb2RlLm5ld1RtcChG
UCk7CitsZXQgZnRtcDI0ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAyMyA9IGNvZGUubmV3
VG1wKEZQKTsKK2xldCBmdG1wMjIgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDIxID0gY29k
ZS5uZXdUbXAoRlApOworbGV0IGZ0bXAyMCA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMTkg
PSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDE4ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0
bXAxNyA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMTYgPSBjb2RlLm5ld1RtcChGUCk7Cits
ZXQgZnRtcDE1ID0gY29kZS5uZXdUbXAoRlApOworbGV0IGZ0bXAxNCA9IGNvZGUubmV3VG1wKEZQ
KTsKK2xldCBmdG1wMTMgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDEyID0gY29kZS5uZXdU
bXAoRlApOworbGV0IGZ0bXAxMSA9IGNvZGUubmV3VG1wKEZQKTsKK2xldCBmdG1wMTAgPSBjb2Rl
Lm5ld1RtcChGUCk7CitsZXQgZnRtcDkgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDggPSBj
b2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDcgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDYg
PSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDUgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRt
cDQgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDMgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQg
ZnRtcDIgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgZnRtcDEgPSBjb2RlLm5ld1RtcChGUCk7Cits
ZXQgZnRtcDAgPSBjb2RlLm5ld1RtcChGUCk7CitsZXQgaW5zdDsKK2xldCBhcmc7CitiYjAuc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyLCBOb3JtYWwpKTsKK2JiMC5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEsIFJhcmUpKTsKK2luc3QgPSBuZXcg
SW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ4OTYwNDg0OCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlQWRkcihSZWcucmJwLCAxNik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3Qu
cGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2lu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5TY3JhdGNoLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
YXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDg3ODQ2MTEyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Ji
MC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRl
QWRkcihSZWcucmF4LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7Citp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3Zl
KTsKK2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ4Nzg0NjEyOCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNy
ZWF0ZUFkZHIoUmVnLnJheCwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3Qp
OworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDg3ODQ2
MTM2KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAwKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBB
cmcuY3JlYXRlQmlnSW1tKDQ0ODc4NDYxNDQpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVu
ZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVBZGRyKFJl
Zy5yYXgsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ4Nzg0NjE1Mik7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
YXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjAu
YXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUJp
Z0ltbSg0NDg3ODQ2MTYwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7Citp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAwKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CithcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0ODc4NDYxNjgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYmIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5j
cmVhdGVBZGRyKFJlZy5yYXgsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVuZChpbnN0
KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ4Nzg0
NjE3Nik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0g
QXJnLmNyZWF0ZUJpZ0ltbSg0NDg3ODQ2MTg0KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBl
bmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucmRpLCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0g
bmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQmlnSW1tKC0yODE0NzQ5NzY3MTA2NTYp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYmIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChB
ZGQ2NCk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5h
cHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTY0VG9Eb3VibGUpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMC5hcHBlbmQoaW5zdCk7
CitpbnN0ID0gbmV3IEluc3QoQnJhbmNoRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVEb3VibGVD
b25kKERvdWJsZUVxdWFsKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjAuYXBwZW5kKGluc3QpOworYmIx
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMiwgTm9ybWFsKSk7CitiYjEu
cHJlZGVjZXNzb3JzLnB1c2goYmIwKTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQmVsb3cpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1
ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworYmIxLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChDb252ZXJ0SW50MzJUb0Rv
dWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2JiMS5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoSnVtcCk7CitiYjEuYXBwZW5kKGlu
c3QpOworYmIyLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiNCwgTm9ybWFs
KSk7CitiYjIuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzLCBSYXJlKSk7
CitiYjIucHJlZGVjZXNzb3JzLnB1c2goYmIwKTsKK2JiMi5wcmVkZWNlc3NvcnMucHVzaChiYjEp
OworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNr
KHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJz
aSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitiYjIuYXBwZW5kKGluc3Qp
OworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNr
KHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJz
aSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitiYjIuYXBwZW5kKGluc3Qp
OworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNr
KHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJz
aSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitiYjIuYXBwZW5kKGluc3Qp
OworaW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYmIyLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlNjRU
b0RvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYmIyLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChCcmFuY2hEb3VibGUpOworYXJn
ID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlRXF1YWwpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Ji
Mi5hcHBlbmQoaW5zdCk7CitiYjMuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2so
YmI0LCBOb3JtYWwpKTsKK2JiMy5wcmVkZWNlc3NvcnMucHVzaChiYjIpOworaW5zdCA9IG5ldyBJ
bnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29u
ZChCZWxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJieCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhh
c05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRj
aEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitiYjMuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJ
bnN0KENvbnZlcnRJbnQzMlRvRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYmIzLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChK
dW1wKTsKK2JiMy5hcHBlbmQoaW5zdCk7CitiYjQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVu
dGVkQmxvY2soYmI2LCBOb3JtYWwpKTsKK2JiNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50
ZWRCbG9jayhiYjUsIFJhcmUpKTsKK2JiNC5wcmVkZWNlc3NvcnMucHVzaChiYjIpOworYmI0LnBy
ZWRlY2Vzc29ycy5wdXNoKGJiMyk7CitpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnI4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjQuYXBwZW5kKGluc3QpOworaW5z
dCA9IG5ldyBJbnN0KE1vdmU2NFRvRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0
KEJyYW5jaERvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZChEb3VibGVFcXVhbCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYmI0LmFwcGVuZChpbnN0KTsKK2JiNS5zdWNjZXNzb3JzLnB1c2go
bmV3IEZyZXF1ZW50ZWRCbG9jayhiYjYsIE5vcm1hbCkpOworYmI1LnByZWRlY2Vzc29ycy5wdXNo
KGJiNCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
U3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFy
bHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2JiNS5hcHBlbmQo
aW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQ29udmVydEludDMyVG9Eb3VibGUpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjUuYXBwZW5kKGluc3Qp
OworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmI1LmFwcGVuZChpbnN0KTsKK2JiNi5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjgsIE5vcm1hbCkpOworYmI2LnN1Y2Nlc3Nv
cnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiNywgUmFyZSkpOworYmI2LnByZWRlY2Vzc29y
cy5wdXNoKGJiNCk7CitiYjYucHJlZGVjZXNzb3JzLnB1c2goYmI1KTsKK2luc3QgPSBuZXcgSW5z
dChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQo
QmVsb3cpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNO
b25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hB
cmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworYmI2LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChBZGQ2NCk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Ji
Ni5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTY0VG9Eb3VibGUpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiNi5hcHBlbmQoaW5z
dCk7CitpbnN0ID0gbmV3IEluc3QoQnJhbmNoRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVEb3Vi
bGVDb25kKERvdWJsZUVxdWFsKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjYuYXBwZW5kKGluc3QpOwor
YmI3LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiOCwgTm9ybWFsKSk7Citi
YjcucHJlZGVjZXNzb3JzLnB1c2goYmI2KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQmVsb3cpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0g
dHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworYmI3LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChDb252ZXJ0SW50MzJU
b0RvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2JiNy5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoSnVtcCk7CitiYjcuYXBwZW5k
KGluc3QpOworYmI4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTAsIE5v
cm1hbCkpOworYmI4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiOSwgUmFy
ZSkpOworYmI4LnByZWRlY2Vzc29ycy5wdXNoKGJiNik7CitiYjgucHJlZGVjZXNzb3JzLnB1c2go
YmI3KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ2
MjQ4OTczNik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiOC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3
IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjgsIDApOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI5KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CitiYjguYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnI5KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnI4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjguYXBwZW5kKGluc3QpOwor
aW5zdCA9IG5ldyBJbnN0KE1vdmU2NFRvRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnI4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW02
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjguYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJ
bnN0KEJyYW5jaERvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZChEb3VibGVFcXVh
bCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNik7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNik7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYmI4LmFwcGVuZChpbnN0KTsKK2JiOS5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEwLCBOb3JtYWwpKTsKK2JiOS5wcmVkZWNlc3NvcnMu
cHVzaChiYjgpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjEyKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFF
YXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworYmI5LmFwcGVu
ZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChDb252ZXJ0SW50MzJUb0RvdWJsZSk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yOSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tNik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmI5LmFwcGVuZChpbnN0
KTsKK2luc3QgPSBuZXcgSW5zdChKdW1wKTsKK2JiOS5hcHBlbmQoaW5zdCk7CitiYjEwLnN1Y2Nl
c3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTgsIE5vcm1hbCkpOworYmIxMC5wcmVk
ZWNlc3NvcnMucHVzaChiYjgpOworYmIxMC5wcmVkZWNlc3NvcnMucHVzaChiYjkpOworaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDg5ODA1NTI4KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Ji
MTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CithcmcgPSBBcmcuY3Jl
YXRlQWRkcihSZWcucjksIC04KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yOCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIxMC5hcHBlbmQoaW5zdCk7
CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0ODk4MDU0
ODgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIxMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVSZWxDb25k
KE5vdEVxdWFsKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucmRpLCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDgw
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0ODk4MDU0
ODgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwg
MCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3Qu
cGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2lu
c3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworYmIxMC5hcHBlbmQoaW5zdCk7CitpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0ODk4MDU0OTYpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYmIxMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CithcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmRpLCAwKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
U3RhY2soc2xvdDIsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMTAuYXBwZW5kKGluc3Qp
OworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1v
dmUzMik7CithcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmRpLCAtOCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CitiYjEwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDMsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMTAuYXBwZW5k
KGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmVaZXJvVG9Eb3VibGUpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tNyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIxMC5hcHBlbmQoaW5z
dCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDEwKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDQsIDApOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSgtMjgxNDc0OTc2NzEwNjU0KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2JiMTAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIx
MC5hcHBlbmQoaW5zdCk7CitiYjExLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2Nr
KGJiMTMsIE5vcm1hbCkpOworYmIxMS5wcmVkZWNlc3NvcnMucHVzaChiYjM1KTsKK2luc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CitiYjExLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9
IEFyZy5jcmVhdGVJbW0oMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjExLmFwcGVuZChpbnN0KTsK
K2luc3QgPSBuZXcgSW5zdChKdW1wKTsKK2JiMTEuYXBwZW5kKGluc3QpOworYmIxMi5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEzLCBOb3JtYWwpKTsKK2JiMTIucHJlZGVj
ZXNzb3JzLnB1c2goYmIzNCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEyLmFwcGVuZChpbnN0KTsK
K2luc3QgPSBuZXcgSW5zdChKdW1wKTsKK2JiMTIuYXBwZW5kKGluc3QpOworYmIxMy5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE1LCBOb3JtYWwpKTsKK2JiMTMucHJlZGVj
ZXNzb3JzLnB1c2goYmIxMSk7CitiYjEzLnByZWRlY2Vzc29ycy5wdXNoKGJiMTIpOworaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUltbSgtNik7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CitiYjEzLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlRG91YmxlKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTcpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMTMuYXBw
ZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmVEb3VibGUpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tNyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIxMy5hcHBlbmQoaW5zdCk7Citp
bnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW03
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjEzLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChNb3ZlRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTcpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2JiMTMuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIx
My5hcHBlbmQoaW5zdCk7CitiYjE0LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2Nr
KGJiMTUsIE5vcm1hbCkpOworYmIxNC5wcmVkZWNlc3NvcnMucHVzaChiYjMxKTsKK2luc3QgPSBu
ZXcgSW5zdChNb3ZlMzIpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2JiMTQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIx
NC5hcHBlbmQoaW5zdCk7CitiYjE1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2Nr
KGJiMjgsIE5vcm1hbCkpOworYmIxNS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9j
ayhiYjE2LCBOb3JtYWwpKTsKK2JiMTUucHJlZGVjZXNzb3JzLnB1c2goYmIxMyk7CitiYjE1LnBy
ZWRlY2Vzc29ycy5wdXNoKGJiMTQpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZm
ZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDog
NjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2JiMTUuYXBwZW5kKGluc3QpOworaW5zdCA9
IG5ldyBJbnN0KEJyYW5jaDMyKTsKK2FyZyA9IEFyZy5jcmVhdGVSZWxDb25kKExlc3NUaGFuKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0oMCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYmIxNS5hcHBlbmQoaW5zdCk7CitiYjE2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJl
cXVlbnRlZEJsb2NrKGJiMjksIE5vcm1hbCkpOworYmIxNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZy
ZXF1ZW50ZWRCbG9jayhiYjE3LCBOb3JtYWwpKTsKK2JiMTYucHJlZGVjZXNzb3JzLnB1c2goYmIx
NSk7CitpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQo
R3JlYXRlclRoYW5PckVxdWFsKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJ
bW0oMjY3KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjE2LmFwcGVuZChpbnN0KTsKK2JiMTcu
c3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxOCwgTm9ybWFsKSk7CitiYjE3
LnByZWRlY2Vzc29ycy5wdXNoKGJiMTYpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMTcuYXBwZW5kKGlu
c3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUltbSgtNik7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CitiYjE3LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChKdW1w
KTsKK2JiMTcuYXBwZW5kKGluc3QpOworYmIxOC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50
ZWRCbG9jayhiYjIwLCBOb3JtYWwpKTsKK2JiMTguc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVu
dGVkQmxvY2soYmIxOSwgUmFyZSkpOworYmIxOC5wcmVkZWNlc3NvcnMucHVzaChiYjEwKTsKK2Ji
MTgucHJlZGVjZXNzb3JzLnB1c2goYmIxNyk7CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIxOC5hcHBl
bmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVTdGFjayhzbG90MSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOwor
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9i
YmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
TGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDog
NjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2JiMTguYXBwZW5kKGluc3QpOworaW5zdCA9
IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
UmVzQ29uZChPdmVyZmxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1t
KDQwMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEx
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDAp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
aW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29s
ZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CitiYjE4LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChCcmFuY2hU
ZXN0MzIpOworYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2JiMTguYXBwZW5kKGluc3QpOworYmIxOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRC
bG9jayhiYjIwLCBOb3JtYWwpKTsKK2JiMTkucHJlZGVjZXNzb3JzLnB1c2goYmIxOCk7CitpbnN0
ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVSZWxDb25kKExlc3NUaGFuKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJ
bW0oMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1
LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0y
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDAp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdp
ZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitiYjE5LmFwcGVuZChpbnN0KTsKK2luc3Qg
PSBuZXcgSW5zdChKdW1wKTsKK2JiMTkuYXBwZW5kKGluc3QpOworYmIyMC5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIyLCBOb3JtYWwpKTsKK2JiMjAucHJlZGVjZXNzb3Jz
LnB1c2goYmIxOCk7CitiYjIwLnByZWRlY2Vzc29ycy5wdXNoKGJiMTkpOworaW5zdCA9IG5ldyBJ
bnN0KE1vdmUzMik7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYmIyMC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUnNoaWZ0MzIpOworYXJn
ID0gQXJnLmNyZWF0ZUltbSgzMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjIwLmFwcGVuZChpbnN0
KTsKK2luc3QgPSBuZXcgSW5zdChBZGQzMik7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CitiYjIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChYb3Iz
Mik7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjIwLmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4pOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZUltbSgwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVTdGFjayhzbG90MSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOwor
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9i
YmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2JiMjAuYXBw
ZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92ZU9yRXF1YWwpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QzLCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVj
dHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2lu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBb
XTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9
KTsKK2JiMjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3QyLCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjAuYXBwZW5kKGlu
c3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5y
c2ksIFJlZy5yZGksIDgsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyMC5hcHBlbmQoaW5zdCk7
CitpbnN0ID0gbmV3IEluc3QoTW92ZSk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDEwKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2JiMjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmVDb25k
aXRpb25hbGx5VGVzdDY0KTsKK2FyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSgtMSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyMC5h
cHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3QxLCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9
KTsKK2JiMjAuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSg3OSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVj
dHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2lu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBb
XTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CitiYjIwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsK
K2FyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIy
MC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKK2FyZyA9IEFyZy5jcmVh
dGVBZGRyKFJlZy5yMTIsIC04KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjAuYXBwZW5kKGluc3Qp
OworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIyMC5hcHBlbmQoaW5zdCk7CitiYjIxLnN1Y2Nl
c3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjIsIE5vcm1hbCkpOworYmIyMS5wcmVk
ZWNlc3NvcnMucHVzaChiYjI3KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjEuYXBwZW5kKGluc3Qp
OworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIyMS5hcHBlbmQoaW5zdCk7CitiYjIyLnN1Y2Nl
c3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjUsIE5vcm1hbCkpOworYmIyMi5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIzLCBOb3JtYWwpKTsKK2JiMjIucHJl
ZGVjZXNzb3JzLnB1c2goYmIyMCk7CitiYjIyLnByZWRlY2Vzc29ycy5wdXNoKGJiMjEpOworaW5z
dCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlUmVzQ29uZChPdmVyZmxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNs
b3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEs
IDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJs
eUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
TGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CitiYjIyLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChCcmFu
Y2gzMik7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjIu
YXBwZW5kKGluc3QpOworYmIyMy5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhi
YjI2LCBOb3JtYWwpKTsKK2JiMjMuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2so
YmIyNCwgTm9ybWFsKSk7CitiYjIzLnByZWRlY2Vzc29ycy5wdXNoKGJiMjIpOworaW5zdCA9IG5l
dyBJbnN0KEJyYW5jaDMyKTsKK2FyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEdyZWF0ZXJUaGFuT3JF
cXVhbCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDQwMCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYmIyMy5hcHBlbmQoaW5zdCk7CitiYjI0LnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjcsIE5vcm1hbCkpOworYmIyNC5wcmVkZWNlc3NvcnMu
cHVzaChiYjIzKTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3QxLCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5l
eHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitiYjI0
LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZUltbSg0KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yMTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVN0YWNrKHNsb3QxLCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQ
LCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29s
ZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitiYjI0LmFwcGVuZChp
bnN0KTsKK2luc3QgPSBuZXcgSW5zdChBZGQzMik7CithcmcgPSBBcmcuY3JlYXRlSW1tKDMpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CitiYjI0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJvdmVPckVx
dWFsKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNo
SGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBh
dGNoQXJnRGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
RlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2JiMjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5l
dyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVs
Q29uZChBYm92ZU9yRXF1YWwpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxNCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhz
bG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Qx
LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworYmIyNC5hcHBlbmQoaW5z
dCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlSW5kZXgo
UmVnLnI5LCBSZWcucjE1LCA4LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0wKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjI0LmFwcGVuZChp
bnN0KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJ
bnN0KFJzaGlmdDMyKTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0oMzEpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQWRkMzIpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJieCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyNC5hcHBlbmQoaW5zdCk7Citp
bnN0ID0gbmV3IEluc3QoWG9yMzIpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVSZWxDb25kKExlc3NUaGFuKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0oMCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnhtbTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9
IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0
aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0g
bmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVS
ZWxDb25kKEFib3ZlT3JFcXVhbCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmJ4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFj
ayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNs
b3QxLCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0wKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
aW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
RlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
K2JiMjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE1vdmVEb3VibGUpOworYXJnID0g
QXJnLmNyZWF0ZUluZGV4KFJlZy5yMTIsIFJlZy5yYngsIDgsIDApOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTQpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2JiMjQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KE11bERvdWJsZSk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW0wKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW00KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0wKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjI0LmFwcGVuZChp
bnN0KTsKK2luc3QgPSBuZXcgSW5zdChBZGREb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
MSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3
IEluc3QoQWRkMzIpOworYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIy
NC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTXVsRG91YmxlKTsKK2FyZyA9IEFyZy5j
cmVhdGVJbmRleChSZWcucjksIFJlZy5yc2ksIDgsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTQpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjQu
YXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEFkZERvdWJsZSk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW0wKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjI0LmFwcGVuZChpbnN0KTsKK2lu
c3QgPSBuZXcgSW5zdChBZGQzMik7CithcmcgPSBBcmcuY3JlYXRlSW1tKDIpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CitiYjI0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChNdWxEb3VibGUpOworYXJn
ID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnIxNSwgOCwgMCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoQWRkRG91YmxlKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjQuYXBwZW5kKGlu
c3QpOworaW5zdCA9IG5ldyBJbnN0KE11bERvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlSW5kZXgo
UmVnLnI5LCBSZWcucjE0LCA4LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW00KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW00KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjI0LmFwcGVuZChpbnN0
KTsKK2luc3QgPSBuZXcgSW5zdChBZGREb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
NCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIyNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoSnVtcCk7CitiYjI0LmFwcGVuZChpbnN0KTsKK2JiMjUuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIyNywgTm9ybWFsKSk7CitiYjI1LnByZWRlY2Vzc29ycy5wdXNoKGJi
MjIpOworaW5zdCA9IG5ldyBJbnN0KEp1bXApOworYmIyNS5hcHBlbmQoaW5zdCk7CitiYjI2LnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjcsIE5vcm1hbCkpOworYmIyNi5w
cmVkZWNlc3NvcnMucHVzaChiYjIzKTsKK2luc3QgPSBuZXcgSW5zdChKdW1wKTsKK2JiMjYuYXBw
ZW5kKGluc3QpOworYmIyNy5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIx
LCBOb3JtYWwpKTsKK2JiMjcuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIz
MCwgTm9ybWFsKSk7CitiYjI3LnByZWRlY2Vzc29ycy5wdXNoKGJiMjQpOworYmIyNy5wcmVkZWNl
c3NvcnMucHVzaChiYjI2KTsKK2JiMjcucHJlZGVjZXNzb3JzLnB1c2goYmIyNSk7CitpbnN0ID0g
bmV3IEluc3QoTW92ZTMyKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CitiYjI3LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0oMSk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcp
OworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0Rh
dGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2VaRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRo
OiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
TGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6
IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitiYjI3LmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CithcmcgPSBBcmcuY3JlYXRl
UmVsQ29uZChMZXNzVGhhbik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1t
KDcpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMjcuYXBwZW5kKGluc3QpOworYmIyOC5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMxLCBOb3JtYWwpKTsKK2JiMjgucHJl
ZGVjZXNzb3JzLnB1c2goYmIxNSk7CitpbnN0ID0gbmV3IEluc3QoSnVtcCk7CitiYjI4LmFwcGVu
ZChpbnN0KTsKK2JiMjkuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMSwg
Tm9ybWFsKSk7CitiYjI5LnByZWRlY2Vzc29ycy5wdXNoKGJiMTYpOworaW5zdCA9IG5ldyBJbnN0
KEp1bXApOworYmIyOS5hcHBlbmQoaW5zdCk7CitiYjMwLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJl
cXVlbnRlZEJsb2NrKGJiMzEsIE5vcm1hbCkpOworYmIzMC5wcmVkZWNlc3NvcnMucHVzaChiYjI3
KTsKK2luc3QgPSBuZXcgSW5zdChNb3ZlKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwg
MCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjMwLmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChKdW1wKTsKK2JiMzAuYXBwZW5kKGluc3QpOworYmIzMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZy
ZXF1ZW50ZWRCbG9jayhiYjE0LCBOb3JtYWwpKTsKK2JiMzEuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIzMiwgTm9ybWFsKSk7CitiYjMxLnByZWRlY2Vzc29ycy5wdXNoKGJi
MzApOworYmIzMS5wcmVkZWNlc3NvcnMucHVzaChiYjI5KTsKK2JiMzEucHJlZGVjZXNzb3JzLnB1
c2goYmIyOCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjMxLmFwcGVuZChpbnN0KTsKK2luc3QgPSBu
ZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJl
c0NvbmQoT3ZlcmZsb3cpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJ
bW0oMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDAp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3
aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2Ji
MzEuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKK2FyZyA9IEFyZy5j
cmVhdGVSZWxDb25kKExlc3NUaGFuKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVJbW0oNyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIzMS5hcHBlbmQoaW5zdCk7CitiYjMy
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzQsIE5vcm1hbCkpOworYmIz
Mi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMzLCBSYXJlKSk7CitiYjMy
LnByZWRlY2Vzc29ycy5wdXNoKGJiMzEpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDQwMCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0
aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogRlAsIHdpZHRoOiA2NH0pOworYmIzMi5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoQnJhbmNoVGVzdDMyKTsKK2FyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CitiYjMyLmFwcGVuZChpbnN0KTsKK2JiMzMuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIzNCwgTm9ybWFsKSk7CitiYjMzLnByZWRlY2Vzc29ycy5wdXNoKGJi
MzIpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlSW1tKDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVT
dGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2lu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDog
NjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworYmIzMy5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3
IEluc3QoSnVtcCk7CitiYjMzLmFwcGVuZChpbnN0KTsKK2JiMzQuc3VjY2Vzc29ycy5wdXNoKG5l
dyBGcmVxdWVudGVkQmxvY2soYmIxMiwgTm9ybWFsKSk7CitiYjM0LnN1Y2Nlc3NvcnMucHVzaChu
ZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzUsIE5vcm1hbCkpOworYmIzNC5wcmVkZWNlc3NvcnMucHVz
aChiYjMyKTsKK2JiMzQucHJlZGVjZXNzb3JzLnB1c2goYmIzMyk7CitpbnN0ID0gbmV3IEluc3Qo
UGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92
ZXJmbG93KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3Qu
cGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2lu
c3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2Us
IHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0
ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworYmIzNC5hcHBl
bmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVJbW0oNCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
U3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0z
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KERpdkRv
dWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW02KTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CitiYjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJvdmVPckVxdWFsKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdE
YXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
K2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZChEb3VibGVOb3RFcXVhbE9yVW5v
cmRlcmVkKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0xKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0x
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2lu
c3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
K2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0p
OworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitiYjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcg
SW5zdChNb3ZlRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucjksIFJlZy5yc2ksIDgs
IDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5l
dyBJbnN0KE1vdmUzMik7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJn
RGF0YSA9IFtdOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZVpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0
aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoRGl2RG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTYpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KEFkZDMyKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVJbW0oMSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTEpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMzQuYXBwZW5kKGluc3QpOwor
aW5zdCA9IG5ldyBJbnN0KEFkZDMyKTsKK2FyZyA9IEFyZy5jcmVhdGVJbW0oMyk7CitpbnN0LmFy
Z3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92ZU9yRXF1YWwpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CitpbnN0
LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRj
aEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5w
YXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7Citi
YjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChQYXRjaCk7CitpbnN0LmFyZ3MucHVz
aChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJvdmVPckVxdWFsKTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKK2luc3QuYXJncy5wdXNoKGFy
Zyk7CithcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOwor
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cithcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZGkpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2luc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QucGF0Y2hBcmdE
YXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
RlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworYmIzNC5hcHBl
bmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVEb3VibGVDb25kKERvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQpOwor
aW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5h
cmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworaW5zdC5hcmdz
LnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3Mu
cHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNo
KGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJn
KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsK
K2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRj
aEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKK2luc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5w
YXRjaEFyZ0RhdGEgPSBbXTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Citp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRo
OiA2NH0pOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7Cith
cmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVnLnI5LCBSZWcucmRpLCA4LCAwKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CitiYjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChBZGQzMik7Cith
cmcgPSBBcmcuY3JlYXRlSW1tKDIpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucnNpKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjM0LmFwcGVuZChpbnN0KTsK
K2luc3QgPSBuZXcgSW5zdChEaXZEb3VibGUpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
Nik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7
CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3IElu
c3QoUGF0Y2gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVEb3VibGVD
b25kKERvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2Fy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTMpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5j
cmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTUpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJzaSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
Myk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0
cnVlOworaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKK2luc3QuZXh0
cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKK2lu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEZQ
LCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CitiYjM0LmFwcGVuZChpbnN0KTsKK2lu
c3QgPSBuZXcgSW5zdChNb3ZlRG91YmxlKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMp
OworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucjksIFJl
Zy5yc2ksIDgsIDApOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMzQuYXBwZW5kKGluc3QpOwor
aW5zdCA9IG5ldyBJbnN0KERpdkRvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW02
KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5z
dChQYXRjaCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNv
bmQoRG91YmxlTm90RXF1YWxPclVub3JkZXJlZCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tNSk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW01KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9
IHRydWU7CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
RlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogRlAsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworYmIzNC5hcHBlbmQoaW5zdCk7CitpbnN0ID0gbmV3
IEluc3QoTW92ZURvdWJsZSk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKK2luc3Qu
YXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVnLnI5LCBSZWcucmF4LCA4
LCAwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CitiYjM0LmFwcGVuZChpbnN0KTsKK2luc3QgPSBu
ZXcgSW5zdChNb3ZlMzIpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKK2luc3QuYXJn
cy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1
c2goYXJnKTsKK2JiMzQuYXBwZW5kKGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKK2lu
c3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7Citp
bnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKK2luc3QuYXJncy5w
dXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2go
YXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CitpbnN0LmFyZ3MucHVzaChh
cmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7
CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2lu
c3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKK2luc3QuZXh0cmFFYXJseUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
K2luc3QucGF0Y2hBcmdEYXRhID0gW107CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CitpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworYmIzNC5hcHBlbmQoaW5zdCk7
CitpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTGVz
c1RoYW4pOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZUltbSg0MDApOworaW5z
dC5hcmdzLnB1c2goYXJnKTsKK2JiMzQuYXBwZW5kKGluc3QpOworYmIzNS5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjExLCBOb3JtYWwpKTsKK2JiMzUuc3VjY2Vzc29ycy5w
dXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzNiwgTm9ybWFsKSk7CitiYjM1LnByZWRlY2Vzc29y
cy5wdXNoKGJiMzQpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMzUuYXBwZW5kKGluc3QpOworaW5zdCA9
IG5ldyBJbnN0KFBhdGNoKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRl
UmVzQ29uZChPdmVyZmxvdyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZUltbSgxKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2FyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwg
MCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
K2luc3QuYXJncy5wdXNoKGFyZyk7CitpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CitpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CitpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZVpEZWYsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKK2luc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CitiYjM1LmFw
cGVuZChpbnN0KTsKK2luc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CithcmcgPSBBcmcuY3JlYXRl
UmVsQ29uZChMZXNzVGhhbik7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBBcmcuY3JlYXRlSW1t
KDI2Nyk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIzNS5hcHBlbmQoaW5zdCk7CitiYjM2LnBy
ZWRlY2Vzc29ycy5wdXNoKGJiMzUpOworaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworYXJnID0gQXJn
LmNyZWF0ZUJpZ0ltbSg0NDg5ODA1NTIwKTsKK2luc3QuYXJncy5wdXNoKGFyZyk7CithcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworaW5zdC5hcmdzLnB1c2goYXJnKTsKK2JiMzYuYXBwZW5k
KGluc3QpOworaW5zdCA9IG5ldyBJbnN0KFJldDY0KTsKK2FyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CitpbnN0LmFyZ3MucHVzaChhcmcpOworYmIzNi5hcHBlbmQoaW5zdCk7CkluZGV4OiBQ
ZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3JlZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRl
c3RzL0pTQWlyL3JlZy5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIv
cmVnLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMzIEBACisidXNlIHN0cmljdCI7Cisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIFJlZyBl
eHRlbmRzIFRtcEJhc2UgeworICAgIGNvbnN0cnVjdG9yKGluZGV4LCB0eXBlLCBuYW1lLCBpc0Nh
bGxlZVNhdmUpCisgICAgeworICAgICAgICBzdXBlcigpOworICAgICAgICB0aGlzLl9pbmRleCA9
IGluZGV4OworICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKKyAgICAgICAgdGhpcy5fbmFtZSA9
IG5hbWU7CisgICAgICAgIHRoaXMuX2lzQ2FsbGVlU2F2ZSA9ICEhaXNDYWxsZWVTYXZlOworICAg
IH0KKyAgICAKKyAgICBzdGF0aWMgZnJvbVJlZyhyZWcpCisgICAgeworICAgICAgICByZXR1cm4g
cmVnOworICAgIH0KKyAgICAKKyAgICBnZXQgaW5kZXgoKSB7IHJldHVybiB0aGlzLl9pbmRleDsg
fQorICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQorICAgIGdldCBuYW1lKCkg
eyByZXR1cm4gdGhpcy5fbmFtZTsgfQorICAgIGdldCBpc0NhbGxlZVNhdmUoKSB7IHJldHVybiB0
aGlzLl9pc0NhbGxlZVNhdmU7IH0KKyAgICAKKyAgICBnZXQgaXNSZWcoKSB7IHJldHVybiB0cnVl
OyB9CisgICAgCisgICAgdG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICIlIiArIHRo
aXMuX25hbWU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBleHRyYWN0KGFyZykKKyAgICB7Cisg
ICAgICAgIGlmIChhcmcuaXNSZWcpCisgICAgICAgICAgICByZXR1cm4gYXJnLnJlZzsKKyAgICAg
ICAgcmV0dXJuIG51bGw7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNoRmFzdChhcmcs
IGZ1bmMpCisgICAgeworICAgICAgICByZXR1cm4gYXJnLmZvckVhY2hUbXBGYXN0KHRtcCA9PiB7
CisgICAgICAgICAgICBpZiAoIXRtcC5pc1JlZykKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICByZXR1cm4gZnVuYyh0bXApOworICAgICAgICB9KTsKKyAgICB9CisgICAgCisg
ICAgc3RhdGljIGZvckVhY2goYXJnLCBhcmdSb2xlLCBhcmdUeXBlLCBhcmdXaWR0aCwgZnVuYykK
KyAgICB7CisgICAgICAgIHJldHVybiBhcmcuZm9yRWFjaFRtcCgKKyAgICAgICAgICAgIGFyZ1Jv
bGUsIGFyZ1R5cGUsIGFyZ1dpZHRoLAorICAgICAgICAgICAgKHRtcCwgcm9sZSwgdHlwZSwgd2lk
dGgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoIXRtcC5pc1JlZykKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHJldHVybiBmdW5jKHRtcCwgcm9sZSwgdHlw
ZSwgd2lkdGgpOworICAgICAgICAgICAgfSk7CisgICAgfQorfQorCit7CisgICAgUmVnLnJlZ3Mg
PSBbXTsKKyAgICBmdW5jdGlvbiBuZXdSZWcoLi4uYXJncykKKyAgICB7CisgICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgUmVnKC4uLmFyZ3MpOworICAgICAgICBSZWcucmVncy5wdXNoKHJlc3VsdCk7
CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCisgICAgLy8gRGVmaW5lIFg4Nl82NCBH
UFJzCisgICAgeworICAgICAgICBsZXQgaW5kZXggPSAwOworICAgICAgICBmdW5jdGlvbiBuZXdH
UFIobmFtZSwgaXNDYWxsZWVTYXZlKSB7IHJldHVybiBuZXdSZWcoaW5kZXgrKywgR1AsIG5hbWUs
IGlzQ2FsbGVlU2F2ZSk7IH0KKyAgICAgICAgCisgICAgICAgIFJlZy5yYXggPSBuZXdHUFIoInJh
eCIpOworICAgICAgICBSZWcucmN4ID0gbmV3R1BSKCJyY3giKTsKKyAgICAgICAgUmVnLnJkeCA9
IG5ld0dQUigicmR4Iik7CisgICAgICAgIFJlZy5yYnggPSBuZXdHUFIoInJieCIsIHRydWUpOwor
ICAgICAgICBSZWcucnNwID0gbmV3R1BSKCJyc3AiKTsKKyAgICAgICAgUmVnLnJicCA9IG5ld0dQ
UigicmJwIiwgdHJ1ZSk7CisgICAgICAgIFJlZy5yc2kgPSBuZXdHUFIoInJzaSIpOworICAgICAg
ICBSZWcucmRpID0gbmV3R1BSKCJyZGkiKTsKKyAgICAgICAgZm9yIChsZXQgaSA9IDg7IGkgPD0g
MTU7ICsraSkKKyAgICAgICAgICAgIFJlZ1siciIgKyBpXSA9IG5ld0dQUigiciIgKyBpLCBpID49
IDEyKTsKKyAgICB9CisKKyAgICAvLyBEZWZpbmUgWDg2XzY0IEZQUnMuCisgICAgZm9yIChsZXQg
aSA9IDA7IGkgPD0gMTU7ICsraSkKKyAgICAgICAgUmVnWyJ4bW0iICsgaV0gPSBuZXdSZWcoaSwg
RlAsICJ4bW0iICsgaSk7CisKKyAgICBSZWcuZ3BycyA9IFtdCisgICAgUmVnLmZwcnMgPSBbXQor
ICAgIFJlZy5jYWxsZWVTYXZlR1BScyA9IFtdCisgICAgUmVnLmNhbGxlZVNhdmVGUFJzID0gW10K
KyAgICBSZWcuY2FsbGVlU2F2ZXMgPSBbXQorICAgIGZvciAobGV0IHJlZyBvZiBSZWcucmVncykg
eworICAgICAgICBpZiAocmVnLmlzR1ApIHsKKyAgICAgICAgICAgIFJlZy5ncHJzLnB1c2gocmVn
KTsKKyAgICAgICAgICAgIGlmIChyZWcuaXNDYWxsZWVTYXZlKQorICAgICAgICAgICAgICAgIFJl
Zy5jYWxsZWVTYXZlR1BScy5wdXNoKHJlZyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBSZWcuZnBycy5wdXNoKHJlZyk7CisgICAgICAgICAgICBpZiAocmVnLmlzQ2FsbGVlU2F2ZSkK
KyAgICAgICAgICAgICAgICBSZWcuY2FsbGVlU2F2ZUZQUlMucHVzaChyZWcpOworICAgICAgICB9
CisgICAgICAgIGlmIChyZWcuaXNDYWxsZWVTYXZlKQorICAgICAgICAgICAgUmVnLmNhbGxlZVNh
dmVzLnB1c2gocmVnKTsKKyAgICB9CisgICAgCisgICAgUmVnLmNhbGxGcmFtZVJlZ2lzdGVyID0g
UmVnLnJicDsKKyAgICBSZWcuc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBSZWcucnNwOworfQpJbmRl
eDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9zdGFja19zbG90LmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBl
cmZvcm1hbmNlVGVzdHMvSlNBaXIvc3RhY2tfc2xvdC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvc3RhY2tfc2xvdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDk3IEBACisidXNlIHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKK2NsYXNzIFN0YWNrU2xvdCB7CisgICAgY29uc3RydWN0b3IoaW5kZXgsIGJ5
dGVTaXplLCBraW5kKQorICAgIHsKKyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKKyAgICAg
ICAgdGhpcy5fYnl0ZVNpemUgPSBieXRlU2l6ZTsKKyAgICAgICAgdGhpcy5fa2luZCA9IGtpbmQ7
CisgICAgfQorICAgIAorICAgIGdldCBieXRlU2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2J5dGVTaXpl
OyB9CisgICAgZ2V0IGtpbmQoKSB7IHJldHVybiB0aGlzLl9raW5kOyB9CisgICAgCisgICAgZ2V0
IGlzTG9ja2VkKCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBMb2NrZWQ7IH0KKyAgICBnZXQgaXNT
cGlsbCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gU3BpbGw7IH0KKyAgICAKKyAgICBnZXQgaW5k
ZXgoKSB7IHJldHVybiB0aGlzLl9pbmRleDsgfQorCisgICAgZW5zdXJlU2l6ZShzaXplKQorICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuX29mZnNldEZyb21GUCkKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiU3RhY2sgc2xvdCBhbHJlYWR5IGFsbG9jYXRlZCIpOworICAgICAgICB0aGlzLl9i
eXRlU2l6ZSA9IE1hdGgubWF4KHRoaXMuX2J5dGVTaXplLCBzaXplKTsKKyAgICB9CisgICAgCisg
ICAgZ2V0IGFsaWdubWVudCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fYnl0ZVNpemUgPD0g
MSkKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBpZiAodGhpcy5fYnl0ZVNpemUgPD0g
MikKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICBpZiAodGhpcy5fYnl0ZVNpemUgPD0g
NCkKKyAgICAgICAgICAgIHJldHVybiA0OworICAgICAgICByZXR1cm4gODsKKyAgICB9CisgICAg
CisgICAgZ2V0IG9mZnNldEZyb21GUCgpIHsgcmV0dXJuIHRoaXMuX29mZnNldEZyb21GUDsgfQor
ICAgIAorICAgIHNldE9mZnNldEZyb21GUCh2YWx1ZSkgeyB0aGlzLl9vZmZzZXRGcm9tRlAgPSB2
YWx1ZTsgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiIiAr
ICh0aGlzLmlzU3BpbGwgPyAic3BpbGwiIDogInN0YWNrIikgKyB0aGlzLl9pbmRleCArICI8IiAr
IHRoaXMuX2J5dGVTaXplICsKKyAgICAgICAgICAgICh0aGlzLl9vZmZzZXRGcm9tRlAgPyAiLCBv
ZmZzZXQgPSAiICsgdGhpcy5fb2Zmc2V0RnJvbUZQIDogIiIpICsgIj4iOworICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgZXh0cmFjdChhcmcpCisgICAgeworICAgICAgICBpZiAoYXJnLmlzU3RhY2sp
CisgICAgICAgICAgICByZXR1cm4gYXJnLnN0YWNrU2xvdDsKKyAgICAgICAgcmV0dXJuIG51bGw7
CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNoRmFzdChhcmcsIGZ1bmMpCisgICAgewor
ICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAK
KyAgICAgICAgbGV0IHJlcGxhY2VtZW50OworICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5j
KGFyZy5zdGFja1Nsb3QpKQorICAgICAgICAgICAgcmV0dXJuIEFyZy5jcmVhdGVTdGFjayhyZXBs
YWNlbWVudCwgdGhpcy5fb2Zmc2V0KTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZvckVhY2go
YXJnLCByb2xlLCB0eXBlLCB3aWR0aCwgZnVuYykKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlz
U3RhY2spCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBsZXQgcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoYXJnLnN0YWNrU2xvdCwgcm9s
ZSwgdHlwZSwgd2lkdGgpKQorICAgICAgICAgICAgcmV0dXJuIEFyZy5jcmVhdGVTdGFjayhyZXBs
YWNlbWVudCwgdGhpcy5fb2Zmc2V0KTsKKyAgICB9Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3Rz
L0pTQWlyL3N5bWJvbHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9z
eW1ib2xzLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9zeW1ib2xz
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODIgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworLy8gVGhpcyBmaWxlIGlz
IGZvciBtaXNjIHN5bWJvbHMuCisKKy8vIEIzIHR5cGVzCitjb25zdCBWb2lkID0gU3ltYm9sKCJW
b2lkIik7Citjb25zdCBJbnQzMiA9IFN5bWJvbCgiSW50MzIiKTsKK2NvbnN0IEludDY0ID0gU3lt
Ym9sKCJJbnQ2NCIpOworY29uc3QgRmxvYXQgPSBTeW1ib2woIkZsb2F0Iik7Citjb25zdCBEb3Vi
bGUgPSBTeW1ib2woIkRvdWJsZSIpOworCisvLyBBcmcgdHlwZQorY29uc3QgR1AgPSBTeW1ib2wo
IkdQIik7Citjb25zdCBGUCA9IFN5bWJvbCgiRlAiKTsKKworLy8gU3RhY2sgc2xvdCBraW5kCitj
b25zdCBMb2NrZWQgPSBTeW1ib2woIkxvY2tlZCIpOworY29uc3QgU3BpbGwgPSBTeW1ib2woIlNw
aWxsIik7CisKKy8vIEZyZXF1ZW5jeSBjbGFzcworY29uc3QgTm9ybWFsID0gU3ltYm9sKCJOb3Jt
YWwiKTsKK2NvbnN0IFJhcmUgPSBTeW1ib2woIlJhcmUiKTsKKworLy8gUmVsYXRpb25hbCBjb25k
aXRpb25zCitjb25zdCBFcXVhbCA9IFN5bWJvbCgiRXF1YWwiKTsKK2NvbnN0IE5vdEVxdWFsID0g
U3ltYm9sKCJOb3RFcXVhbCIpOworY29uc3QgQWJvdmUgPSBTeW1ib2woIkFib3ZlIik7Citjb25z
dCBBYm92ZU9yRXF1YWwgPSBTeW1ib2woIkFib3ZlT3JFcXVhbCIpOworY29uc3QgQmVsb3cgPSBT
eW1ib2woIkJlbG93Iik7Citjb25zdCBCZWxvd09yRXF1YWwgPSBTeW1ib2woIkJlbG93T3JFcXVh
bCIpOworY29uc3QgR3JlYXRlclRoYW4gPSBTeW1ib2woIkdyZWF0ZXJUaGFuIik7Citjb25zdCBH
cmVhdGVyVGhhbk9yRXF1YWwgPSBTeW1ib2woIkdyZWF0ZXJUaGFuT3JFcXVhbCIpOworY29uc3Qg
TGVzc1RoYW4gPSBTeW1ib2woIkxlc3NUaGFuIik7Citjb25zdCBMZXNzVGhhbk9yRXF1YWwgPSBT
eW1ib2woIkxlc3NUaGFuT3JFcXVhbCIpOworCisvLyBSZXN1bHQgY29uZGl0aW9ucworY29uc3Qg
T3ZlcmZsb3cgPSBTeW1ib2woIk92ZXJmbG93Iik7Citjb25zdCBTaWduZWQgPSBTeW1ib2woIlNp
Z25lZCIpOworY29uc3QgUG9zaXRpdmVPclplcm8gPSBTeW1ib2woIlBvc2l0aXZlT3JaZXJvIik7
Citjb25zdCBaZXJvID0gU3ltYm9sKCJaZXJvIik7Citjb25zdCBOb25aZXJvID0gU3ltYm9sKCJO
b25aZXJvIik7CisKKy8vIERvdWJsZSBjb25kaXRpb25zCitjb25zdCBEb3VibGVFcXVhbCA9IFN5
bWJvbCgiRG91YmxlRXF1YWwiKTsKK2NvbnN0IERvdWJsZU5vdEVxdWFsID0gU3ltYm9sKCJEb3Vi
bGVOb3RFcXVhbCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW4gPSBTeW1ib2woIkRvdWJsZUdy
ZWF0ZXJUaGFuIik7Citjb25zdCBEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWwgPSBTeW1ib2woIkRv
dWJsZUdyZWF0ZXJUaGFuT3JFcXVhbCIpOworY29uc3QgRG91YmxlTGVzc1RoYW4gPSBTeW1ib2wo
IkRvdWJsZUxlc3NUaGFuIik7Citjb25zdCBEb3VibGVMZXNzVGhhbk9yRXF1YWwgPSBTeW1ib2wo
IkRvdWJsZUxlc3NUaGFuT3JFcXVhbCIpOworY29uc3QgRG91YmxlRXF1YWxPclVub3JkZXJlZCA9
IFN5bWJvbCgiRG91YmxlRXF1YWxPclVub3JkZXJlZCIpOworY29uc3QgRG91YmxlTm90RXF1YWxP
clVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlTm90RXF1YWxPclVub3JkZXJlZCIpOworY29uc3Qg
RG91YmxlR3JlYXRlclRoYW5PclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRoYW5P
clVub3JkZXJlZCIpOworY29uc3QgRG91YmxlR3JlYXRlclRoYW5PckVxdWFsT3JVbm9yZGVyZWQg
PSBTeW1ib2woIkRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbE9yVW5vcmRlcmVkIik7Citjb25zdCBE
b3VibGVMZXNzVGhhbk9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9yVW5vcmRl
cmVkIik7Citjb25zdCBEb3VibGVMZXNzVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IFN5bWJvbCgi
RG91YmxlTGVzc1RoYW5PckVxdWFsT3JVbm9yZGVyZWQiKTsKKworLy8gRGVmaW5lIHBvaW50ZXJU
eXBlKCkKK2NvbnN0IFB0ciA9IDY0OwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90ZXN0
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdGVzdC5qcwkocmV2aXNp
b24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdGVzdC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIyIEBACisidXNlIHN0cmljdCI7CisKK2NvbnN0IHZlcmJvc2UgPSAwOworY29u
c3QgYmVmb3JlID0gcHJlY2lzZVRpbWUoKTsKKworbG9hZCgiYWxsLmpzIik7Citsb2FkKCJwYXls
b2FkLmpzIik7CisKK2lmICh2ZXJib3NlKSB7CisgICAgcHJpbnQoIkJlZm9yZSBhbGxvY2F0ZVN0
YWNrOiIpOworICAgIHByaW50KGNvZGUpOworfQorCithbGxvY2F0ZVN0YWNrKGNvZGUpOworCitp
ZiAodmVyYm9zZSkgeworICAgIHByaW50KCJBZnRlciBhbGxvY2F0ZVN0YWNrOiIpOworICAgIHBy
aW50KGNvZGUpOworfQorCitjb25zdCBhZnRlciA9IHByZWNpc2VUaW1lKCk7CitwcmludCgiVGhh
dCB0b29rICIgKyAoYWZ0ZXIgLSBiZWZvcmUpICogMTAwMCArICIgbXMuIik7CkluZGV4OiBQZXJm
b3JtYW5jZVRlc3RzL0pTQWlyL3RtcC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3Rz
L0pTQWlyL3RtcC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1w
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgVG1wIGV4dGVu
ZHMgVG1wQmFzZSB7CisgICAgY29uc3RydWN0b3IoaW5kZXgsIHR5cGUpCisgICAgeworICAgICAg
ICBzdXBlcigpOworICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OworICAgICAgICB0aGlzLl90
eXBlID0gdHlwZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZyb21SZWcocmVnKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHJlZzsKKyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4KCkgeyByZXR1
cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0K
KyAgICAKKyAgICBnZXQgaXNSZWcoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIAorICAgIHRvU3Ry
aW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiJSIgKyAodGhpcy5pc0dQID8gIiIgOiAiZiIp
ICsgInRtcCIgKyB0aGlzLl9pbmRleDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGV4dHJhY3Qo
YXJnKQorICAgIHsKKyAgICAgICAgaWYgKGFyZy5pc1RtcCkKKyAgICAgICAgICAgIHJldHVybiBh
cmcudG1wOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBzdGF0aWMgZm9yRWFj
aEZhc3QoYXJnLCBmdW5jKSB7IHJldHVybiBhcmcuZm9yRWFjaFRtcEZhc3QoZnVuYyk7IH0KKyAg
ICBzdGF0aWMgZm9yRWFjaChhcmcsIHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKSB7IHJldHVybiBh
cmcuZm9yRWFjaFRtcChyb2xlLCB0eXBlLCB3aWR0aCwgZnVuYyk7IH0KK30KSW5kZXg6IFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvdG1wX2Jhc2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VU
ZXN0cy9KU0Fpci90bXBfYmFzZS5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvdG1wX2Jhc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NSBAQAorInVzZSBz
dHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitj
bGFzcyBUbXBCYXNlIHsKKyAgICBnZXQgaXNHUCgpIHsgcmV0dXJuIHRoaXMudHlwZSA9PSBHUDsg
fQorICAgIGdldCBpc0ZQKCkgeyByZXR1cm4gdGhpcy50eXBlID09IEZQOyB9CisgICAgCisgICAg
Z2V0IGlzR1BSKCkgeyByZXR1cm4gdGhpcy5pc1JlZyAmJiB0aGlzLmlzR1A7IH0KKyAgICBnZXQg
aXNGUFIoKSB7IHJldHVybiB0aGlzLmlzUmVnICYmIHRoaXMuaXNGUDsgfQorICAgIAorICAgIGdl
dCByZWcoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzUmVnKQorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJDYWxsZWQgLnJlZyBvbiBub24tUmVnIik7CisgICAgICAgIHJldHVybiB0
aGlzOworICAgIH0KKworICAgIGdldCBncHIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlz
R1BSKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLmdwciBvbiBub24tR1BS
Iik7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAKKyAgICBnZXQgZnByKCkKKyAg
ICB7CisgICAgICAgIGlmICghdGhpcy5pc0ZQUikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQ2FsbGVkIC5mcHIgb24gbm9uLUZQUiIpOworICAgICAgICByZXR1cm4gdGhpczsKKyAgICB9
Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdXRpbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3V0aWwuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3Jt
YW5jZVRlc3RzL0pTQWlyL3V0aWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNjYgQEAK
KyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworZnVuY3Rpb24gaXNSZXByZXNlbnRhYmxlQXNJbnQzMih2YWx1ZSkKK3sKKyAgICByZXR1
cm4gKHZhbHVlIHwgMCkgPT09IHZhbHVlOworfQorCitmdW5jdGlvbiBhZGRJbmRleGVkKGxpc3Qs
IGNvbnMsIC4uLmFyZ3MpCit7CisgICAgbGV0IHJlc3VsdCA9IG5ldyBjb25zKGxpc3QubGVuZ3Ro
LCAuLi5hcmdzKTsKKyAgICBsaXN0LnB1c2gocmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCitjb25zdCBzdGFja0FsaWdubWVudEJ5dGVzID0gMTY7CisKK2Z1bmN0aW9uIHJvdW5kVXBU
b011bHRpcGxlT2YoYW1vdW50LCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gTWF0aC5jZWlsKHZhbHVl
IC8gYW1vdW50ICogYW1vdW50KTsKK30KKworZnVuY3Rpb24gc3ltYm9sTmFtZShzeW1ib2wpCit7
CisgICAgbGV0IGZ1bGxTdHJpbmcgPSBzeW1ib2wudG9TdHJpbmcoKTsKKyAgICByZXR1cm4gZnVs
bFN0cmluZy5zdWJzdHJpbmcoIlN5bWJvbCgiLmxlbmd0aCwgZnVsbFN0cmluZy5sZW5ndGggLSAi
KSIubGVuZ3RoKTsKK30KKworZnVuY3Rpb24gc2V0VG9TdHJpbmcoc2V0KQoreworICAgIGxldCBy
ZXN1bHQgPSAiIjsKKyAgICBmb3IgKGxldCB2YWx1ZSBvZiBzZXQpIHsKKyAgICAgICAgaWYgKHJl
c3VsdCkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiLCAiOworICAgICAgICByZXN1bHQgKz0gdmFs
dWU7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIG1lcmdlSW50b1Nl
dCh0YXJnZXQsIHNvdXJjZSkKK3sKKyAgICBsZXQgZGlkQWRkID0gZmFsc2U7CisgICAgZm9yIChs
ZXQgdmFsdWUgb2Ygc291cmNlKSB7CisgICAgICAgIGlmICh0YXJnZXQuaGFzKHZhbHVlKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0YXJnZXQuYWRkKHZhbHVlKTsKKyAgICAgICAg
ZGlkQWRkID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGRpZEFkZDsKK30KKworZnVuY3Rpb24g
bm9uRW1wdHlSYW5nZXNPdmVybGFwKGxlZnRNaW4sIGxlZnRNYXgsIHJpZ2h0TWluLCByaWdodE1h
eCkKK3sKKyAgICBpZiAobGVmdE1pbiA+PSBsZWZ0TWF4KQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkJhZCBsZWZ0IHJhbmdlIik7CisgICAgaWYgKHJpZ2h0TWluID49IHJpZ2h0TWF4KQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByaWdodCByYW5nZSIpOworICAgIAorICAgIGlmIChs
ZWZ0TWluIDw9IHJpZ2h0TWluICYmIGxlZnRNYXggPiByaWdodE1pbikKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgaWYgKHJpZ2h0TWluIDw9IGxlZnRNaW4gJiYgcmlnaHRNYXggPiBsZWZ0TWlu
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Z1bmN0aW9u
IHJhbmdlc092ZXJsYXAobGVmdE1pbiwgbGVmdE1heCwgcmlnaHRNaW4sIHJpZ2h0TWF4KQorewor
ICAgIGlmIChsZWZ0TWluID4gbGVmdE1heCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQg
bGVmdCByYW5nZSIpOworICAgIGlmIChyaWdodE1pbiA+IHJpZ2h0TWF4KQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkJhZCByaWdodCByYW5nZSIpOworICAgIAorICAgIGlmIChsZWZ0TWluID09
IGxlZnRNYXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAocmlnaHRNaW4gPT0gcmln
aHRNYXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gbm9uRW1wdHlS
YW5nZXNPdmVybGFwKGxlZnRNaW4sIGxlZnRNYXgsIHJpZ2h0TWluLCByaWdodE1heCk7Cit9CisK
K2Z1bmN0aW9uIHJlbW92ZUFsbE1hdGNoaW5nKGFycmF5LCBmdW5jKQoreworICAgIGxldCBzcmNJ
bmRleCA9IDA7CisgICAgbGV0IGRzdEluZGV4ID0gMDsKKyAgICB3aGlsZSAoc3JjSW5kZXggPCBh
cnJheS5sZW5ndGgpIHsKKyAgICAgICAgbGV0IHZhbHVlID0gYXJyYXlbc3JjSW5kZXgrK107Cisg
ICAgICAgIGlmICghZnVuYyh2YWx1ZSkpCisgICAgICAgICAgICBhcnJheVtkc3RJbmRleCsrXSA9
IHZhbHVlOworICAgIH0KKyAgICBhcnJheS5sZW5ndGggPSBkc3RJbmRleDsKK30KKworZnVuY3Rp
b24gYnViYmxlU29ydChhcnJheSwgbGVzc1RoYW4pCit7CisgICAgZnVuY3Rpb24gc3dhcChpLCBq
KQorICAgIHsKKyAgICAgICAgdmFyIHRtcCA9IGFycmF5W2ldOworICAgICAgICBhcnJheVtpXSA9
IGFycmF5W2pdOworICAgICAgICBhcnJheVtqXSA9IHRtcDsKKyAgICB9CisgICAgCisgICAgbGV0
IGJlZ2luID0gMDsKKyAgICBsZXQgZW5kID0gYXJyYXkubGVuZ3RoOworICAgIGZvciAoOzspIHsK
KyAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9u
IGJ1YmJsZShpLCBqKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAobGVzc1RoYW4oYXJyYXlb
aV0sIGFycmF5W2pdKSkgeworICAgICAgICAgICAgICAgIHN3YXAoaSwgaik7CisgICAgICAgICAg
ICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAg
ICAgICAgaWYgKGVuZCA8IGJlZ2luKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCZWdp
biBhbmQgZW5kIGFyZSBtZXNzZWQgdXAiKTsKKyAgICAgICAgCisgICAgICAgIGxldCBsaW1pdCA9
IGVuZCAtIGJlZ2luOworICAgICAgICBmb3IgKGxldCBpID0gbGltaXQ7IGktLSA+IDE7KQorICAg
ICAgICAgICAgYnViYmxlKGJlZ2luICsgaSwgYmVnaW4gKyBpIC0gMSk7CisgICAgICAgIGlmICgh
Y2hhbmdlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIC8vIEFmdGVy
IG9uZSBydW4sIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0IGlzIGd1YXJhbnRlZWQgdG8g
YmUgdGhlIHNtYWxsZXN0LgorICAgICAgICBiZWdpbisrOworICAgICAgICAKKyAgICAgICAgLy8g
Tm93IGdvIGluIHRoZSBvdGhlciBkaXJlY3Rpb24uIFRoaXMgZWxpbWluYXRlcyBtb3N0IHNvcnRp
bmcgcGF0aG9sb2dpZXMuCisgICAgICAgIGNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChlbmQgPCBiZWdpbikKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmVnaW4g
YW5kIGVuZCBhcmUgbWVzc2VkIHVwIik7CisgICAgICAgIAorICAgICAgICBsaW1pdCA9IGVuZCAt
IGJlZ2luOworICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGxpbWl0OyArK2kpCisgICAgICAg
ICAgICBidWJibGUoYmVnaW4gKyBpLCBiZWdpbiArIGkgLSAxKTsKKyAgICAgICAgaWYgKCFjaGFu
Z2VkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgLy8gTm93IHRoZSBs
YXN0IGVsZW1lbnQgaXMgZ3VhcmFudGVlZCB0byBiZSB0aGUgbGFyZ2VzdC4KKyAgICAgICAgZW5k
LS07CisgICAgfQorfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMjAxNzE2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5
OTMsOCArMTk5MywyNSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiBzdGF0aWMg
dm9pZCBkdW1wRXhjZXB0aW9uKEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGV4
Y2VwdGlvbikKIHsKICAgICBwcmludGYoIkV4Y2VwdGlvbjogJXNcbiIsIGV4Y2VwdGlvbi50b1dU
RlN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSkudXRmOCgpLmRhdGEoKSk7CisKKyAg
ICBJZGVudGlmaWVyIG5hbWVJRCA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoZ2xvYmFsT2JqZWN0
LT5nbG9iYWxFeGVjKCksICJuYW1lIik7CisgICAgSWRlbnRpZmllciBmaWxlTmFtZUlEID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgInNvdXJjZVVS
TCIpOworICAgIElkZW50aWZpZXIgbGluZU51bWJlcklEID0gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgImxpbmUiKTsKICAgICBJZGVudGlmaWVyIHN0
YWNrSUQgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygp
LCAic3RhY2siKTsKKyAgICAKKyAgICBKU1ZhbHVlIG5hbWVWYWx1ZSA9IGV4Y2VwdGlvbi5nZXQo
Z2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIG5hbWVJRCk7CisgICAgSlNWYWx1ZSBmaWxlTmFt
ZVZhbHVlID0gZXhjZXB0aW9uLmdldChnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgZmlsZU5h
bWVJRCk7CisgICAgSlNWYWx1ZSBsaW5lTnVtYmVyVmFsdWUgPSBleGNlcHRpb24uZ2V0KGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpLCBsaW5lTnVtYmVySUQpOwogICAgIEpTVmFsdWUgc3RhY2tW
YWx1ZSA9IGV4Y2VwdGlvbi5nZXQoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIHN0YWNrSUQp
OworICAgIAorICAgIGlmIChuYW1lVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxFeGVjKCkpID09ICJTeW50YXhFcnJvciIKKyAgICAgICAgJiYgKCFmaWxlTmFtZVZhbHVlLmlz
VW5kZWZpbmVkT3JOdWxsKCkgfHwgIWxpbmVOdW1iZXJWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgp
KSkgeworICAgICAgICBwcmludGYoCisgICAgICAgICAgICAiYXQgJXM6JXNcbiIsCisgICAgICAg
ICAgICBmaWxlTmFtZVZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygp
KS51dGY4KCkuZGF0YSgpLAorICAgICAgICAgICAgbGluZU51bWJlclZhbHVlLnRvV1RGU3RyaW5n
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKS51dGY4KCkuZGF0YSgpKTsKKyAgICB9CisgICAg
CiAgICAgaWYgKCFzdGFja1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHByaW50
ZigiJXNcbiIsIHN0YWNrVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVj
KCkpLnV0ZjgoKS5kYXRhKCkpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgzLDYgKzE5
ODMsOCBAQAogCQlEQzE3RTgxQTFDOUM5MUU5MDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMTdFODE2MUM5
QzgwMkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovOyB9OwogCQlEQzIxNDMwNzFDQTMy
RTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLzsg
fTsKIAkJREMyMTQzMDgxQ0EzMkU1ODAwMEE4ODY5IC8qIElDU3RhdHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDUxQ0EzMkU1MjAwMEE4
ODY5IC8qIElDU3RhdHMuY3BwICovOyB9OworCQlEQzQ1NEI4QzFEMDBFODIyMDA0QzE4QUYgLyog
QWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLzsgfTsK
KwkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAwNTkzNzE4IC8q
IFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwICov
OyB9OwogCQlEQzYwNUI1RTFDRTI2RUEyMDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNUExQ0UyNkU5
ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzYwNUI1RjFDRTI2RUE1MDA1OTM3MTggLyogUHJvZmls
ZXJVSUQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
REM2MDVCNUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCAqLzsgfTsKQEAgLTQx
OTcsNiArNDE5OSw4IEBACiAJCURDMTdFODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBl
cnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0NhbGxIZWxwZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDUxQ0EzMkU1MjAwMEE4
ODY5IC8qIElDU3RhdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SUNTdGF0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA2MUNBMzJF
NTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IElDU3RhdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM0NTRCOEExRDAwRTgx
RjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEFpckR1bXBBc0pTLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNDU0QjhCMUQwMEU4MUYwMDRDMThBRiAv
KiBBaXJEdW1wQXNKUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBaXJEdW1w
QXNKUy5oOyBwYXRoID0gYjMvYWlyL0FpckR1bXBBc0pTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCURDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVyRXZlbnQuY3BwOyBw
YXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCURDNjA1QjVBMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVyRXZlbnQuaDsgcGF0aCA9IHByb2Zp
bGVyL1Byb2ZpbGVyRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2MDVC
NUIxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVyVUlELmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2Zp
bGVyVUlELmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4MjEsNiArNDgyNSw4
IEBACiAJCQkJMEZFQzg1NTExQkRBQ0RDNzAwODBGRjc0IC8qIEFpckNvZGUuaCAqLywKIAkJCQkw
RjYxODMyMjFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyQ3VzdG9tLmNwcCAqLywKIAkJCQkwRjEwRjFB
MjFDNDIwQkYwMDAxQzA3RDIgLyogQWlyQ3VzdG9tLmggKi8sCisJCQkJREM0NTRCOEExRDAwRTgx
RjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLywKKwkJCQlEQzQ1NEI4QjFEMDBFODFGMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLywKIAkJCQkwRjQ1NzAzNjFCRTQ0QzkxMDA2MkE2Mjkg
LyogQWlyRWxpbWluYXRlRGVhZENvZGUuY3BwICovLAogCQkJCTBGNDU3MDM3MUJFNDRDOTEwMDYy
QTYyOSAvKiBBaXJFbGltaW5hdGVEZWFkQ29kZS5oICovLAogCQkJCTBGNjE4MzIzMUM0NUJGMDcw
MDcyNDUwQiAvKiBBaXJFbWl0U2h1ZmZsZS5jcHAgKi8sCkBAIC03MDIyLDYgKzcwMjgsNyBAQAog
CQkJCTBGRUM4NTA2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NoZWNrU3BlY2lhbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFQzg1MDgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MEExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlEQzQ1NEI4RDFEMDBFODI0MDA0QzE4QUYgLyogQWlyRHVtcEFz
SlMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Nv
bW11dGF0aXZpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTBFMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnN0MzJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MTAxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLywKQEAgLTkxMDYsNiAr
OTExMyw3IEBACiAJCQkJMTQwNTY2RDYxMDdFQzI3MTAwNURCQzhEIC8qIEpTRnVuY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0QTM4RjkxQzhFMTNERjAwMTkwMzE4IC8qIFN1cGVyU2Ft
cGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3OTdFMDdBOTFCOEZDRkI5MDA4NDAwQkEgLyog
SlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM0NTRC
OEMxRDAwRTgyMjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0N0YzOUQyMTA3RUMzNzYwMDQyN0E0OCAvKiBKU0dsb2JhbE9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNUZEMDA4NTE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25z
b2xlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVDM0ExQTUxOEMwNDkwMjAwQzk1OTNB
IC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQWxsb2NhdGVTdGFjay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVN0YWNrLmNw
cAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJB
bGxvY2F0ZVN0YWNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIKICNpbmNsdWRlICJB
aXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQWlySW5z
dElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQXJnLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAkocmV2
aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAko
d29ya2luZyBjb3B5KQpAQCAtNjg4LDcgKzY4OCwxNSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlz
U29tZUltbSgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gaXNJbW0oKSB8fCBpc0JpZ0lt
bSgpIHx8IGlzQml0SW1tKCkgfHwgaXNCaXRJbW02NCgpOworICAgICAgICBzd2l0Y2ggKGtpbmQo
KSkgeworICAgICAgICBjYXNlIEltbToKKyAgICAgICAgY2FzZSBCaWdJbW06CisgICAgICAgIGNh
c2UgQml0SW1tOgorICAgICAgICBjYXNlIEJpdEltbTY0OgorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IH0KICAgICB9CiAKICAgICBib29sIGlzQWRkcigpIGNvbnN0CkBAIC05OTMsMzMgKzEwMDEsNiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0bXAoKS50bXBJbmRleCgpOwogICAgIH0KIAotICAg
IC8vIElmICd0aGlzJyBpcyBhbiBhZGRyZXNzIEFyZywgdGhlbiBpdCByZXR1cm5zIGEgbmV3IGFk
ZHJlc3MgQXJnIHdpdGggdGhlIGFkZGl0aW9uYWwgb2Zmc2V0IGFwcGxpZWQuCi0gICAgLy8gTm90
ZSB0aGF0IHRoaXMgZG9lcyBub3QgY29uc2lkZXIgd2hldGhlciBkb2luZyBzbyBwcm9kdWNlcyBh
IHZhbGlkIEFyZyBvciBub3QuIFVubGVzcyB5b3UgcmVhbGx5Ci0gICAgLy8ga25vdyB3aGF0IHlv
dSdyZSBkb2luZywgeW91IHNob3VsZCBjYWxsIEFyZzo6aXNWYWxpZEZvcm0oKSBvbiB0aGUgcmVz
dWx0LiBTb21lIGNvZGUgd29uJ3QgZG8gdGhhdCwKLSAgICAvLyBsaWtlIGlmIHlvdSdyZSBhcHBs
eWluZyBhIHZlcnkgc21hbGwgb2Zmc2V0IHRvIGEgQXJnOjpzdGFjaygpIHRoYXQgeW91IGtub3cg
aGFzIG5vIG9mZnNldCB0byBiZWdpbgotICAgIC8vIHdpdGguIEl0J3Mgc2FmZSB0byBhc3N1bWUg
dGhhdCBhbGwgdGFyZ2V0cyBhbGxvdyBzbWFsbCBvZmZzZXRzIChsaWtlLCAwLi43KSBmb3IgQWRk
ciwgU3RhY2ssIGFuZAotICAgIC8vIENhbGxBcmcuCi0gICAgQXJnIHdpdGhPZmZzZXQoaW50NjRf
dCBhZGRpdGlvbmFsT2Zmc2V0KSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFoYXNPZmZzZXQo
KSkKLSAgICAgICAgICAgIHJldHVybiBBcmcoKTsKLSAgICAgICAgaWYgKHN1bU92ZXJmbG93czxp
bnQ2NF90PihvZmZzZXQoKSwgYWRkaXRpb25hbE9mZnNldCkpCi0gICAgICAgICAgICByZXR1cm4g
QXJnKCk7Ci0gICAgICAgIHN3aXRjaCAoa2luZCgpKSB7Ci0gICAgICAgIGNhc2UgQWRkcjoKLSAg
ICAgICAgICAgIHJldHVybiBhZGRyKGJhc2UoKSwgb2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0
KTsKLSAgICAgICAgY2FzZSBTdGFjazoKLSAgICAgICAgICAgIHJldHVybiBzdGFjayhzdGFja1Ns
b3QoKSwgb2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0KTsKLSAgICAgICAgY2FzZSBDYWxsQXJn
OgotICAgICAgICAgICAgcmV0dXJuIGNhbGxBcmcob2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0
KTsKLSAgICAgICAgY2FzZSBJbmRleDoKLSAgICAgICAgICAgIHJldHVybiBpbmRleChiYXNlKCks
IGluZGV4KCksIHNjYWxlKCksIG9mZnNldCgpICsgYWRkaXRpb25hbE9mZnNldCk7Ci0gICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICAgICAgcmV0dXJuIEFyZygpOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgc3RhdGljIGJv
b2wgaXNWYWxpZEltbUZvcm0oaW50NjRfdCB2YWx1ZSkKICAgICB7CiAgICAgICAgIGlmIChpc1g4
NigpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmdJbmxpbmVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmdJbmxpbmVz
LmgJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
QXJnSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw4OCBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmdUaGluZ0hlbHBlcjxBcmc+IHsKICAgICB9CiB9OwogCit0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmdUaGluZ0hlbHBlcjxTdGFja1Nsb3QqPiB7CisgICAgc3RhdGljIGJvb2wgaXMoY29u
c3QgQXJnJiBhcmcpCisgICAgeworICAgICAgICByZXR1cm4gYXJnLmlzU3RhY2soKTsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIFN0YWNrU2xvdCogYXMoY29uc3QgQXJnJiBhcmcpCisgICAgewor
ICAgICAgICByZXR1cm4gYXJnLnN0YWNrU2xvdCgpOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHN0YXRpYyB2b2lkIGZvckVhY2hGYXN0KEFyZyYgYXJn
LCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgaWYgKCFhcmcuaXNTdGFj
aygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgU3RhY2tTbG90KiBz
dGFja1Nsb3QgPSBhcmcuc3RhY2tTbG90KCk7CisgICAgICAgIGZ1bmN0b3Ioc3RhY2tTbG90KTsK
KyAgICAgICAgYXJnID0gQXJnOjpzdGFjayhzdGFja1Nsb3QsIGFyZy5vZmZzZXQoKSk7CisgICAg
fQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+CisgICAgc3RhdGljIHZvaWQg
Zm9yRWFjaChBcmcmIGFyZywgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0eXBlLCBBcmc6Oldp
ZHRoIHdpZHRoLCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgaWYgKCFh
cmcuaXNTdGFjaygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgU3Rh
Y2tTbG90KiBzdGFja1Nsb3QgPSBhcmcuc3RhY2tTbG90KCk7CisgICAgICAgIAorICAgICAgICAv
LyBGSVhNRTogVGhpcyBpcyB3YXkgdG9vIG9wdGltaXN0aWMgYWJvdXQgdGhlIG1lYW5pbmcgb2Yg
IkRlZiIuIEl0IGdldHMgbHVja3kgZm9yCisgICAgICAgIC8vIG5vdyBiZWNhdXNlIG91ciBvbmx5
IHVzZSBvZiAiQW5vbnltb3VzIiBzdGFjayBzbG90cyBoYXBwZW5zIHRvIHdhbnQgdGhlIG9wdGlt
aXN0aWMKKyAgICAgICAgLy8gc2VtYW50aWNzLiBXZSBjb3VsZCBmaXggdGhpcyBieSBqdXN0IGNo
YW5naW5nIHRoZSBjb21tZW50cyB0aGF0IGRlc2NyaWJlIHRoZQorICAgICAgICAvLyBzZW1hbnRp
Y3Mgb2YgIkFub255bW91cyIuCisgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTExMjgKKyAgICAgICAgCisgICAgICAgIGZ1bmN0b3Ioc3RhY2tTbG90
LCByb2xlLCB0eXBlLCB3aWR0aCk7CisgICAgICAgIGFyZyA9IEFyZzo6c3RhY2soc3RhY2tTbG90
LCBhcmcub2Zmc2V0KCkpOworICAgIH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ1RoaW5n
SGVscGVyPFJlZz4geworICAgIHN0YXRpYyBib29sIGlzKGNvbnN0IEFyZyYgYXJnKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFyZy5pc1JlZygpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgUmVn
IGFzKGNvbnN0IEFyZyYgYXJnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFyZy5yZWcoKTsKKyAg
ICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9p
ZCBmb3JFYWNoRmFzdChBcmcmIGFyZywgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKKyAgICB7Cisg
ICAgICAgIGFyZy5mb3JFYWNoVG1wRmFzdCgKKyAgICAgICAgICAgIFsmXSAoVG1wJiB0bXApIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXRtcC5pc1JlZygpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUmVnIHJlZyA9IHRtcC5y
ZWcoKTsKKyAgICAgICAgICAgICAgICBmdW5jdG9yKHJlZyk7CisgICAgICAgICAgICAgICAgdG1w
ID0gVG1wKHJlZyk7CisgICAgICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEFyZyYgYXJnLCBBcmc6
OlJvbGUgYXJnUm9sZSwgQXJnOjpUeXBlIGFyZ1R5cGUsIEFyZzo6V2lkdGggYXJnV2lkdGgsIGNv
bnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAgICBhcmcuZm9yRWFjaFRtcCgKKyAg
ICAgICAgICAgIGFyZ1JvbGUsIGFyZ1R5cGUsIGFyZ1dpZHRoLAorICAgICAgICAgICAgWyZdIChU
bXAmIHRtcCwgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0eXBlLCBBcmc6OldpZHRoIHdpZHRo
KSB7CisgICAgICAgICAgICAgICAgaWYgKCF0bXAuaXNSZWcoKSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFJlZyByZWcgPSB0
bXAucmVnKCk7CisgICAgICAgICAgICAgICAgZnVuY3RvcihyZWcsIHJvbGUsIHR5cGUsIHdpZHRo
KTsKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAocmVnKTsKKyAgICAgICAgICAgIH0pOworICAg
IH0KK307CisKIHRlbXBsYXRlPHR5cGVuYW1lIFRoaW5nPgogYm9vbCBBcmc6OmlzKCkgY29uc3QK
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNK
Uy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkFpckR1bXBBc0pTLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQWly
Q29kZS5oIgorI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKKworbmFtZXNwYWNlIHsKKworQ1N0cmluZyB2
YXJOYW1lRm9yQmxvY2tBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiB0b0NT
dHJpbmcoImJiIiwgaW5kZXgpOworfQorCitDU3RyaW5nIHZhck5hbWUoQmFzaWNCbG9jayogYmxv
Y2spCit7CisgICAgcmV0dXJuIHZhck5hbWVGb3JCbG9ja0F0SW5kZXgoYmxvY2stPmluZGV4KCkp
OworfQorCitDU3RyaW5nIHZhck5hbWVGb3JTdGFja1Nsb3RBdEluZGV4KHVuc2lnbmVkIGluZGV4
KQoreworICAgIHJldHVybiB0b0NTdHJpbmcoInNsb3QiLCBpbmRleCk7Cit9CisKK0NTdHJpbmcg
dmFyTmFtZShTdGFja1Nsb3QqIHNsb3QpCit7CisgICAgcmV0dXJuIHZhck5hbWVGb3JTdGFja1Ns
b3RBdEluZGV4KHNsb3QtPmluZGV4KCkpOworfQorCitDU3RyaW5nIHZhck5hbWUoUmVnIHJlZykK
K3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKCJSZWcuIiwgcmVnLmRlYnVnTmFtZSgpKTsKK30KKwor
Q1N0cmluZyB2YXJOYW1lRm9yVG1wV2l0aFR5cGVBbmRJbmRleChBcmc6OlR5cGUgdHlwZSwgdW5z
aWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIHRvQ1N0cmluZyh0eXBlID09IEFyZzo6RlAgPyAi
ZiIgOiAiIiwgInRtcCIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFRtcCB0bXApCit7
CisgICAgaWYgKHRtcC5pc1JlZygpKQorICAgICAgICByZXR1cm4gdmFyTmFtZSh0bXAucmVnKCkp
OworICAgIHJldHVybiB2YXJOYW1lRm9yVG1wV2l0aFR5cGVBbmRJbmRleChBcmcodG1wKS50eXBl
KCksIHRtcC50bXBJbmRleCgpKTsKK30KKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCisKK3Zv
aWQgZHVtcEFzSlMoQ29kZSYgY29kZSwgUHJpbnRTdHJlYW0mIG91dCkKK3sKKyAgICBvdXQucHJp
bnRsbigibGV0IGNvZGUgPSBuZXcgQ29kZSgpOyIpOworICAgIAorICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBjb2RlLnNpemUoKTsgKytpKQorICAgICAgICBvdXQucHJpbnRsbigibGV0ICIs
IHZhck5hbWVGb3JCbG9ja0F0SW5kZXgoaSksICIgPSBjb2RlLmFkZEJsb2NrKCk7Iik7CisgICAg
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvZGUuc3RhY2tTbG90cygpLnNpemUoKTsg
KytpKSB7CisgICAgICAgIFN0YWNrU2xvdCogc2xvdCA9IGNvZGUuc3RhY2tTbG90cygpW2ldOwor
ICAgICAgICBpZiAoc2xvdCkKKyAgICAgICAgICAgIG91dC5wcmludGxuKCJsZXQgIiwgdmFyTmFt
ZShzbG90KSwgIiA9IGNvZGUuYWRkU3RhY2tTbG90KCIsIHNsb3QtPmJ5dGVTaXplKCksICIsICIs
IHNsb3QtPmtpbmQoKSwgIik7Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmlu
dGxuKCJjb2RlLmFkZFN0YWNrU2xvdCgxLCBTcGlsbCk7Iik7CisgICAgfQorICAgIAorICAgIEFy
Zzo6Zm9yRWFjaFR5cGUoCisgICAgICAgIFsmXSAoQXJnOjpUeXBlIHR5cGUpIHsKKyAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IGNvZGUubnVtVG1wcyh0eXBlKTsgaS0tOykgeworICAgICAg
ICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAibGV0ICIsIHZhck5h
bWVGb3JUbXBXaXRoVHlwZUFuZEluZGV4KHR5cGUsIGkpLCAiID0gY29kZS5uZXdUbXAoIiwgdHlw
ZSwgIik7Iik7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIAorICAgIG91dC5wcmlu
dGxuKCJsZXQgaW5zdDsiKTsKKyAgICBvdXQucHJpbnRsbigibGV0IGFyZzsiKTsKKyAgICAKKyAg
ICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgeworICAgICAgICBmb3IgKEZyZXF1ZW50
ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7CisgICAgICAgICAgICBv
dXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICB2YXJOYW1lKGJsb2NrKSwgIi5zdWNjZXNzb3Jz
LnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jaygiLAorICAgICAgICAgICAgICAgIHZhck5hbWUoc3Vj
Y2Vzc29yLmJsb2NrKCkpLCAiLCAiLCBzdWNjZXNzb3IuZnJlcXVlbmN5KCksICIpKTsiKTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBwcmVkZWNlc3NvciA6
IGJsb2NrLT5wcmVkZWNlc3NvcnMoKSkKKyAgICAgICAgICAgIG91dC5wcmludGxuKHZhck5hbWUo
YmxvY2spLCAiLnByZWRlY2Vzc29ycy5wdXNoKCIsIHZhck5hbWUocHJlZGVjZXNzb3IpLCAiKTsi
KTsKKyAgICAgICAgCisgICAgICAgIGZvciAoSW5zdCYgaW5zdCA6ICpibG9jaykgeworICAgICAg
ICAgICAgb3V0LnByaW50bG4oImluc3QgPSBuZXcgSW5zdCgiLCBpbnN0Lm9wY29kZSwgIik7Iik7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGluc3QuZm9yRWFjaEFyZygKKyAgICAgICAgICAg
ICAgICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUsIEFyZzo6VHlwZSwgQXJnOjpXaWR0aCkgewor
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFyZy5raW5kKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSBBcmc6OkludmFsaWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlRt
cDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRl
VG1wKCIsIHZhck5hbWUoYXJnLnRtcCgpKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBj
YXNlIEFyZzo6SW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9
IEFyZy5jcmVhdGVJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBBcmc6OkJpZ0ltbToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxu
KCJhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgQXJnOjpCaXRJbW06CisgICAgICAgICAgICAgICAgICAgICAgICBv
dXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpdEltbSgiLCBhcmcudmFsdWUoKSwgIik7Iik7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6Qml0SW1tNjQ6CisgICAgICAgICAgICAg
ICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUJpdEltbTY0KCIsIGFyZy52
YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpBZGRyOgorICAg
ICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImFyZyA9IEFyZy5jcmVhdGVBZGRyKCIsIHZhck5hbWUoYXJnLmJhc2UoKSksICIsICIs
IGFyZy5vZmZzZXQoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6U3Rh
Y2s6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiYXJnID0gQXJnLmNyZWF0ZVN0YWNrKCIsIHZhck5hbWUoYXJnLnN0YWNr
U2xvdCgpKSwgIiwgIiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
IGNhc2UgQXJnOjpDYWxsQXJnOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4o
ImFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKCIsIGFyZy5vZmZzZXQoKSwgIik7Iik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgICAgICBjYXNlIEFyZzo6SW5kZXg6CisgICAgICAgICAgICAgICAgICAgICAgICBv
dXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnID0gQXJnLmNyZWF0
ZUluZGV4KCIsIHZhck5hbWUoYXJnLmJhc2UoKSksICIsICIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyTmFtZShhcmcuaW5kZXgoKSksICIsICIsIGFyZy5zY2FsZSgpLCAiLCAiLCBh
cmcub2Zmc2V0KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OlJlbENv
bmQ6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0
ZVJlbENvbmQoIiwgYXJnLmFzUmVsYXRpb25hbENvbmRpdGlvbigpLCAiKTsiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgQXJnOjpSZXNDb25kOgorICAgICAgICAgICAgICAgICAgICAgICAg
b3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKCIsIGFyZy5hc1Jlc3VsdENvbmRp
dGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpEb3VibGVDb25k
OgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVE
b3VibGVDb25kKCIsIGFyZy5hc0RvdWJsZUNvbmRpdGlvbigpLCAiKTsiKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgQXJnOjpTcGVjaWFsOgorICAgICAgICAgICAgICAgICAgICAgICAgLy8g
SlMtQWlyIGRvZXNuJ3QgaGF2ZSBTcGVjaWFscy4KKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2Ug
QXJnOjpXaWR0aEFyZzoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcg
PSBBcmcuY3JlYXRlV2lkdGhBcmcoIiwgYXJnLndpZHRoKCksICIpOyIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmFyZ3MucHVzaChh
cmcpOyIpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAoaW5zdC5vcGNvZGUgPT0gUGF0Y2gpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5zdC5oYXNO
b25BcmdFZmZlY3RzKCkpCisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7Iik7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7Iik7CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOyIpOworICAgICAgICAgICAgICAgIGluc3QuZXh0cmFFYXJseUNs
b2JiZXJlZFJlZ3MoKS5mb3JFYWNoKAorICAgICAgICAgICAgICAgICAgICBbJl0gKFJlZyByZWcp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmV4dHJhRWFybHlD
bG9iYmVyZWRSZWdzLmFkZCgiLCB2YXJOYW1lKHJlZyksICIpOyIpOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncygpLmZvckVh
Y2goCisgICAgICAgICAgICAgICAgICAgIFsmXSAoUmVnIHJlZykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZCgiLCB2YXJO
YW1lKHJlZyksICIpOyIpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsi
KTsKKyAgICAgICAgICAgICAgICBpbnN0LmZvckVhY2hBcmcoCisgICAgICAgICAgICAgICAgICAg
IFsmXSAoQXJnJiwgQXJnOjpSb2xlIHJvbGUsIEFyZzo6VHlwZSB0eXBlLCBBcmc6OldpZHRoIHdp
ZHRoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLiIsIHJv
bGUsICIsIHR5cGU6ICIsIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgd2lk
dGg6ICIsIHdpZHRoLCAifSk7Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoaW5zdC5vcGNvZGUgPT0gQ0NhbGwg
fHwgaW5zdC5vcGNvZGUgPT0gQ29sZENDYWxsKSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50
bG4oImluc3QuY0NhbGxUeXBlID0gIiwgaW5zdC5vcmlnaW4tPnR5cGUoKSk7CisgICAgICAgICAg
ICAgICAgb3V0LnByaW50bG4oImluc3QuY0NhbGxBcmdUeXBlcyA9IFtdOyIpOworICAgICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBpbnN0Lm9yaWdpbi0+bnVtQ2hpbGRyZW4o
KTsgKytpKQorICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5jQ2FsbEFyZ1R5
cGVzLnB1c2goIiwgaW5zdC5vcmlnaW4tPmNoaWxkKGkpLT50eXBlKCksICIpOyIpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBvdXQucHJpbnRsbih2YXJOYW1lKGJs
b2NrKSwgIi5hcHBlbmQoaW5zdCk7Iik7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIEFpckR1bXBBc0pTX2gKKyNkZWZpbmUgQWlyRHVtcEFz
SlNfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5o
PgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CisKK2Ns
YXNzIENvZGU7CisKKy8vIFRoaXMgaXMgYSBqb2tlLiBWYXJpb3VzIG9wZXJhdGlvbnMgb24gQWly
IGFyZSBpbnRlcmVzdGluZyBmcm9tIGEgYmVuY2htYXJraW5nIHN0YW5kcG9pbnQuIFdlIGNhbgor
Ly8gd3JpdGUgc29tZSBBaXIgcGhhc2VzIGluIEpTIGFuZCB0aGVuIHVzZSB0aGF0IHRvIGJlbmNo
bWFyayBKUy4KK3ZvaWQgZHVtcEFzSlMoQ29kZSYsIFByaW50U3RyZWFtJik7CisKK30gfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNl
bmRpZiAvLyBBaXJEdW1wQXNKU19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJGaXhPYnZpb3VzU3BpbGxzLmNwcAkocmV2aXNpb24gMjAxNzE2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhPYnZpb3VzU3BpbGxzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAor
I2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIKICNpbmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVk
ZSAiQWlySW5zdElubGluZXMuaCIKICNpbmNsdWRlICJBaXJQaGFzZVNjb3BlLmgiCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24g
MjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFpckFsbG9jYXRl
U3RhY2suaCIKICNpbmNsdWRlICJBaXJDb2RlLmgiCisjaW5jbHVkZSAiQWlyRHVtcEFzSlMuaCIK
ICNpbmNsdWRlICJBaXJFbGltaW5hdGVEZWFkQ29kZS5oIgogI2luY2x1ZGUgIkFpckZpeE9idmlv
dXNTcGlsbHMuaCIKICNpbmNsdWRlICJBaXJGaXhQYXJ0aWFsUmVnaXN0ZXJTdGFsbHMuaCIKQEAg
LTEwMiwxMSArMTAzLDIxIEBAIHZvaWQgcHJlcGFyZUZvckdlbmVyYXRpb24oQ29kZSYgY29kZSkK
ICAgICAvLyBQcmlvciB0byB0aGlzIHBvaW50IHRoZSBwcm9sb2d1ZSBhbmQgZXBpbG9ndWUgaXMg
aW1wbGljaXQuIFRoaXMgbWFrZXMgaXQgZXhwbGljaXQuIEl0IGFsc28KICAgICAvLyBkb2VzIHRo
aW5ncyBsaWtlIGlkZW50aWZ5IHdoaWNoIGNhbGxlZS1zYXZlcyB3ZSdyZSB1c2luZyBhbmQgc2F2
ZXMgdGhlbS4KICAgICBoYW5kbGVDYWxsZWVTYXZlcyhjb2RlKTsKKyAgICAKKyAgICBpZiAoT3B0
aW9uczo6ZHVtcEFpckFzSlNCZWZvcmVBbGxvY2F0ZVN0YWNrKCkpIHsKKyAgICAgICAgZGF0YUxv
ZygiRHVtcGluZyBBaXIgYXMgSlMgYmVmb3JlIGFsbG9jYXRlU3RhY2s6XG4iKTsKKyAgICAgICAg
ZHVtcEFzSlMoY29kZSwgV1RGOjpkYXRhRmlsZSgpKTsKKyAgICB9CiAKICAgICAvLyBUaGlzIHR1
cm5zIGFsbCBTdGFjayBhbmQgQ2FsbEFyZyBBcmdzIGludG8gQWRkciBhcmdzIHRoYXQgdXNlIHRo
ZSBmcmFtZSBwb2ludGVyLiBJdCBkb2VzCiAgICAgLy8gdGhpcyBieSBmaXJzdC1maXQgYWxsb2Nh
dGluZyBzdGFjayBzbG90cy4gSXQgc2hvdWxkIGJlIHByZXR0eSBkYXJuIGNsb3NlIHRvIG9wdGlt
YWwsIHNvIHdlCiAgICAgLy8gc2hvdWxkbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgdGhpcyB2ZXJ5
IG11Y2guCiAgICAgYWxsb2NhdGVTdGFjayhjb2RlKTsKKyAgICAKKyAgICBpZiAoT3B0aW9uczo6
ZHVtcEFpckFmdGVyQWxsb2NhdGVTdGFjaygpKSB7CisgICAgICAgIGRhdGFMb2coIkR1bXBpbmcg
QWlyIGFmdGVyIGFsbG9jYXRlU3RhY2s6XG4iKTsKKyAgICAgICAgZGF0YUxvZyhjb2RlKTsKKyAg
ICB9CiAKICAgICAvLyBJZiB3ZSBjb2FsZXNjZWQgbW92ZXMgdGhlbiB3ZSBjYW4gdW5icmVhayBj
cml0aWNhbCBlZGdlcy4gVGhpcyBpcyB0aGUgbWFpbiByZWFzb24gZm9yIHRoaXMKICAgICAvLyBw
aGFzZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3RJbmxp
bmVzLmgJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlySW5zdElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNjUgKzM2LDEzIEBACiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIAotdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RydWN0IEZvckVhY2g7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JFYWNoPFRt
cD4gewotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+Ci0gICAgc3RhdGljIHZvaWQgZm9y
RWFjaChJbnN0JiBpbnN0LCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAgICAg
aW5zdC5mb3JFYWNoVG1wKGZ1bmN0b3IpOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0
IEZvckVhY2g8QXJnPiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0
aWMgdm9pZCBmb3JFYWNoKEluc3QmIGluc3QsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAg
ewotICAgICAgICBpbnN0LmZvckVhY2hBcmcoZnVuY3Rvcik7Ci0gICAgfQotfTsKLQotdGVtcGxh
dGU8PiBzdHJ1Y3QgRm9yRWFjaDxTdGFja1Nsb3QqPiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
RnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEluc3QmIGluc3QsIGNvbnN0IEZ1bmN0
b3ImIGZ1bmN0b3IpCi0gICAgewotICAgICAgICBpbnN0LmZvckVhY2hBcmcoCi0gICAgICAgICAg
ICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lk
dGggd2lkdGgpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKCkpCi0gICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBTdGFja1Nsb3QqIHN0YWNrU2xv
dCA9IGFyZy5zdGFja1Nsb3QoKTsKLQotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlz
IHdheSB0b28gb3B0aW1pc3RpYyBhYm91dCB0aGUgbWVhbmluZyBvZiAiRGVmIi4gSXQgZ2V0cyBs
dWNreSBmb3IKLSAgICAgICAgICAgICAgICAvLyBub3cgYmVjYXVzZSBvdXIgb25seSB1c2Ugb2Yg
IkFub255bW91cyIgc3RhY2sgc2xvdHMgaGFwcGVucyB0byB3YW50IHRoZSBvcHRpbWlzdGljCi0g
ICAgICAgICAgICAgICAgLy8gc2VtYW50aWNzLiBXZSBjb3VsZCBmaXggdGhpcyBieSBqdXN0IGNo
YW5naW5nIHRoZSBjb21tZW50cyB0aGF0IGRlc2NyaWJlIHRoZQotICAgICAgICAgICAgICAgIC8v
IHNlbWFudGljcyBvZiAiQW5vbnltb3VzIi4KLSAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTI4Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgZnVuY3RvcihzdGFja1Nsb3QsIHJvbGUsIHR5cGUsIHdpZHRoKTsKLSAg
ICAgICAgICAgICAgICBhcmcgPSBBcmc6OnN0YWNrKHN0YWNrU2xvdCwgYXJnLm9mZnNldCgpKTsK
LSAgICAgICAgICAgIH0pOwotICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8
UmVnPiB7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9pZCBm
b3JFYWNoKEluc3QmIGluc3QsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAgICAg
ICBpbnN0LmZvckVhY2hUbXAoCi0gICAgICAgICAgICBbJl0gKFRtcCYgdG1wLCBBcmc6OlJvbGUg
cm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoIXRtcC5pc1JlZygpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgICAgICAgICBSZWcgcmVnID0gdG1wLnJlZygpOwotICAgICAgICAgICAgICAgIGZ1bmN0b3Io
cmVnLCByb2xlLCB0eXBlLCB3aWR0aCk7Ci0gICAgICAgICAgICAgICAgdG1wID0gVG1wKHJlZyk7
Ci0gICAgICAgICAgICB9KTsKLSAgICB9Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUaGluZywg
dHlwZW5hbWUgRnVuY3Rvcj4KIHZvaWQgSW5zdDo6Zm9yRWFjaChjb25zdCBGdW5jdG9yJiBmdW5j
dG9yKQogewotICAgIEZvckVhY2g8VGhpbmc+Ojpmb3JFYWNoKCp0aGlzLCBmdW5jdG9yKTsKKyAg
ICBmb3JFYWNoQXJnKAorICAgICAgICBbJl0gKEFyZyYgYXJnLCBBcmc6OlJvbGUgcm9sZSwgQXJn
OjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKKyAgICAgICAgICAgIGFyZy5mb3JFYWNo
PFRoaW5nPihyb2xlLCB0eXBlLCB3aWR0aCwgZnVuY3Rvcik7CisgICAgICAgIH0pOwogfQogCiBp
bmxpbmUgY29uc3QgUmVnaXN0ZXJTZXQmIEluc3Q6OmV4dHJhQ2xvYmJlcmVkUmVncygpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckxvZ1JlZ2lzdGVyUHJlc3N1cmUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG9nUmVnaXN0
ZXJQcmVzc3VyZS5jcHAJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyTG9nUmVnaXN0ZXJQcmVzc3VyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJBcmdJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiQWlyTGl2ZW5lc3MuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyUmVwb3J0VXNlZFJlZ2lzdGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJSZXBvcnRVc2VkUmVnaXN0ZXJzLmNwcAkocmV2aXNpb24g
MjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJSZXBvcnRVc2VkUmVn
aXN0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxF
KEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIKICNpbmNsdWRlICJBaXJDb2Rl
LmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKICNpbmNsdWRlICJBaXJMaXZlbmVzcy5o
IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhpbmcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BpbGxF
dmVyeXRoaW5nLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWlyQXJnSW5saW5lcy5o
IgogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnNlcnRpb25TZXQuaCIKICNp
bmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkocmV2aXNpb24gMjAxNzE2KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDkwLDMgKzEwOTAsOTYgQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQiKSB7CiAg
ICAgb3V0cC5wdXRzICJ9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyIgogfQogCisjIFRo
aXMgaXMgYSBoYWNrIGZvciBKU0Fpci4gSXQncyBhIGpva2UuCitGaWxlLm9wZW4oIkpTQWlyX29w
Y29kZS5qcyIsICJ3IikgeworICAgIHwgb3V0cCB8CisgICAgb3V0cC5wdXRzICJcInVzZSBzdHJp
Y3RcIjsiCisgICAgb3V0cC5wdXRzICIvLyBHZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5y
YiBmcm9tICN7JGZpbGVOYW1lfSAtLSBkbyBub3QgZWRpdCEiCisgICAgCisgICAgJG9wY29kZXMu
dmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIG91dHAucHV0cyAiY29u
c3QgI3tvcGNvZGUubmFtZX0gPSBTeW1ib2woI3tvcGNvZGUubmFtZS5pbnNwZWN0fSk7IgorICAg
IH0KKyAgICAKKyAgICBvdXRwLnB1dHMgImZ1bmN0aW9uIEluc3RfZm9yRWFjaEFyZyhpbnN0LCBm
dW5jKSIKKyAgICBvdXRwLnB1dHMgInsiCisgICAgb3V0cC5wdXRzICJsZXQgcmVwbGFjZW1lbnQ7
IgorICAgIG91dHAucHV0cyAic3dpdGNoIChpbnN0Lm9wY29kZSkgeyIKKyAgICAkb3Bjb2Rlcy52
YWx1ZXMuZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwKKyAgICAgICAgb3V0cC5wdXRzICJjYXNl
ICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgaWYgb3Bjb2RlLmN1c3RvbQorICAgICAgICAgICAg
b3V0cC5wdXRzICIje29wY29kZS5uYW1lfUN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOyIK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgbmVlZE92ZXJsb2FkU3dpdGNoID0gb3Bjb2RlLm92
ZXJsb2Fkcy5zaXplICE9IDEKKyAgICAgICAgICAgIG91dHAucHV0cyAic3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7IiBpZiBuZWVkT3ZlcmxvYWRTd2l0Y2gKKyAgICAgICAgICAgIG9wY29kZS5v
dmVybG9hZHMuZWFjaCB7CisgICAgICAgICAgICAgICAgfCBvdmVybG9hZCB8CisgICAgICAgICAg
ICAgICAgb3V0cC5wdXRzICJjYXNlICN7b3ZlcmxvYWQuc2lnbmF0dXJlLmxlbmd0aH06IiBpZiBu
ZWVkT3ZlcmxvYWRTd2l0Y2gKKyAgICAgICAgICAgICAgICBvdmVybG9hZC5zaWduYXR1cmUuZWFj
aF93aXRoX2luZGV4IHsKKyAgICAgICAgICAgICAgICAgICAgfCBhcmcsIGluZGV4IHwKKyAgICAg
ICAgICAgICAgICAgICAgcm9sZSA9IG5pbAorICAgICAgICAgICAgICAgICAgICBjYXNlIGFyZy5y
b2xlCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlUiCisgICAgICAgICAgICAgICAgICAgICAg
ICByb2xlID0gIlVzZSIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiRCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJvbGUgPSAiRGVmIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJaRCIK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiWkRlZiIKKyAgICAgICAgICAgICAgICAg
ICAgd2hlbiAiVUQiCisgICAgICAgICAgICAgICAgICAgICAgICByb2xlID0gIlVzZURlZiIKKyAg
ICAgICAgICAgICAgICAgICAgd2hlbiAiVVpEIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9s
ZSA9ICJVc2VaRGVmIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJVQSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJvbGUgPSAiVXNlQWRkciIKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAi
UyIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiU2NyYXRjaCIKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAg
ICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBv
dXRwLnB1dHMgImluc3QudmlzaXRBcmcoI3tpbmRleH0sIGZ1bmMsIEFyZy4je3JvbGV9LCAje2Fy
Zy50eXBlfVAsICN7YXJnLndpZHRofSk7IgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBvdXRwLnB1dHMgImJyZWFrOyIKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIG5l
ZWRPdmVybG9hZFN3aXRjaAorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiZGVmYXVsdDoiCisg
ICAgICAgICAgICAgICAgb3V0cC5wdXRzICJ0aHJvdyBuZXcgRXJyb3IoXCJCYWQgb3ZlcmxvYWRc
Iik7IgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiYnJlYWs7IgorICAgICAgICAgICAgICAg
IG91dHAucHV0cyAifSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICBlbmQKKyAgICAgICAgb3V0
cC5wdXRzICJicmVhazsiCisgICAgfQorICAgIG91dHAucHV0cyAiZGVmYXVsdDoiCisgICAgb3V0
cC5wdXRzICJ0aHJvdyBcIkJhZCBvcGNvZGVcIjsiCisgICAgb3V0cC5wdXRzICJ9IgorICAgIG91
dHAucHV0cyAifSIKKyAgICAKKyAgICBvdXRwLnB1dHMgImZ1bmN0aW9uIEluc3RfaGFzTm9uQXJn
RWZmZWN0cyhpbnN0KSIKKyAgICBvdXRwLnB1dHMgInsiCisgICAgb3V0cC5wdXRzICJzd2l0Y2gg
KGluc3Qub3Bjb2RlKSB7IgorICAgIGZvdW5kVHJ1ZSA9IGZhbHNlCisgICAgJG9wY29kZXMudmFs
dWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5hdHRyaWJ1
dGVzWzp0ZXJtaW5hbF0gb3Igb3Bjb2RlLmF0dHJpYnV0ZXNbOmVmZmVjdHNdCisgICAgICAgICAg
ICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICAgICAgZm91bmRUcnVl
ID0gdHJ1ZQorICAgICAgICBlbmQKKyAgICB9CisgICAgaWYgZm91bmRUcnVlCisgICAgICAgIG91
dHAucHV0cyAicmV0dXJuIHRydWU7IgorICAgIGVuZAorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNo
IHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuY3VzdG9tCisgICAgICAg
ICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICAgICAgb3V0cC5w
dXRzICJyZXR1cm4gI3tvcGNvZGUubmFtZX1DdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVj
dHMoaW5zdCk7IgorICAgICAgICBlbmQKKyAgICB9CisgICAgb3V0cC5wdXRzICJkZWZhdWx0OiIK
KyAgICBvdXRwLnB1dHMgInJldHVybiBmYWxzZTsiCisgICAgb3V0cC5wdXRzICJ9IgorICAgIG91
dHAucHV0cyAifSIKK30KKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmNwcAkocmV2aXNp
b24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zMyw2ICszMywxNSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY29uc3QgY2hhciog
UmVnOjpkZWJ1Z05hbWUoKSBjb25zdAoreworICAgIGlmICghKnRoaXMpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIGlmIChpc0dQUigpKQorICAgICAgICByZXR1cm4gR1BSSW5mbzo6ZGVi
dWdOYW1lKGdwcigpKTsKKyAgICByZXR1cm4gRlBSSW5mbzo6ZGVidWdOYW1lKGZwcigpKTsKK30K
Kwogdm9pZCBSZWc6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBpZiAoISp0
aGlzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCShyZXZpc2lvbiAyMDE3MTYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNiAr
MTcyLDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9pbmRleDsKICAgICB9CiAgICAgCisg
ICAgY29uc3QgY2hhciogZGVidWdOYW1lKCkgY29uc3Q7CisgICAgCiAgICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJikgY29uc3Q7CiAKICAgICBjbGFzcyBBbGxSZWdzSXRlcmFibGUgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyRXJyb3IuaAkocmV2aXNpb24gMjAx
NzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjEsNCArMTIxLDUxIEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwogCituYW1lc3BhY2UgV1RGIHsKKworaW5saW5lIHZvaWQgcHJpbnRJbnRlcm5hbChQcmlu
dFN0cmVhbSYgb3V0LCBKU0M6OlBhcnNlckVycm9yOjpTeW50YXhFcnJvclR5cGUgdHlwZSkKK3sK
KyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6OlN5bnRheEVy
cm9yTm9uZToKKyAgICAgICAgb3V0LnByaW50KCJTeW50YXhFcnJvck5vbmUiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3JJcnJlY292ZXJh
YmxlOgorICAgICAgICBvdXQucHJpbnQoIlN5bnRheEVycm9ySXJyZWNvdmVyYWJsZSIpOworICAg
ICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpTeW50YXhFcnJvclVudGVy
bWluYXRlZExpdGVyYWw6CisgICAgICAgIG91dC5wcmludCgiU3ludGF4RXJyb3JVbnRlcm1pbmF0
ZWRMaXRlcmFsIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6
OlN5bnRheEVycm9yUmVjb3ZlcmFibGU6CisgICAgICAgIG91dC5wcmludCgiU3ludGF4RXJyb3JS
ZWNvdmVyYWJsZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK2lubGluZSB2b2lkIHByaW50SW50ZXJuYWwoUHJp
bnRTdHJlYW0mIG91dCwgSlNDOjpQYXJzZXJFcnJvcjo6RXJyb3JUeXBlIHR5cGUpCit7CisgICAg
c3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpFcnJvck5vbmU6Cisg
ICAgICAgIG91dC5wcmludCgiRXJyb3JOb25lIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNl
IEpTQzo6UGFyc2VyRXJyb3I6OlN0YWNrT3ZlcmZsb3c6CisgICAgICAgIG91dC5wcmludCgiU3Rh
Y2tPdmVyZmxvdyIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9y
OjpFdmFsRXJyb3I6CisgICAgICAgIG91dC5wcmludCgiRXZhbEVycm9yIik7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6Ok91dE9mTWVtb3J5OgorICAgICAgICBv
dXQucHJpbnQoIk91dE9mTWVtb3J5Iik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6
UGFyc2VyRXJyb3I6OlN5bnRheEVycm9yOgorICAgICAgICBvdXQucHJpbnQoIlN5bnRheEVycm9y
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKICNlbmRpZiAvLyBQYXJzZXJF
cnJvcl9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZp
c2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM2OCw2ICszNjgsOSBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9w
dGlvblN0cmluZzsKICAgICB2KGJvb2wsIGR1bXBNb2R1bGVMb2FkaW5nU3RhdGUsIGZhbHNlLCBO
b3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGV4cG9zZUludGVybmFsTW9kdWxlTG9hZGVy
LCBmYWxzZSwgTm9ybWFsLCAiZXhwb3NlIHRoZSBpbnRlcm5hbCBtb2R1bGUgbG9hZGVyIG9iamVj
dCB0byB0aGUgZ2xvYmFsIHNwYWNlIGZvciBkZWJ1Z2dpbmciKSBcCiAgICAgXAorICAgIHYoYm9v
bCwgZHVtcEFpckFzSlNCZWZvcmVBbGxvY2F0ZVN0YWNrLCBmYWxzZSwgTm9ybWFsLCBudWxscHRy
KSBcCisgICAgdihib29sLCBkdW1wQWlyQWZ0ZXJBbGxvY2F0ZVN0YWNrLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKSBcCisgICAgXAogICAgIHYoYm9vbCwgdXNlU3VwZXJTYW1wbGVyLCBmYWxzZSwg
Tm9ybWFsLCBudWxscHRyKQogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL0luc2VydGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0luc2Vy
dGlvbi5oCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvV1RGL3d0Zi9JbnNlcnRpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtNjAsMTIgKzYwLDEyIEBAIHNpemVfdCBleGVjdXRlSW5zZXJ0aW9u
cyhUYXJnZXRWZWN0b3JUeXAKICAgICBzaXplX3QgbnVtSW5zZXJ0aW9ucyA9IGluc2VydGlvbnMu
c2l6ZSgpOwogICAgIGlmICghbnVtSW5zZXJ0aW9ucykKICAgICAgICAgcmV0dXJuIDA7CisgICAg
c2l6ZV90IG9yaWdpbmFsVGFyZ2V0U2l6ZSA9IHRhcmdldC5zaXplKCk7CiAgICAgdGFyZ2V0Lmdy
b3codGFyZ2V0LnNpemUoKSArIG51bUluc2VydGlvbnMpOwogICAgIHNpemVfdCBsYXN0SW5kZXgg
PSB0YXJnZXQuc2l6ZSgpOwotICAgIHNpemVfdCBvcmlnaW5hbFRhcmdldFNpemUgPSB0YXJnZXQu
c2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGluZGV4SW5JbnNlcnRpb25zID0gbnVtSW5zZXJ0aW9u
czsgaW5kZXhJbkluc2VydGlvbnMtLTspIHsKICAgICAgICAgQVNTRVJUKCFpbmRleEluSW5zZXJ0
aW9ucyB8fCBpbnNlcnRpb25zW2luZGV4SW5JbnNlcnRpb25zXS5pbmRleCgpID49IGluc2VydGlv
bnNbaW5kZXhJbkluc2VydGlvbnMgLSAxXS5pbmRleCgpKTsKLSAgICAgICAgQVNTRVJUX1VOVVNF
RChvcmlnaW5hbFRhcmdldFNpemUsIGluc2VydGlvbnNbaW5kZXhJbkluc2VydGlvbnNdLmluZGV4
KCkgPCBvcmlnaW5hbFRhcmdldFNpemUpOworICAgICAgICBBU1NFUlRfVU5VU0VEKG9yaWdpbmFs
VGFyZ2V0U2l6ZSwgaW5zZXJ0aW9uc1tpbmRleEluSW5zZXJ0aW9uc10uaW5kZXgoKSA8PSBvcmln
aW5hbFRhcmdldFNpemUpOwogICAgICAgICBzaXplX3QgZmlyc3RJbmRleCA9IGluc2VydGlvbnNb
aW5kZXhJbkluc2VydGlvbnNdLmluZGV4KCkgKyBpbmRleEluSW5zZXJ0aW9uczsKICAgICAgICAg
c2l6ZV90IGluZGV4T2Zmc2V0ID0gaW5kZXhJbkluc2VydGlvbnMgKyAxOwogICAgICAgICBmb3Ig
KHNpemVfdCBpID0gbGFzdEluZGV4OyAtLWkgPiBmaXJzdEluZGV4OykKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL1ByaW50U3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUHJpbnRT
dHJlYW0uaAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0u
aAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsMTMgQEAgcHVibGljOgogICAgICAgICBwcmlu
dEludGVybmFsKCp0aGlzLCB2YWx1ZSk7CiAgICAgICAgIHByaW50KHJlbWFpbmluZ1ZhbHVlcy4u
Lik7CiAgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgorICAgIHZv
aWQgcHJpbnRsbihjb25zdCBUeXBlcyYuLi4gdmFsdWVzKQorICAgIHsKKyAgICAgICAgcHJpbnQo
dmFsdWVzLi4uKTsKKyAgICAgICAgcHJpbnQoIlxuIik7CisgICAgfQogfTsKIAogV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYsIGNvbnN0IGNoYXIqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280735</attachid>
            <date>2016-06-07 13:54:49 -0700</date>
            <delta_ts>2016-06-07 14:19:45 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>554267</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDE3NzApCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwMyBAQAorMjAxNi0wNi0wNyAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBBaXI6
OmFsbG9jYXRlU3RhY2soKSBpbiBFUzYgdG8gc2VlIGhvdyBtdWNoIG9mIGEgYmFkIGlkZWEgdGhh
dCBpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4
MzE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBUaGlzIGFkZHMgYSBuZXcgYmVuY2htYXJrIGZvciB1cyB0byBwbGF5IHdpdGggY2FsbGVk
IEpTQWlyLiBJdCdzIGEgY29tcGxldGUgRVM2CisgICAgICAgIGltcGxlbWVudGF0aW9uIG9mIEFp
cidzIGFsbG9jYXRlU3RhY2soKSBwaGFzZSBhbG9uZyB3aXRoIGFsbCBvZiBBaXIgbmVlZGVkIHRv
IHJ1biB0aGF0CisgICAgICAgIHBoYXNlLiBUaGlzIGluY2x1ZGVzIHRoaW5ncyBsaWtlIHN0YWNr
IHNsb3RzLCByZWdpc3RlcnMsIHRlbXBvcmFyaWVzLCBiYXNpYyBibG9ja3MsCisgICAgICAgIGlu
c3RydWN0aW9ucywgYW5kIGFsbCBvZiB0aGUgY29kZSBmb3IgaXRlcmF0aW5nIG92ZXIsIGluc3Bl
Y3RpbmcsIGFuZCBtb2RpZnlpbmcgdGhvc2UKKyAgICAgICAgdGhpbmdzLgorICAgICAgICAKKyAg
ICAgICAgVG8gbWFrZSB0aGlzIHdvcmssIEpTQyBjYW4gbm93IGR1bXAgQWlyIGp1c3QgYmVmb3Jl
IGFsbG9jYXRlU3RhY2soKSBpbiB0aGUgZm9ybSBvZiBKUyBjb2RlCisgICAgICAgIHRoYXQgY3Jl
YXRlcyBhIENvZGUgb2JqZWN0IHRoYXQgbWF0Y2hlcyBleGFjdGx5IHdoYXQgQysrIEFpciBzYXcu
IFRoaXMgYmVuY2htYXJrIGNvbXByaXNlcworICAgICAgICBmb3VyIEFpciBJUnM6CisgICAgICAg
IAorICAgICAgICAtIE9jdGFuZS9nYmVtdSdzIGxhcmdlc3QgZnVuY3Rpb24sIGV4ZWN1dGVJdGVy
YXRpb24uCisgICAgICAgIC0gS3Jha2VuL2ltYWdpbmctZ2F1c3NpYW4tYmx1cidzIGxhcmdlc3Qg
ZnVuY3Rpb24gaW4gT1NSIGVudHJ5IG1vZGUsIGdhdXNzdWFuQmx1ci4KKyAgICAgICAgLSBPY3Rh
bmUvdHlwZXNjcmlwdCdzIGxhcmdlc3QgZnVuY3Rpb24gdGhhdCBpcyBhY3R1YWxseSBob3QsIHNj
YW5JZGVudGlmaWVyLgorICAgICAgICAtIEpTQWlyJ3MgbGFyZ2VzdCBob3QgZnVuY3Rpb24sIHdo
aWNoIGlzIGFub255bW91cywgc28gd2UgY2FsbCBpdCBieSBpdHMgaGFzaCAoQUNMajhDKS4KKyAg
ICAgICAgCisgICAgICAgIFRoaXMgcnVucyBpbiBhYm91dCAyIHNlY29uZHMgb24gbXkgbWFjaGlu
ZSBpbiBKU0MgdHJ1bmsuIEl0IGluY2x1ZGVzIGJvdGggYSBjb21tYW5kbGluZQorICAgICAgICBo
YXJuZXNzIGFuZCBhIHdlYiBoYXJuZXNzLgorICAgICAgICAKKyAgICAgICAgSlNBaXIgdXNlcyB0
aGUgZm9sbG93aW5nIEVTNiBmZWF0dXJlczoKKyAgICAgICAgCisgICAgICAgIC0gU3ltYm9sLgor
ICAgICAgICAtIGZvci1vZi4KKyAgICAgICAgLSBhcnJvdyBmdW5jdGlvbnMuCisgICAgICAgIC0g
TWFwL1NldC4KKyAgICAgICAgLSBsZXQvY29uc3QuCisgICAgICAgIC0gY2xhc3Nlcy4KKyAgICAg
ICAgCisgICAgICAgIEFsbCBvZiB0aGVzZSB0aGluZ3MgYXJlIHVzZWQgaW4gYW5nZXIgYW5kIHNo
b3VsZCBlbmQgdXAgb24gdGhlIGhvdCBwYXRoLiBUaGVyZSBpcyBhbHNvIGNvZGUKKyAgICAgICAg
dGhhdCB1c2VzIFByb3hpZXMsIGJ1dCBpdCBlbmRzIHVwIGJlaW5nIGRlYWQuCisgICAgICAgIAor
ICAgICAgICAqIEpTQWlyOiBBZGRlZC4KKyAgICAgICAgKiBKU0Fpci9hbGwuanM6IEFkZGVkLgor
ICAgICAgICAqIEpTQWlyL2FsbG9jYXRlX3N0YWNrLmpzOiBBZGRlZC4KKyAgICAgICAgKGFsbG9j
YXRlU3RhY2suYXR0ZW1wdEFzc2lnbm1lbnQpOgorICAgICAgICAoYWxsb2NhdGVTdGFjay5hc3Np
Z24pOgorICAgICAgICAoYWxsb2NhdGVTdGFjay5pbnRlcmZlcmUpOgorICAgICAgICAoYWxsb2Nh
dGVTdGFjay4pOgorICAgICAgICAoYWxsb2NhdGVTdGFjayk6CisgICAgICAgICogSlNBaXIvYXJn
LmpzOiBBZGRlZC4KKyAgICAgICAgKEFyZyk6CisgICAgICAgIChBcmcuaXNBbnlVc2UpOgorICAg
ICAgICAoQXJnLmlzQ29sZFVzZSk6CisgICAgICAgIChBcmcuaXNXYXJtVXNlKToKKyAgICAgICAg
KEFyZy5jb29sZWQpOgorICAgICAgICAoQXJnLmlzRWFybHlVc2UpOgorICAgICAgICAoQXJnLmlz
TGF0ZVVzZSk6CisgICAgICAgIChBcmcuaXNBbnlEZWYpOgorICAgICAgICAoQXJnLmlzRWFybHlE
ZWYpOgorICAgICAgICAoQXJnLmlzTGF0ZURlZik6CisgICAgICAgIChBcmcuaXNaRGVmKToKKyAg
ICAgICAgKEFyZy50eXBlRm9yQjNUeXBlKToKKyAgICAgICAgKEFyZy53aWR0aEZvckIzVHlwZSk6
CisgICAgICAgIChBcmcuY29uc2VydmF0aXZlV2lkdGgpOgorICAgICAgICAoQXJnLm1pbmltdW1X
aWR0aCk6CisgICAgICAgIChBcmcuYnl0ZXMpOgorICAgICAgICAoQXJnLndpZHRoRm9yQnl0ZXMp
OgorICAgICAgICAoQXJnLmNyZWF0ZVRtcCk6CisgICAgICAgIChBcmcuZnJvbVJlZyk6CisgICAg
ICAgIChBcmcuY3JlYXRlSW1tKToKKyAgICAgICAgKEFyZy5jcmVhdGVCaWdJbW0pOgorICAgICAg
ICAoQXJnLmNyZWF0ZUJpdEltbSk6CisgICAgICAgIChBcmcuY3JlYXRlQml0SW1tNjQpOgorICAg
ICAgICAoQXJnLmNyZWF0ZUFkZHIpOgorICAgICAgICAoQXJnLmNyZWF0ZVN0YWNrKToKKyAgICAg
ICAgKEFyZy5jcmVhdGVDYWxsQXJnKToKKyAgICAgICAgKEFyZy5jcmVhdGVTdGFja0FkZHIpOgor
ICAgICAgICAoQXJnLmlzVmFsaWRTY2FsZSk6CisgICAgICAgIChBcmcubG9nU2NhbGUpOgorICAg
ICAgICAoQXJnLmNyZWF0ZUluZGV4KToKKyAgICAgICAgKEFyZy5jcmVhdGVSZWxDb25kKToKKyAg
ICAgICAgKEFyZy5jcmVhdGVSZXNDb25kKToKKyAgICAgICAgKEFyZy5jcmVhdGVEb3VibGVDb25k
KToKKyAgICAgICAgKEFyZy5jcmVhdGVXaWR0aCk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdl
dCBraW5kKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzVG1wKToKKyAgICAgICAgKEFy
Zy5wcm90b3R5cGUuZ2V0IGlzSW1tKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzQmln
SW1tKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzQml0SW1tKToKKyAgICAgICAgKEFy
Zy5wcm90b3R5cGUuZ2V0IGlzQml0SW1tNjQpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQg
aXNTb21lSW1tKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzQWRkcik6CisgICAgICAg
IChBcmcucHJvdG90eXBlLmdldCBpc1N0YWNrKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0
IGlzQ2FsbEFyZyk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBpc0luZGV4KToKKyAgICAg
ICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzTWVtb3J5KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUu
Z2V0IGlzU3RhY2tNZW1vcnkpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgaXNSZWxDb25k
KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzUmVzQ29uZCk6CisgICAgICAgIChBcmcu
cHJvdG90eXBlLmdldCBpc0RvdWJsZUNvbmQpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQg
aXNDb25kaXRpb24pOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgaXNXaWR0aCk6CisgICAg
ICAgIChBcmcucHJvdG90eXBlLmdldCBpc0FsaXZlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUu
Z2V0IHRtcCk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAgICAgIChB
cmcucHJvdG90eXBlLmdldCBiYXNlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGhhc09m
ZnNldCk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBvZmZzZXQpOgorICAgICAgICAoQXJn
LnByb3RvdHlwZS5nZXQgc3RhY2tTbG90KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlu
ZGV4KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IHNjYWxlKToKKyAgICAgICAgKEFyZy5w
cm90b3R5cGUuZ2V0IGxvZ1NjYWxlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IHdpZHRo
KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzR1BUbXApOgorICAgICAgICAoQXJnLnBy
b3RvdHlwZS5nZXQgaXNGUFRtcCk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBpc0dQKToK
KyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzRlApOgorICAgICAgICAoQXJnLnByb3RvdHlw
ZS5nZXQgaGFzVHlwZSk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAg
ICAgKEFyZy5wcm90b3R5cGUuaXNUeXBlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuaXNDb21w
YXRpYmxlVHlwZSk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBpc0dQUik6CisgICAgICAg
IChBcmcucHJvdG90eXBlLmdldCBncHIpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgaXNG
UFIpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgZnByKToKKyAgICAgICAgKEFyZy5wcm90
b3R5cGUuZ2V0IGlzUmVnKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IHJlZyk6CisgICAg
ICAgIChBcmcuaXNWYWxpZEltbUZvcm0pOgorICAgICAgICAoQXJnLmlzVmFsaWRCaXRJbW1Gb3Jt
KToKKyAgICAgICAgKEFyZy5pc1ZhbGlkQml0SW1tNjRGb3JtKToKKyAgICAgICAgKEFyZy5pc1Zh
bGlkQWRkckZvcm0pOgorICAgICAgICAoQXJnLmlzVmFsaWRJbmRleEZvcm0pOgorICAgICAgICAo
QXJnLnByb3RvdHlwZS5pc1ZhbGlkRm9ybSk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmZvckVh
Y2hUbXBGYXN0KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUudXNlc1RtcCk6CisgICAgICAgIChB
cmcucHJvdG90eXBlLmZvckVhY2hUbXApOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5pcyk6Cisg
ICAgICAgIChBcmcucHJvdG90eXBlLmFzKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZm9yRWFj
aEZhc3QpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5mb3JFYWNoKToKKyAgICAgICAgKEFyZy5l
eHRyYWN0KToKKyAgICAgICAgKEFyZy5mb3JFYWNoRmFzdCk6CisgICAgICAgIChBcmcuZm9yRWFj
aCk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBjb25kaXRpb24pOgorICAgICAgICAoQXJn
LnByb3RvdHlwZS5nZXQgaXNJbnZlcnRpYmxlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUudG9T
dHJpbmcpOgorICAgICAgICAqIEpTQWlyL2Jhc2ljX2Jsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAg
KEJhc2ljQmxvY2spOgorICAgICAgICAoQmFzaWNCbG9jay5wcm90b3R5cGUuZ2V0IGluZGV4KToK
KyAgICAgICAgKEJhc2ljQmxvY2sucHJvdG90eXBlLmdldCBzaXplKToKKyAgICAgICAgKEJhc2lj
QmxvY2sucHJvdG90eXBlLlN5bWJvbC5pdGVyYXRvcik6CisgICAgICAgIChCYXNpY0Jsb2NrLnBy
b3RvdHlwZS5hdCk6CisgICAgICAgIChCYXNpY0Jsb2NrLmdldCBsYXN0KToKKyAgICAgICAgKEJh
c2ljQmxvY2suZ2V0IGluc3RzKToKKyAgICAgICAgKEJhc2ljQmxvY2suZ2V0IG51bVN1Y2Nlc3Nv
cnMpOgorICAgICAgICAoQmFzaWNCbG9jay5nZXQgc3VjY2Vzc29ycyk6CisgICAgICAgIChCYXNp
Y0Jsb2NrLmdldCBzdWNjZXNzb3JCbG9ja3MuKToKKyAgICAgICAgKEJhc2ljQmxvY2suZ2V0IHN1
Y2Nlc3NvckJsb2Nrcyk6CisgICAgICAgIChCYXNpY0Jsb2NrLnNldCBnZXQgbnVtUHJlZGVjZXNz
b3JzKToKKyAgICAgICAgKEJhc2ljQmxvY2suZ2V0IHByZWRlY2Vzc29ycyk6CisgICAgICAgIChC
YXNpY0Jsb2NrLmdldCBmcmVxdWVuY3kpOgorICAgICAgICAoQmFzaWNCbG9jay5nZXQgaGVhZGVy
U3RyaW5nKToKKyAgICAgICAgKEJhc2ljQmxvY2suZ2V0IGZvb3RlclN0cmluZyk6CisgICAgICAg
ICogSlNBaXIvYmVuY2htYXJrLmpzOiBBZGRlZC4KKyAgICAgICAgKGJlbmNobWFyayk6CisgICAg
ICAgICogSlNBaXIvY29kZS5qczogQWRkZWQuCisgICAgICAgIChDb2RlKToKKyAgICAgICAgKENv
ZGUucHJvdG90eXBlLmFkZEJsb2NrKToKKyAgICAgICAgKENvZGUucHJvdG90eXBlLmFkZFN0YWNr
U2xvdCk6CisgICAgICAgIChDb2RlLnByb3RvdHlwZS5uZXdUbXApOgorICAgICAgICAoQ29kZS5w
cm90b3R5cGUuZ2V0IHNpemUpOgorICAgICAgICAoQ29kZS5wcm90b3R5cGUuYXQpOgorICAgICAg
ICAoQ29kZS5wcm90b3R5cGUuU3ltYm9sLml0ZXJhdG9yKToKKyAgICAgICAgKENvZGUucHJvdG90
eXBlLmdldCBibG9ja3MpOgorICAgICAgICAoQ29kZS5wcm90b3R5cGUuZ2V0IHN0YWNrU2xvdHMp
OgorICAgICAgICAoQ29kZS5wcm90b3R5cGUudG1wcyk6CisgICAgICAgIChDb2RlLnByb3RvdHlw
ZS5nZXQgY2FsbEFyZ0FyZWFTaXplKToKKyAgICAgICAgKENvZGUucHJvdG90eXBlLnJlcXVlc3RD
YWxsQXJnQXJlYVNpemUpOgorICAgICAgICAoQ29kZS5wcm90b3R5cGUuZ2V0IGZyYW1lU2l6ZSk6
CisgICAgICAgIChDb2RlLnByb3RvdHlwZS5zZXRGcmFtZVNpemUpOgorICAgICAgICAoQ29kZS5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAqIEpTQWlyL2N1c3RvbS5qczogQWRkZWQuCisg
ICAgICAgIChjb25zdC5TaHVmZmxlQ3VzdG9tLmZvckVhY2hBcmcpOgorICAgICAgICAoY29uc3Qu
U2h1ZmZsZUN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyk6CisgICAgICAgIChjb25z
dC5QYXRjaEN1c3RvbS5mb3JFYWNoQXJnKToKKyAgICAgICAgKGNvbnN0LlBhdGNoQ3VzdG9tLmhh
c05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKToKKyAgICAgICAgKGNvbnN0LkNDYWxsQ3VzdG9tLmZv
ckVhY2hBcmcpOgorICAgICAgICAoY29uc3QuQ0NhbGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJv
bEVmZmVjdHMpOgorICAgICAgICAoY29uc3QuQ29sZENDYWxsQ3VzdG9tLmZvckVhY2hBcmcpOgor
ICAgICAgICAoY29uc3QuQ29sZENDYWxsQ3VzdG9tLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3Rz
KToKKyAgICAgICAgKiBKU0Fpci9mcmVxdWVudGVkX2Jsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAg
KEZyZXF1ZW50ZWRCbG9jayk6CisgICAgICAgIChGcmVxdWVudGVkQmxvY2sucHJvdG90eXBlLnRv
U3RyaW5nKToKKyAgICAgICAgKiBKU0Fpci9pbnNlcnRpb25fc2V0LmpzOiBBZGRlZC4KKyAgICAg
ICAgKEluc2VydGlvbik6CisgICAgICAgIChJbnNlcnRpb24ucHJvdG90eXBlLmdldCBpbmRleCk6
CisgICAgICAgIChJbnNlcnRpb24ucHJvdG90eXBlLmdldCBlbGVtZW50KToKKyAgICAgICAgKElu
c2VydGlvbi5wcm90b3R5cGUubGVzc1RoYW4pOgorICAgICAgICAoSW5zZXJ0aW9uU2V0KToKKyAg
ICAgICAgKEluc2VydGlvblNldC5wcm90b3R5cGUuYXBwZW5kSW5zZXJ0aW9uKToKKyAgICAgICAg
KEluc2VydGlvblNldC5wcm90b3R5cGUuYXBwZW5kKToKKyAgICAgICAgKEluc2VydGlvblNldC5w
cm90b3R5cGUuZXhlY3V0ZSk6CisgICAgICAgICogSlNBaXIvaW5zdC5qczogQWRkZWQuCisgICAg
ICAgIChJbnN0KToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLmFwcGVuZCk6CisgICAgICAgIChJ
bnN0LnByb3RvdHlwZS5jbGVhcik6CisgICAgICAgIChJbnN0LnByb3RvdHlwZS5nZXQgb3Bjb2Rl
KToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLmdldCBhcmdzKToKKyAgICAgICAgKEluc3QucHJv
dG90eXBlLnZpc2l0QXJnKToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLmZvckVhY2hUbXBGYXN0
KToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLmZvckVhY2hBcmcpOgorICAgICAgICAoSW5zdC5w
cm90b3R5cGUuZm9yRWFjaFRtcCk6CisgICAgICAgIChJbnN0LnByb3RvdHlwZS5mb3JFYWNoKToK
KyAgICAgICAgKEluc3QuZm9yRWFjaERlZik6CisgICAgICAgIChJbnN0LmZvckVhY2hEZWZXaXRo
RXh0cmFDbG9iYmVyZWRSZWdzKToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLmdldCBoYXNOb25B
cmdFZmZlY3RzKToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KiBKU0Fpci9saXZlbmVzcy5qczogQWRkZWQuCisgICAgICAgIChMaXZlbmVzcyk6CisgICAgICAg
IChMaXZlbmVzcy5wcm90b3R5cGUuZ2V0IHRoaW5nKToKKyAgICAgICAgKExpdmVuZXNzLnByb3Rv
dHlwZS5nZXQgY29kZSk6CisgICAgICAgIChMaXZlbmVzcy5wcm90b3R5cGUuZ2V0IGxpdmVBdEhl
YWQpOgorICAgICAgICAoTGl2ZW5lc3MucHJvdG90eXBlLmdldCBsaXZlQXRUYWlsKToKKyAgICAg
ICAgKExpdmVuZXNzLnByb3RvdHlwZS5sb2NhbENhbGMuTG9jYWxDYWxjKToKKyAgICAgICAgKExp
dmVuZXNzLnByb3RvdHlwZS5sb2NhbENhbGMuTG9jYWxDYWxjLnByb3RvdHlwZS5nZXQgbGl2ZVNl
dCk6CisgICAgICAgIChMaXZlbmVzcy5wcm90b3R5cGUubG9jYWxDYWxjLkxvY2FsQ2FsYy5wcm90
b3R5cGUuZXhlY3V0ZSk6CisgICAgICAgIChMaXZlbmVzcy5wcm90b3R5cGUubG9jYWxDYWxjKToK
KyAgICAgICAgKiBKU0Fpci9vcGNvZGUuanM6IEFkZGVkLgorICAgICAgICAoSW5zdF9mb3JFYWNo
QXJnKToKKyAgICAgICAgKEluc3RfaGFzTm9uQXJnRWZmZWN0cyk6CisgICAgICAgICogSlNBaXIv
cGF5bG9hZC1nYmVtdS1leGVjdXRlSXRlcmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0
ZVBheWxvYWRHYmVtdUV4ZWN1dGVJdGVyYXRpb24pOgorICAgICAgICAqIEpTQWlyL3BheWxvYWQt
aW1hZ2luZy1nYXVzc2lhbi1ibHVyLWdhdXNzaWFuQmx1ci5qczogQWRkZWQuCisgICAgICAgIChj
cmVhdGVQYXlsb2FkSW1hZ2luZ0dhdXNzaWFuQmx1ckdhdXNzaWFuQmx1cik6CisgICAgICAgICog
SlNBaXIvcGF5bG9hZC1qc2Fpci1BQ0xqOEMuanM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlUGF5
bG9hZEpTQWlyQUNMajhDKToKKyAgICAgICAgKiBKU0Fpci9wYXlsb2FkLXR5cGVzY3JpcHQtc2Nh
bklkZW50aWZpZXIuanM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlUGF5bG9hZFR5cGVzY3JpcHRT
Y2FuSWRlbnRpZmllcik6CisgICAgICAgICogSlNBaXIvcmVnLmpzOiBBZGRlZC4KKyAgICAgICAg
KFJlZyk6CisgICAgICAgIChSZWcuZnJvbVJlZyk6CisgICAgICAgIChSZWcucHJvdG90eXBlLmdl
dCBpbmRleCk6CisgICAgICAgIChSZWcucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAgICAgKFJl
Zy5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoUmVnLnByb3RvdHlwZS5nZXQgaXNDYWxs
ZWVTYXZlKToKKyAgICAgICAgKFJlZy5wcm90b3R5cGUuZ2V0IGlzUmVnKToKKyAgICAgICAgKFJl
Zy5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoUmVnLmV4dHJhY3QpOgorICAgICAgICAo
UmVnLmZvckVhY2hGYXN0KToKKyAgICAgICAgKFJlZy5mb3JFYWNoKToKKyAgICAgICAgKG5ld0dQ
Uik6CisgICAgICAgIChSZWcuZ3Bycy5SZWcuZnBycy5SZWcuY2FsbGVlU2F2ZUdQUnMuUmVnLmNh
bGxlZVNhdmVGUFJzLlJlZy5jYWxsZWVTYXZlcyk6CisgICAgICAgICogSlNBaXIvc3RhY2tfc2xv
dC5qczogQWRkZWQuCisgICAgICAgIChTdGFja1Nsb3QpOgorICAgICAgICAoU3RhY2tTbG90LnBy
b3RvdHlwZS5nZXQgYnl0ZVNpemUpOgorICAgICAgICAoU3RhY2tTbG90LnByb3RvdHlwZS5nZXQg
a2luZCk6CisgICAgICAgIChTdGFja1Nsb3QucHJvdG90eXBlLmdldCBpc0xvY2tlZCk6CisgICAg
ICAgIChTdGFja1Nsb3QucHJvdG90eXBlLmdldCBpc1NwaWxsKToKKyAgICAgICAgKFN0YWNrU2xv
dC5wcm90b3R5cGUuZ2V0IGluZGV4KToKKyAgICAgICAgKFN0YWNrU2xvdC5wcm90b3R5cGUuZW5z
dXJlU2l6ZSk6CisgICAgICAgIChTdGFja1Nsb3QucHJvdG90eXBlLmdldCBhbGlnbm1lbnQpOgor
ICAgICAgICAoU3RhY2tTbG90LnByb3RvdHlwZS5nZXQgb2Zmc2V0RnJvbUZQKToKKyAgICAgICAg
KFN0YWNrU2xvdC5wcm90b3R5cGUuc2V0T2Zmc2V0RnJvbUZQKToKKyAgICAgICAgKFN0YWNrU2xv
dC5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoU3RhY2tTbG90LmV4dHJhY3QpOgorICAg
ICAgICAoU3RhY2tTbG90LmZvckVhY2hGYXN0KToKKyAgICAgICAgKFN0YWNrU2xvdC5mb3JFYWNo
KToKKyAgICAgICAgKiBKU0Fpci9zeW1ib2xzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBKU0Fpci90
ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIEpTQWlyL3Rlc3QuanM6IEFkZGVkLgorICAgICAg
ICAqIEpTQWlyL3RtcC5qczogQWRkZWQuCisgICAgICAgIChUbXApOgorICAgICAgICAoVG1wLmZy
b21SZWcpOgorICAgICAgICAoVG1wLnByb3RvdHlwZS5nZXQgaW5kZXgpOgorICAgICAgICAoVG1w
LnByb3RvdHlwZS5nZXQgdHlwZSk6CisgICAgICAgIChUbXAucHJvdG90eXBlLmdldCBpc1JlZyk6
CisgICAgICAgIChUbXAucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFRtcC5leHRyYWN0
KToKKyAgICAgICAgKFRtcC5mb3JFYWNoRmFzdCk6CisgICAgICAgIChUbXAuZm9yRWFjaCk6Cisg
ICAgICAgICogSlNBaXIvdG1wX2Jhc2UuanM6IEFkZGVkLgorICAgICAgICAoVG1wQmFzZS5wcm90
b3R5cGUuZ2V0IGlzR1ApOgorICAgICAgICAoVG1wQmFzZS5wcm90b3R5cGUuZ2V0IGlzRlApOgor
ICAgICAgICAoVG1wQmFzZS5wcm90b3R5cGUuZ2V0IGlzR1BSKToKKyAgICAgICAgKFRtcEJhc2Uu
cHJvdG90eXBlLmdldCBpc0ZQUik6CisgICAgICAgIChUbXBCYXNlLnByb3RvdHlwZS5nZXQgcmVn
KToKKyAgICAgICAgKFRtcEJhc2UucHJvdG90eXBlLmdldCBncHIpOgorICAgICAgICAoVG1wQmFz
ZS5wcm90b3R5cGUuZ2V0IGZwcik6CisgICAgICAgIChUbXBCYXNlKToKKyAgICAgICAgKiBKU0Fp
ci91dGlsLmpzOiBBZGRlZC4KKyAgICAgICAgKGlzUmVwcmVzZW50YWJsZUFzSW50MzIpOgorICAg
ICAgICAoYWRkSW5kZXhlZCk6CisgICAgICAgIChyb3VuZFVwVG9NdWx0aXBsZU9mKToKKyAgICAg
ICAgKHN5bWJvbE5hbWUpOgorICAgICAgICAobWVyZ2VJbnRvU2V0KToKKyAgICAgICAgKG5vbkVt
cHR5UmFuZ2VzT3ZlcmxhcCk6CisgICAgICAgIChyYW5nZXNPdmVybGFwKToKKyAgICAgICAgKHJl
bW92ZUFsbE1hdGNoaW5nKToKKyAgICAgICAgKHN3YXApOgorICAgICAgICAoYnViYmxlKToKKyAg
ICAgICAgKGJ1YmJsZVNvcnQpOgorICAgICAgICAoY3VycmVudFRpbWUpOgorICAgICAgICAoZWxz
ZS5jdXJyZW50VGltZSk6CisKIDIwMTYtMDUtMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRl
YUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gQWxsb3cgSlNCZW5jaCB0byB1c2UgcHJlY2lz
ZSB0aW1lCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FsbC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FsbC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvYWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKKyJ1
c2Ugc3RyaWN0IjsKKworbG9hZCgic3ltYm9scy5qcyIpOworbG9hZCgidG1wX2Jhc2UuanMiKTsK
K2xvYWQoImFyZy5qcyIpOworbG9hZCgiYmFzaWNfYmxvY2suanMiKTsKK2xvYWQoImNvZGUuanMi
KTsKK2xvYWQoImZyZXF1ZW50ZWRfYmxvY2suanMiKTsKK2xvYWQoImluc3QuanMiKTsKK2xvYWQo
Im9wY29kZS5qcyIpOworbG9hZCgicmVnLmpzIik7Citsb2FkKCJzdGFja19zbG90LmpzIik7Cits
b2FkKCJ0bXAuanMiKTsKK2xvYWQoInV0aWwuanMiKTsKK2xvYWQoImN1c3RvbS5qcyIpOworbG9h
ZCgibGl2ZW5lc3MuanMiKTsKK2xvYWQoImluc2VydGlvbl9zZXQuanMiKTsKK2xvYWQoImFsbG9j
YXRlX3N0YWNrLmpzIik7CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FsbG9jYXRlX3N0
YWNrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYWxsb2NhdGVfc3Rh
Y2suanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FsbG9jYXRlX3N0
YWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUzIEBACisidXNlIHN0cmljdCI7Cisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2Z1bmN0aW9uIGFs
bG9jYXRlU3RhY2soY29kZSkKK3sKKyAgICBpZiAoY29kZS5mcmFtZVNpemUpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiRnJhbWUgc2l6ZSBhbHJlYWR5IGRldGVybWluZWQiKTsKKyAgICAKKyAg
ICBmdW5jdGlvbiBhdHRlbXB0QXNzaWdubWVudChzbG90LCBvZmZzZXRGcm9tRlAsIG90aGVyU2xv
dHMpCisgICAgeworICAgICAgICBpZiAob2Zmc2V0RnJvbUZQID4gMCkKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiRXhwZWN0IG5lZ2F0aXZlIG9mZnNldCIpOworICAgICAgICAKKyAgICAg
ICAgb2Zmc2V0RnJvbUZQID0gLXJvdW5kVXBUb011bHRpcGxlT2Yoc2xvdC5hbGlnbm1lbnQsIC1v
ZmZzZXRGcm9tRlApOworICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgb3RoZXJTbG90IG9mIG90
aGVyU2xvdHMpIHsKKyAgICAgICAgICAgIGlmICghb3RoZXJTbG90Lm9mZnNldEZyb21GUCkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGxldCBvdmVybGFwID0gcmFuZ2Vz
T3ZlcmxhcCgKKyAgICAgICAgICAgICAgICBvZmZzZXRGcm9tRlAsCisgICAgICAgICAgICAgICAg
b2Zmc2V0RnJvbUZQICsgc2xvdC5ieXRlU2l6ZSwKKyAgICAgICAgICAgICAgICBvdGhlclNsb3Qu
b2Zmc2V0RnJvbUZQLAorICAgICAgICAgICAgICAgIG90aGVyU2xvdC5vZmZzZXRGcm9tRlAgKyBv
dGhlclNsb3QuYnl0ZVNpemUpOworICAgICAgICAgICAgaWYgKG92ZXJsYXApCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzbG90LnNl
dE9mZnNldEZyb21GUChvZmZzZXRGcm9tRlApOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgCisgICAgZnVuY3Rpb24gYXNzaWduKHNsb3QsIG90aGVyU2xvdHMpCisgICAgeworICAg
ICAgICBpZiAoYXR0ZW1wdEFzc2lnbm1lbnQoc2xvdCwgLXNsb3QuYnl0ZVNpemUsIG90aGVyU2xv
dHMpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgb3Ro
ZXJTbG90IG9mIG90aGVyU2xvdHMpIHsKKyAgICAgICAgICAgIGlmICghb3RoZXJTbG90Lm9mZnNl
dEZyb21GUCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChhdHRl
bXB0QXNzaWdubWVudChzbG90LCBvdGhlclNsb3Qub2Zmc2V0RnJvbUZQIC0gc2xvdC5ieXRlU2l6
ZSwgb3RoZXJTbG90cykpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFzc2lnbm1lbnQgZmFpbGVkIik7CisgICAg
fQorICAgIAorICAgIC8vIEFsbG9jYXRlIGFsbCBvZiB0aGUgZXNjYXBlZCBzbG90cyBpbiBvcmRl
ci4gVGhpcyBpcyBraW5kIG9mIGEgY3JhenkgYWxnb3JpdGhtIHRvIGFsbG93IGZvcgorICAgIC8v
IHRoZSBwb3NzaWJpbGl0eSBvZiBzdGFjayBzbG90cyBiZWluZyBhc3NpZ25lZCBmcmFtZSBvZmZz
ZXRzIGJlZm9yZSB3ZSBldmVuIGdldCBoZXJlLgorICAgIGxldCBhc3NpZ25lZEVzY2FwZWRTdGFj
a1Nsb3RzID0gW107CisgICAgbGV0IGVzY2FwZWRTdGFja1Nsb3RzV29ya2xpc3QgPSBbXTsKKyAg
ICBmb3IgKGxldCBzbG90IG9mIGNvZGUuc3RhY2tTbG90cykgeworICAgICAgICBpZiAoc2xvdC5p
c0xvY2tlZCkgeworICAgICAgICAgICAgaWYgKHNsb3Qub2Zmc2V0RnJvbUZQKQorICAgICAgICAg
ICAgICAgIGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHMucHVzaChzbG90KTsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBlc2NhcGVkU3RhY2tTbG90c1dvcmtsaXN0LnB1c2goc2xv
dCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoc2xvdC5vZmZzZXRGcm9tRlAp
CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPZmZzZXQgYWxyZWFkeSBhc3NpZ25l
ZCIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIFRoaXMgaXMgYSBmYWlybHkgZXNw
ZW5zaXZlIGxvb3AsIGJ1dCBpdCdzIE9LIGJlY2F1c2Ugd2UnbGwgdXN1YWxseSBvbmx5IGhhdmUg
YSBoYW5kZnVsIG9mCisgICAgLy8gZXNjYXBlZCBzdGFjayBzbG90cy4KKyAgICB3aGlsZSAoZXNj
YXBlZFN0YWNrU2xvdHNXb3JrbGlzdC5sZW5ndGgpIHsKKyAgICAgICAgbGV0IHNsb3QgPSBlc2Nh
cGVkU3RhY2tTbG90c1dvcmtsaXN0LnBvcCgpOworICAgICAgICBhc3NpZ24oc2xvdCwgYXNzaWdu
ZWRFc2NhcGVkU3RhY2tTbG90cyk7CisgICAgICAgIGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHMu
cHVzaChzbG90KTsKKyAgICB9CisgICAgCisgICAgLy8gTm93IHdlIGhhbmRsZSB0aGUgc3BpbGwg
c2xvdHMuCisgICAgbGV0IGxpdmVuZXNzID0gbmV3IExpdmVuZXNzKFN0YWNrU2xvdCwgY29kZSk7
CisgICAgbGV0IGludGVyZmVyZW5jZSA9IG5ldyBNYXAoKTsKKyAgICBmb3IgKGxldCBzbG90IG9m
IGNvZGUuc3RhY2tTbG90cykKKyAgICAgICAgaW50ZXJmZXJlbmNlLnNldChzbG90LCBuZXcgU2V0
KCkpOworICAgIGxldCBzbG90cyA9IFtdOworICAgIAorICAgIGZvciAobGV0IGJsb2NrIG9mIGNv
ZGUpIHsKKyAgICAgICAgbGV0IGxvY2FsQ2FsYyA9IGxpdmVuZXNzLmxvY2FsQ2FsYyhibG9jayk7
CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiBpbnRlcmZlcmUoaW5zdEluZGV4KQorICAgICAg
ICB7CisgICAgICAgICAgICBJbnN0LmZvckVhY2hEZWYoCisgICAgICAgICAgICAgICAgU3RhY2tT
bG90LCBibG9jay5nZXQoaW5zdEluZGV4KSwgYmxvY2suZ2V0KGluc3RJbmRleCArIDEpLAorICAg
ICAgICAgICAgICAgIChzbG90LCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAg
ICAgICAgICBpZiAoIXNsb3QuaXNTcGlsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG90
aGVyU2xvdCBvZiBsb2NhbENhbGMubGl2ZVNldCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
aW50ZXJmZXJlbmNlLmdldChzbG90KS5hZGQob3RoZXJTbG90KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGludGVyZmVyZW5jZS5nZXQob3RoZXJTbG90KS5hZGQoc2xvdCk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgZm9yIChsZXQgaW5zdEluZGV4ID0gYmxvY2suc2l6ZTsgaW5zdEluZGV4LS07KSB7Cisg
ICAgICAgICAgICAvLyBLaWxsIGRlYWQgc3RvcmVzLiBGb3Igc2ltcGxpY2l0eSB3ZSBzYXkgdGhh
dCBhIHN0b3JlIGlzIGtpbGxhYmxlIGlmIGl0IGhhcyBvbmx5IGxhdGUKKyAgICAgICAgICAgIC8v
IGRlZnMgYW5kIHRob3NlIGxhdGUgZGVmcyBhcmUgdG8gdGhpbmdzIHRoYXQgYXJlIGRlYWQgcmln
aHQgbm93LiBXZSBvbmx5IGRvIHRoYXQKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCdzIHRo
ZSBvbmx5IGtpbmQgb2YgZGVhZCBzdGFjayBzdG9yZSB3ZSB3aWxsIHNlZSBoZXJlLgorICAgICAg
ICAgICAgbGV0IGluc3QgPSBibG9jay5hdChpbnN0SW5kZXgpOworICAgICAgICAgICAgaWYgKCFp
bnN0Lmhhc05vbkFyZ0VmZmVjdHMpIHsKKyAgICAgICAgICAgICAgICBsZXQgb2sgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIGluc3QuZm9yRWFjaEFyZygoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCkg
PT4geworICAgICAgICAgICAgICAgICAgICBpZiAoQXJnLmlzRWFybHlEZWYocm9sZSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYg
KCFBcmcuaXNMYXRlRGVmKHJvbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBvayA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
ICAgICBsZXQgc2xvdCA9IGFyZy5zdGFja1Nsb3Q7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
c2xvdC5pc1NwaWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxDYWxjLmxpdmVT
ZXQuaGFzKHNsb3QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgaWYgKG9rKQorICAgICAgICAgICAgICAg
ICAgICBpbnN0LmNsZWFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGludGVyZmVyZShpbnN0SW5kZXgpOworICAgICAgICAgICAgbG9jYWxDYWxjLmV4ZWN1dGUo
aW5zdEluZGV4KTsKKyAgICAgICAgfQorICAgICAgICBpbnRlcmZlcmUoLTEpOworICAgICAgICAK
KyAgICAgICAgcmVtb3ZlQWxsTWF0Y2hpbmcoYmxvY2suaW5zdHMsIGluc3QgPT4gaW5zdC5vcGNv
ZGUgPT0gTm9wKTsKKyAgICB9CisgICAgCisgICAgLy8gTm93IHdlIGFzc2lnbiBzdGFjayBsb2Nh
dGlvbnMuIEF0IGl0cyBoZWFydCB0aGlzIGFsZ29yaXRobSBpcyBqdXN0IGZpcnN0LWZpdC4gRm9y
IGVhY2gKKyAgICAvLyBTdGFja1Nsb3Qgd2UganVzdCB3YW50IHRvIGZpbmQgdGhlIG9mZnNldEZy
b21GUCB0aGF0IGlzIGNsb3Nlc3QgdG8gemVybyB3aGlsZSBlbnN1cmluZyBubworICAgIC8vIG92
ZXJsYXAgd2l0aCBvdGhlciBTdGFja1Nsb3RzIHRoYXQgdGhpcyBvdmVybGFwcyB3aXRoLgorICAg
IGZvciAobGV0IHNsb3Qgb2YgY29kZS5zdGFja1Nsb3RzKSB7CisgICAgICAgIGlmIChzbG90Lm9m
ZnNldEZyb21GUCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgYXNz
aWduKHNsb3QsIGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHMuY29uY2F0KGludGVyZmVyZW5jZS5n
ZXQoc2xvdCkpKTsKKyAgICB9CisgICAgCisgICAgLy8gRmlndXJlIG91dCBob3cgbXVjaCBzdGFj
ayB3ZSdyZSB1c2luZyBmb3Igc3RhY2sgc2xvdHMuCisgICAgbGV0IGZyYW1lU2l6ZUZvclN0YWNr
U2xvdHMgPSAwOworICAgIGZvciAobGV0IHNsb3Qgb2YgY29kZS5zdGFja1Nsb3RzKSB7CisgICAg
ICAgIGZyYW1lU2l6ZUZvclN0YWNrU2xvdHMgPSBNYXRoLm1heCgKKyAgICAgICAgICAgIGZyYW1l
U2l6ZUZvclN0YWNrU2xvdHMsCisgICAgICAgICAgICAtc2xvdC5vZmZzZXRGcm9tRlApOworICAg
IH0KKyAgICAKKyAgICBmcmFtZVNpemVGb3JTdGFja1Nsb3RzID0gcm91bmRVcFRvTXVsdGlwbGVP
ZihzdGFja0FsaWdubWVudEJ5dGVzLCBmcmFtZVNpemVGb3JTdGFja1Nsb3RzKTsKKworICAgIC8v
IE5vIHdlIG5lZWQgdG8gZGVkdWNlIGhvdyBtdWNoIGFyZ3VtZW50IGFyZWEgd2UgbmVlZC4KKyAg
ICBmb3IgKGxldCBibG9jayBvZiBjb2RlKSB7CisgICAgICAgIGZvciAobGV0IGluc3Qgb2YgYmxv
Y2spIHsKKyAgICAgICAgICAgIGZvciAobGV0IGFyZyBvZiBpbnN0LmFyZ3MpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoYXJnLmlzQ2FsbEFyZykgeworICAgICAgICAgICAgICAgICAgICAvLyBGb3Ig
bm93LCB3ZSBhc3N1bWUgdGhhdCB3ZSB1c2UgOCBieXRlcyBvZiB0aGUgY2FsbCBhcmcuIEJ1dCB0
aGF0J3Mgbm90CisgICAgICAgICAgICAgICAgICAgIC8vIHN1Y2ggYW4gYXdlc29tZSBhc3N1bXB0
aW9uLgorICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MDQ1NAorICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLm9m
ZnNldCA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRpZCBu
b3QgZXhwZWN0IG5lZ2F0aXZlIG9mZnNldCBmb3IgY2FsbEFyZyIpOworICAgICAgICAgICAgICAg
ICAgICBjb2RlLnJlcXVlc3RDYWxsQXJnQXJlYVNpemUoYXJnLm9mZnNldCArIDgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBj
b2RlLnNldEZyYW1lU2l6ZShmcmFtZVNpemVGb3JTdGFja1Nsb3RzICsgY29kZS5jYWxsQXJnQXJl
YVNpemUpOworICAgIAorICAgIC8vIEZpbmFsbHkgdHJhbnNmb3JtIHRoZSBjb2RlIHRvIHVzZSBB
ZGRycyBpbnN0ZWFkIG9mIFN0YWNrU2xvdHMuIFRoaXMgaXMgYSBsb3NzbGVzcworICAgIC8vIHRy
YW5zZm9ybWF0aW9uIHNpbmNlIHdlIGNhbiBzZWFyY2ggdGhlIFN0YWNrU2xvdHMgYXJyYXkgdG8g
ZmlndXJlIG91dCB3aGljaCBTdGFja1Nsb3QgYW55CisgICAgLy8gb2Zmc2V0LWZyb20tRlAgcmVm
ZXJzIHRvLgorCisgICAgLy8gRklYTUU6IFRoaXMgbWF5IHByb2R1Y2UgYWRkcmVzc2VzIHRoYXQg
YXJlbid0IHZhbGlkIGlmIHdlIGVuZCB1cCB3aXRoIGEgZ2lub3Jtb3VzIHN0YWNrIGZyYW1lLgor
ICAgIC8vIFdlIHdvdWxkIGhhdmUgdG8gc2NhdmVuZ2UgZm9yIHRlbXBvcmFyaWVzIGlmIHRoaXMg
aGFwcGVuZWQuIEZvcnR1bmF0ZWx5LCB0aGlzIGNhc2Ugd2lsbCBiZQorICAgIC8vIGV4dHJlbWVs
eSByYXJlIHNvIHdlIGNhbiBkbyBjcmF6eSB0aGluZ3Mgd2hlbiBpdCBhcmlzZXMuCisgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjUzMAorICAgIAorICAg
IGxldCBpbnNlcnRpb25TZXQgPSBuZXcgSW5zZXJ0aW9uU2V0KCk7CisgICAgZm9yIChsZXQgYmxv
Y2sgb2YgY29kZSkgeworICAgICAgICBmb3IgKGxldCBpbnN0SW5kZXggPSAwOyBpbnN0SW5kZXgg
PCBibG9jay5zaXplOyArK2luc3RJbmRleCkgeworICAgICAgICAgICAgbGV0IGluc3QgPSBibG9j
ay5hdChpbnN0SW5kZXgpOworICAgICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKChhcmcsIHJvbGUs
IHR5cGUsIHdpZHRoKSA9PiB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gc3RhY2tBZGRyKG9m
ZnNldCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBBcmcu
Y3JlYXRlU3RhY2tBZGRyKG9mZnNldCwgY29kZS5mcmFtZVNpemUsIHdpZHRoKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc3dpdGNoIChhcmcu
a2luZCkgeworICAgICAgICAgICAgICAgIGNhc2UgQXJnLlN0YWNrOiB7CisgICAgICAgICAgICAg
ICAgICAgIGxldCBzbG90ID0gYXJnLnN0YWNrU2xvdDsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KEFyZy5pc1pEZWYocm9sZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIHNsb3QuaXNTcGls
bAorICAgICAgICAgICAgICAgICAgICAgICAgJiYgc2xvdC5ieXRlU2l6ZSA+IEFyZy5ieXRlcyh3
aWR0aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IGhh
bmRsZSB0aGlzIHNpbXBsZSBjYXNlIGJlY2F1c2UgaXQncyB0aGUgb25seSBvbmUKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIHRoYXQgYXJpc2VzOiBaRGVmJ3MgYXJlIG9ubHkgMzItYml0IHJp
Z2h0IG5vdy4gU28sIHdoZW4gd2UgaGl0IHRoZXNlCisgICAgICAgICAgICAgICAgICAgICAgICAv
LyBhc3NlcnRpb25zIGl0IG1lYW5zIHRoYXQgd2UgbmVlZCB0byBpbXBsZW1lbnQgdGhvc2Ugb3Ro
ZXIga2luZHMgb2YKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHplcm8gZmlsbHMuCisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoc2xvdC5ieXRlU2l6ZSAhPSA4KSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiQmFkIHNwaWxsIHNsb3Qgc2l6ZSBmb3IgWkRlZjogIiArIHNsb3QuYnl0ZVNp
emUgKyAiLCB3aWR0aCBpcyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdpZHRoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICh3aWR0aCAhPSAzMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkJhZCB3aWR0aCBmb3IgWkRlZiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0KAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluc3RJbmRleCArIDEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmV3IEluc3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlWmVy
bzMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhY2tBZGRyKGFyZy5vZmZz
ZXQgKyA0ICsgc2xvdC5vZmZzZXRGcm9tRlApXSkpOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBzdGFja0FkZHIoYXJnLm9mZnNldCArIHNsb3Qub2Zm
c2V0RnJvbUZQKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBBcmcu
Q2FsbEFyZzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YWNrQWRkcihhcmcub2Zmc2V0
IC0gY29kZS5mcmFtZVNpemUpOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgICAgIGluc2VydGlvblNldC5leGVjdXRlKGJsb2NrLmluc3RzKTsKKyAgICB9
Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FyZy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQ
ZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FyZy5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNl
VGVzdHMvSlNBaXIvYXJnLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTI2IEBACisidXNl
IHN0cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
K2NsYXNzIEFyZyB7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgdGhpcy5fa2lu
ZCA9IEFyZy5JbnZhbGlkOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNBbnlVc2Uocm9sZSkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5Vc2U6Cisg
ICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAg
ICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAg
Y2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFy
Zy5aRGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5FYXJs
eURlZjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgaXNDb2xkVXNlKHJvbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJv
bGUpIHsKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNv
bGRVc2U6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgor
ICAgICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAg
ICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2Fz
ZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcu
U2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzV2FybVVzZShy
b2xlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFyZy5pc0FueVVzZShyb2xlKSAmJiAhQXJnLmlz
Q29sZFVzZShyb2xlKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNvb2xlZChyb2xlKQorICAg
IHsKKyAgICAgICAgc3dpdGNoIChyb2xlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgQXJnLkNv
bGRVc2U6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5V
c2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkRlZjoK
KyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAg
ICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAg
ICAgICByZXR1cm4gcm9sZTsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICAgICAgcmV0
dXJuIEFyZy5Db2xkVXNlOworICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICAgICAg
cmV0dXJuIEFyZy5MYXRlQ29sZFVzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRp
YyBpc0Vhcmx5VXNlKHJvbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAg
ICAgY2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNl
IEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgor
ICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAg
ICAgICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAg
ICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzTGF0ZVVzZShyb2xlKQorICAgIHsK
KyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAg
ICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAg
IGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFy
Zy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6
CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBpc0FueURlZihyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7Cisg
ICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAg
Y2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2Fz
ZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNh
c2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5a
RGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5FYXJseURl
ZjoKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIp
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0Vhcmx5RGVmKHJvbGUpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAg
ICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAg
ICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2Ug
QXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNl
WkRlZjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICBjYXNlIEFyZy5TY3Jh
dGNoOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAg
CisgICAgc3RhdGljIGlzTGF0ZURlZihyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xl
KSB7CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAg
ICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAg
ICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAg
IGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBB
cmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQg
cm9sZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc1pEZWYocm9sZSkK
KyAgICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5Vc2U6Cisg
ICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAg
ICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2Fz
ZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBB
cmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVz
ZVpEZWY6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgdHlwZUZvckIzVHlwZSh0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgICAgIGNhc2UgSW50MzI6CisgICAgICAgIGNhc2UgSW50NjQ6CisgICAg
ICAgICAgICByZXR1cm4gR1A7CisgICAgICAgIGNhc2UgRmxvYXQ6CisgICAgICAgIGNhc2UgRG91
YmxlOgorICAgICAgICAgICAgcmV0dXJuIEZQOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgQjMgdHlwZSIpOworICAgICAgICB9CisgICAgfQorICAg
IAorICAgIHN0YXRpYyB3aWR0aEZvckIzVHlwZSh0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNo
ICh0eXBlKSB7CisgICAgICAgIGNhc2UgSW50MzI6CisgICAgICAgIGNhc2UgRmxvYXQ6CisgICAg
ICAgICAgICByZXR1cm4gMzI7CisgICAgICAgIGNhc2UgSW50NjQ6CisgICAgICAgIGNhc2UgRG91
YmxlOgorICAgICAgICAgICAgcmV0dXJuIDY0OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgQjMgdHlwZSIpOworICAgICAgICB9CisgICAgfQorICAg
IAorICAgIHN0YXRpYyBjb25zZXJ2YXRpdmVXaWR0aCh0eXBlKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHR5cGUgPT0gR1AgPyBQdHIgOiA2NDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIG1pbmlt
dW1XaWR0aCh0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gR1AgPyA4IDogMzI7
CisgICAgfQorICAgIAorICAgIHN0YXRpYyBieXRlcyh3aWR0aCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB3aWR0aCAvIDg7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB3aWR0aEZvckJ5dGVzKGJ5
dGVzKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChieXRlcykgeworICAgICAgICBjYXNlIDA6Cisg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiA4OworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICByZXR1cm4gMTY7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgY2FzZSA0Ogor
ICAgICAgICAgICAgcmV0dXJuIDMyOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYg
KGJ5dGVzID4gOCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBudW1iZXIg
b2YgYnl0ZXMiKTsKKyAgICAgICAgICAgIHJldHVybiA2NDsKKyAgICAgICAgfQorICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgY3JlYXRlVG1wKHRtcCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQg
PSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5UbXA7CisgICAgICAgIHJl
c3VsdC5fdG1wID0gdG1wOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgZnJvbVJlZyhyZWcpCisgICAgeworICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVRt
cChyZWcpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlSW1tKHZhbHVlKQorICAgIHsK
KyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0g
QXJnLkltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQmlnSW1tKHZhbHVlKQorICAg
IHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5k
ID0gQXJnLkJpZ0ltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQml0SW1tKHZhbHVl
KQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0
Ll9raW5kID0gQXJnLkJpdEltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQml0SW1t
NjQodmFsdWUpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAg
ICByZXN1bHQuX2tpbmQgPSBBcmcuQml0SW1tNjQ7CisgICAgICAgIHJlc3VsdC5fdmFsdWUgPSB2
YWx1ZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNy
ZWF0ZUFkZHIoYmFzZSwgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA9PSBudWxs
KQorICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmco
KTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkFkZHI7CisgICAgICAgIHJlc3VsdC5fYmFz
ZSA9IGJhc2U7CisgICAgICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlU3RhY2soc2xvdCwgb2Zm
c2V0KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQorICAgICAgICAgICAgb2Zm
c2V0ID0gMDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0
Ll9raW5kID0gQXJnLlN0YWNrOworICAgICAgICByZXN1bHQuX3Nsb3QgPSBzbG90OworICAgICAg
ICByZXN1bHQuX29mZnNldCA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIGNyZWF0ZUNhbGxBcmcob2Zmc2V0KQorICAgIHsKKyAgICAgICAg
bGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkNhbGxB
cmc7CisgICAgICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlU3RhY2tBZGRyKG9mZnNldEZyb21G
UCwgZnJhbWVTaXplLCB3aWR0aCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBBcmcuY3Jl
YXRlQWRkcihSZWcuY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldEZyb21GUCk7CisgICAgICAgIGlm
ICghcmVzdWx0LmlzVmFsaWRGb3JtKHdpZHRoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IEFyZy5j
cmVhdGVBZGRyKFJlZy5zdGFja1BvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0RnJvbUZQICsgZnJhbWVT
aXplKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlz
VmFsaWRTY2FsZShzY2FsZSwgd2lkdGgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHNjYWxlKSB7
CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgY2FzZSAyOgorICAgICAgICBjYXNlIDQ6CisgICAg
ICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0
YXRpYyBsb2dTY2FsZShzY2FsZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoc2NhbGUpIHsKKyAg
ICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgMjoKKyAg
ICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4g
MjsKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBzY2FsZSIpOworICAgICAgICB9
CisgICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVJbmRleChiYXNlLCBpbmRleCwgc2NhbGUs
IG9mZnNldCkKKyAgICB7CisgICAgICAgIGlmIChzY2FsZSA9PSBudWxsKQorICAgICAgICAgICAg
c2NhbGUgPSAxOworICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpCisgICAgICAgICAgICBvZmZz
ZXQgPSAwOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQu
X2tpbmQgPSBBcmcuSW5kZXg7CisgICAgICAgIHJlc3VsdC5fYmFzZSA9IGJhc2U7CisgICAgICAg
IHJlc3VsdC5faW5kZXggPSBpbmRleDsKKyAgICAgICAgcmVzdWx0Ll9zY2FsZSA9IHNjYWxlOwor
ICAgICAgICByZXN1bHQuX29mZnNldCA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVJlbENvbmQoY29uZGl0aW9uKQorICAgIHsK
KyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0g
QXJnLlJlbENvbmQ7CisgICAgICAgIHJlc3VsdC5fY29uZGl0aW9uID0gY29uZGl0aW9uOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlUmVzQ29u
ZChjb25kaXRpb24pCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAg
ICAgICByZXN1bHQuX2tpbmQgPSBBcmcuUmVzQ29uZDsKKyAgICAgICAgcmVzdWx0Ll9jb25kaXRp
b24gPSBjb25kaXRpb247CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBjcmVhdGVEb3VibGVDb25kKGNvbmRpdGlvbikKKyAgICB7CisgICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5Eb3VibGVDb25k
OworICAgICAgICByZXN1bHQuX2NvbmRpdGlvbiA9IGNvbmRpdGlvbjsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVdpZHRoKHdpZHRoKQorICAg
IHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5k
ID0gQXJnLldpZHRoOworICAgICAgICByZXN1bHQuX3dpZHRoID0gd2lkdGg7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIGdldCBraW5kKCkgeyByZXR1cm4gdGhpcy5f
a2luZDsgfQorICAgIGdldCBpc1RtcCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlRtcDsg
fQorICAgIGdldCBpc0ltbSgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkltbTsgfQorICAg
IGdldCBpc0JpZ0ltbSgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkJpZ0ltbTsgfQorICAg
IGdldCBpc0JpdEltbSgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkJpdEltbTsgfQorICAg
IGdldCBpc0JpdEltbTY0KCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuQml0SW1tNjQ7IH0K
KyAgICBnZXQgaXNTb21lSW1tKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkg
eworICAgICAgICBjYXNlIEFyZy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpZ0ltbToKKyAgICAg
ICAgY2FzZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgfQorICAgIGdldCBpc0FkZHIoKSB7IHJldHVybiB0aGlzLl9r
aW5kID09IEFyZy5BZGRyOyB9CisgICAgZ2V0IGlzU3RhY2soKSB7IHJldHVybiB0aGlzLl9raW5k
ID09IEFyZy5TdGFjazsgfQorICAgIGdldCBpc0NhbGxBcmcoKSB7IHJldHVybiB0aGlzLl9raW5k
ID09IEFyZy5DYWxsQXJnOyB9CisgICAgZ2V0IGlzSW5kZXgoKSB7IHJldHVybiB0aGlzLl9raW5k
ID09IEFyZy5JbmRleDsgfQorICAgIGdldCBpc01lbW9yeSgpCisgICAgeworICAgICAgICBzd2l0
Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgY2FzZSBB
cmcuU3RhY2s6CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgIGNhc2UgQXJnLklu
ZGV4OgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgZ2V0IGlzU3RhY2tNZW1v
cnkoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2Ug
QXJnLkFkZHI6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYmFzZSA9PSBSZWcuY2FsbEZyYW1l
UmVnaXN0ZXIKKyAgICAgICAgICAgICAgICB8fCB0aGlzLl9iYXNlID09IFJlZy5zdGFja1BvaW50
ZXJSZWdpc3RlcjsKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6CisgICAgICAgIGNhc2UgQXJnLkNh
bGxBcmc6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBnZXQgaXNSZWxDb25k
KCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuUmVsQ29uZDsgfQorICAgIGdldCBpc1Jlc0Nv
bmQoKSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5SZXNDb25kOyB9CisgICAgZ2V0IGlzRG91
YmxlQ29uZCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkRvdWJsZUNvbmQ7IH0KKyAgICBn
ZXQgaXNDb25kaXRpb24oKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7Cisg
ICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAg
ICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0K
KyAgICBnZXQgaXNXaWR0aCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLldpZHRoOyB9Cisg
ICAgZ2V0IGlzQWxpdmUoKSB7IHJldHVybiB0aGlzLmlzVG1wIHx8IHRoaXMuaXNTdGFjazsgfQor
ICAgIAorICAgIGdldCB0bXAoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJn
LlRtcCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC50bXAgZm9yIG5vbi10
bXAiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3RtcDsKKyAgICB9CisgICAgCisgICAgZ2V0IHZh
bHVlKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc1NvbWVJbW0pCisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAudmFsdWUgZm9yIG5vbi1pbW0iKTsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3ZhbHVlOworICAgIH0KKyAgICAKKyAgICBnZXQgYmFzZSgpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAg
ICAgY2FzZSBBcmcuSW5kZXg6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYmFzZTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5iYXNlIGZv
ciBub24tYWRkcmVzcyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGdldCBoYXNPZmZz
ZXQoKSB7IHJldHVybiB0aGlzLmlzTWVtb3J5OyB9CisgICAgCisgICAgZ2V0IG9mZnNldCgpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuQWRk
cjoKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAg
ICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29mZnNldDsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5v
ZmZzZXQgZm9yIG5vbi1hZGRyZXNzIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0
IHN0YWNrU2xvdCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBBcmcuU3RhY2sp
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuc3RhY2tTbG90IGZvciBub24t
YWRkcmVzcyIpOworICAgICAgICByZXR1cm4gdGhpcy5fc2xvdDsKKyAgICB9CisgICAgCisgICAg
Z2V0IGluZGV4KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5kICE9IEFyZy5JbmRleCkK
KyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5pbmRleCBmb3Igbm9uLUluZGV4
Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9pbmRleDsKKyAgICB9CisgICAgCisgICAgZ2V0IHNj
YWxlKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5kICE9IEFyZy5JbmRleCkKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5zY2FsZSBmb3Igbm9uLUluZGV4Iik7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9zY2FsZTsKKyAgICB9CisgICAgCisgICAgZ2V0IGxvZ1NjYWxl
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBBcmcubG9nU2NhbGUodGhpcy5zY2FsZSk7CisgICAg
fQorICAgIAorICAgIGdldCB3aWR0aCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAh
PSBBcmcuV2lkdGgpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAud2lkdGgg
Zm9yIG5vbi1XaWR0aCIpOworICAgICAgICByZXR1cm4gdGhpcy5fd2lkdGg7CisgICAgfQorICAg
IAorICAgIGdldCBpc0dQVG1wKCkgeyByZXR1cm4gdGhpcy5pc1RtcCAmJiB0aGlzLnRtcC5pc0dQ
OyB9CisgICAgZ2V0IGlzRlBUbXAoKSB7IHJldHVybiB0aGlzLmlzVG1wICYmIHRoaXMudG1wLmlz
RlA7IH0KKyAgICAKKyAgICBnZXQgaXNHUCgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMu
X2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAgICBjYXNlIEFyZy5CaWdJbW06
CisgICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tNjQ6Cisg
ICAgICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICBj
YXNlIEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgY2FzZSBB
cmcuUmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoKKyAgICAgICAgY2FzZSBBcmcu
RG91YmxlQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuV2lkdGg6CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuVG1wOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNH
UFRtcDsKKyAgICAgICAgY2FzZSBBcmcuSW52YWxpZDoKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGtp
bmQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgaXNGUCgpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAg
ICBjYXNlIEFyZy5CaXRJbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbTY0OgorICAgICAgICBj
YXNlIEFyZy5SZWxDb25kOgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNl
IEFyZy5Eb3VibGVDb25kOgorICAgICAgICBjYXNlIEFyZy5XaWR0aDoKKyAgICAgICAgY2FzZSBB
cmcuSW52YWxpZDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcu
QWRkcjoKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgor
ICAgICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICBjYXNlIEFyZy5CaWdJbW06CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuVG1wOgorICAgICAgICAgICAg
cmV0dXJuIHRoaXMuaXNGUFRtcDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmFkIGtpbmQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQg
aGFzVHlwZSgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAg
Y2FzZSBBcmcuSW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW06CisgICAgICAgIGNhc2UgQXJn
LkJpdEltbTY0OgorICAgICAgICBjYXNlIEFyZy5UbXA6CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICBnZXQgdHlwZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5pc0dQID8gR1AgOiBGUDsKKyAgICB9CisgICAgCisgICAgaXNUeXBlKHR5cGUpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBBcmcuR1A6CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5pc0dQOworICAgICAgICBjYXNlIEFyZy5GUDoKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLmlzRlA7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCB0eXBlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaXNDb21wYXRp
YmxlVHlwZShvdGhlcikKKyAgICB7CisgICAgICAgIGlmICh0aGlzLmhhc1R5cGUpCisgICAgICAg
ICAgICByZXR1cm4gb3RoZXIuaXNUeXBlKHRoaXMudHlwZSk7CisgICAgICAgIGlmIChvdGhlci5o
YXNUeXBlKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNUeXBlKG90aGVyLnR5cGUpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgZ2V0IGlzR1BSKCkgeyByZXR1cm4g
dGhpcy5pc1RtcCAmJiB0aGlzLnRtcC5pc0dQUjsgfQorICAgIGdldCBncHIoKSB7IHJldHVybiB0
aGlzLnRtcC5ncHI7IH0KKyAgICBnZXQgaXNGUFIoKSB7IHJldHVybiB0aGlzLmlzVG1wICYmIHRo
aXMudG1wLmlzRlBSOyB9CisgICAgZ2V0IGZwcigpIHsgcmV0dXJuIHRoaXMudG1wLmZwcjsgfQor
ICAgIGdldCBpc1JlZygpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYgdGhpcy50bXAuaXNSZWc7IH0K
KyAgICBnZXQgcmVnKCkgeyByZXR1cm4gdGhpcy50bXAucmVnOyB9CisgICAgCisgICAgc3RhdGlj
IGlzVmFsaWRJbW1Gb3JtKHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzUmVwcmVzZW50
YWJsZUFzSW50MzIodmFsdWUpOworICAgIH0KKyAgICBzdGF0aWMgaXNWYWxpZEJpdEltbUZvcm0o
dmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gaXNSZXByZXNlbnRhYmxlQXNJbnQzMih2YWx1
ZSk7CisgICAgfQorICAgIHN0YXRpYyBpc1ZhbGlkQml0SW1tNjRGb3JtKHZhbHVlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGlzUmVwcmVzZW50YWJsZUFzSW50MzIodmFsdWUpOworICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgaXNWYWxpZEFkZHJGb3JtKG9mZnNldCwgd2lkdGgpCisgICAgeworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzVmFsaWRJbmRleEZv
cm0oc2NhbGUsIG9mZnNldCwgd2lkdGgpCisgICAgeworICAgICAgICBpZiAoIWlzVmFsaWRTY2Fs
ZShzY2FsZSwgd2lkdGgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgaXNWYWxpZEZvcm0od2lkdGgpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW52YWxpZDoKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcuVG1wOgorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkltbToKKyAgICAgICAgICAgIHJldHVy
biBBcmcuaXNWYWxpZEltbUZvcm0odGhpcy52YWx1ZSk7CisgICAgICAgIGNhc2UgQXJnLkJpZ0lt
bToKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5CaXRJbW06Cisg
ICAgICAgICAgICByZXR1cm4gQXJnLmlzVmFsaWRCaXRJbW1Gb3JtKHRoaXMudmFsdWUpOworICAg
ICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiBBcmcuaXNWYWxpZEJp
dEltbTY0Rm9ybSh0aGlzLnZhbHVlKTsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAg
Y2FzZSBBcmcuU3RhY2s6CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgICAgICBy
ZXR1cm4gQXJnLmlzVmFsaWRBZGRyRm9ybSh0aGlzLm9mZnNldCwgd2lkdGgpOworICAgICAgICBj
YXNlIEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiBBcmcuaXNWYWxpZEluZGV4Rm9ybSh0
aGlzLnNjYWxlLCB0aGlzLm9mZnNldCwgd2lkdGgpOworICAgICAgICBjYXNlIEFyZy5SZWxDb25k
OgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFyZy5Eb3VibGVDb25k
OgorICAgICAgICBjYXNlIEFyZy5XaWR0aDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQga2luZCIpOwor
ICAgICAgICB9CisgICAgfQorICAgIAorICAgIGZvckVhY2hUbXBGYXN0KGZ1bmMpCisgICAgewor
ICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuVG1wOiB7Cisg
ICAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQg
PSBmdW5jKHRoaXMuX3RtcCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFyZy5jcmVhdGVUbXAo
cmVwbGFjZW1lbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2Fz
ZSBBcmcuQWRkcjogeworICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50OworICAgICAgICAgICAg
aWYgKHJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9iYXNlKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gQXJnLmNyZWF0ZUFkZHIocmVwbGFjZW1lbnQsIHRoaXMuX29mZnNldCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFyZy5JbmRleDogeworICAgICAgICAg
ICAgbGV0IGJhc2VSZXBsYWNlbWVudCA9IGZ1bmModGhpcy5fYmFzZSk7CisgICAgICAgICAgICBs
ZXQgaW5kZXhSZXBsYWNlbWVudCA9IGZ1bmModGhpcy5faW5kZXgpOworICAgICAgICAgICAgaWYg
KGJhc2VSZXBsYWNlbWVudCB8fCBpbmRleFJlcGxhY2VtZW50KSB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIEFyZy5jcmVhdGVJbmRleCgKKyAgICAgICAgICAgICAgICAgICAgYmFzZVJlcGxhY2Vt
ZW50ID8gYmFzZVJlcGxhY2VtZW50IDogdGhpcy5fYmFzZSwKKyAgICAgICAgICAgICAgICAgICAg
aW5kZXhSZXBsYWNlbWVudCA/IGluZGV4UmVwbGFjZW1lbnQgOiB0aGlzLl9pbmRleCwKKyAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fc2NhbGUsIHRoaXMuX29mZnNldCk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdXNlc1RtcChleHBlY3Rl
ZFRtcCkKKyAgICB7CisgICAgICAgIGxldCB1c2VzVG1wID0gZmFsc2U7CisgICAgICAgIGZvckVh
Y2hUbXBGYXN0KHRtcCA9PiB7CisgICAgICAgICAgICB1c2VzVG1wIHw9IHRtcCA9PSBleHBlY3Rl
ZFRtcDsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiB1c2VzVG1wOworICAgIH0KKyAgICAK
KyAgICBmb3JFYWNoVG1wKHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKQorICAgIHsKKyAgICAgICAg
c3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLlRtcDogeworICAgICAgICAg
ICAgbGV0IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyh0
aGlzLl90bXAsIHJvbGUsIHR5cGUsIHdpZHRoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJn
LmNyZWF0ZVRtcChyZXBsYWNlbWVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBjYXNlIEFyZy5BZGRyOiB7CisgICAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7Cisg
ICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2Jhc2UsIEFyZy5Vc2UsIEdQ
LCByb2xlID09IEFyZy5Vc2VBZGRyID8gd2lkdGggOiBQdHIpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBBcmcuY3JlYXRlQWRkcihyZXBsYWNlbWVudCwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJnLkluZGV4OiB7CisgICAgICAg
ICAgICBsZXQgYmFzZVJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9iYXNlLCBBcmcuVXNlLCBHUCwg
cm9sZSA9PSBBcmcuVXNlQWRkciA/IHdpZHRoIDogUHRyKTsKKyAgICAgICAgICAgIGxldCBpbmRl
eFJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9pbmRleCwgQXJnLlVzZSwgR1AsIHJvbGUgPT0gQXJn
LlVzZUFkZHIgPyB3aWR0aCA6IFB0cik7CisgICAgICAgICAgICBpZiAoYmFzZVJlcGxhY2VtZW50
IHx8IGluZGV4UmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0
ZUluZGV4KAorICAgICAgICAgICAgICAgICAgICBiYXNlUmVwbGFjZW1lbnQgPyBiYXNlUmVwbGFj
ZW1lbnQgOiB0aGlzLl9iYXNlLAorICAgICAgICAgICAgICAgICAgICBpbmRleFJlcGxhY2VtZW50
ID8gaW5kZXhSZXBsYWNlbWVudCA6IHRoaXMuX2luZGV4LAorICAgICAgICAgICAgICAgICAgICB0
aGlzLl9zY2FsZSwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpcyh0aGluZykgeyByZXR1cm4gISF0aGluZy5leHRy
YWN0KHRoaXMpOyB9CisgICAgYXModGhpbmcpIHsgcmV0dXJuIHRoaW5nLmV4dHJhY3QodGhpcyk7
IH0KKyAgICAKKyAgICAvLyBUaGlzIGxldHMgeW91IHNheSB0aGluZ3MgbGlrZToKKyAgICAvLyBh
cmcuZm9yRWFjaChUbXAgfCBSZWcgfCBBcmcgfCBTdGFja1Nsb3QsIC4uLikKKyAgICAvLworICAg
IC8vIEl0J3MgdXNlZCBmb3IgYWJzdHJhY3QgbGl2ZW5lc3MgYW5hbHlzaXMuCisgICAgZm9yRWFj
aEZhc3QodGhpbmcsIGZ1bmMpCisgICAgeworICAgICAgICByZXR1cm4gdGhpbmcuZm9yRWFjaEZh
c3QodGhpcywgZnVuYyk7CisgICAgfQorICAgIGZvckVhY2godGhpbmcsIHJvbGUsIHR5cGUsIHdp
ZHRoLCBmdW5jKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaW5nLmZvckVhY2godGhpcywgcm9s
ZSwgdHlwZSwgd2lkdGgsIGZ1bmMpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZXh0cmFjdChh
cmcpIHsgcmV0dXJuIGFyZzsgfQorICAgIHN0YXRpYyBmb3JFYWNoRmFzdChhcmcsIGZ1bmMpIHsg
cmV0dXJuIGZ1bmMoYXJnKTsgfQorICAgIHN0YXRpYyBmb3JFYWNoKGFyZywgcm9sZSwgdHlwZSwg
d2lkdGgsIGZ1bmMpIHsgcmV0dXJuIGZ1bmMoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCk7IH0KKwor
ICAgIGdldCBjb25kaXRpb24oKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7
CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6Cisg
ICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29u
ZGl0aW9uOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJD
YWxsZWQgLmNvbmRpdGlvbiBmb3Igbm9uLWNvbmRpdGlvbiIpOworICAgICAgICB9CisgICAgfQor
ICAgIAorICAgIGdldCBpc0ludmVydGlibGUoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlz
Ll9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRv
dWJsZUNvbGQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuUmVz
Q29uZDoKKyAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fY29uZGl0aW9uKSB7CisgICAgICAgICAg
ICBjYXNlIFplcm86CisgICAgICAgICAgICBjYXNlIE5vblplcm86CisgICAgICAgICAgICBjYXNl
IFNpZ25lZDoKKyAgICAgICAgICAgIGNhc2UgUG9zaXRpdmVPclplcm86CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB0b1N0cmluZygpCisg
ICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW52
YWxpZDoKKyAgICAgICAgICAgIHJldHVybiAiPGludmFsaWQ+IjsKKyAgICAgICAgY2FzZSBBcmcu
VG1wOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RtcC50b1N0cmluZygpOworICAgICAgICBj
YXNlIEFyZy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAgICAgIHJldHVy
biAiJCIgKyB0aGlzLl92YWx1ZTsKKyAgICAgICAgY2FzZSBBcmcuQmlnSW1tOgorICAgICAgICBj
YXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiAiJDB4IiArIHRoaXMuX3ZhbHVl
LnRvU3RyaW5nKDE2KTsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgICAgIHJldHVy
biAiIiArICh0aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikgKyAiKCIgKyB0aGlzLl9i
YXNlICsgIikiOworICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiAi
IiArICh0aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikgKyAiKCIgKyB0aGlzLl9iYXNl
ICsKKyAgICAgICAgICAgICAgICAiLCIgKyB0aGlzLl9pbmRleCArICh0aGlzLl9zY2FsZSA9PSAx
ID8gIiIgOiAiLCIgKyB0aGlzLl9zY2FsZSkgKyAiKSI7CisgICAgICAgIGNhc2UgQXJnLlN0YWNr
OgorICAgICAgICAgICAgcmV0dXJuICIiICsgKHRoaXMuX29mZnNldCA/IHRoaXMuX29mZnNldCA6
ICIiKSArICIoIiArIHRoaXMuX3Nsb3QgKyAiKSI7CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6
CisgICAgICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhpcy5fb2Zmc2V0IDog
IiIpICsgIihjYWxsQXJnKSI7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNh
c2UgQXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgIGNh
c2UgQXJnLldpZHRoOgorICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE5hbWUodGhpcy5fY29uZGl0
aW9uKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IGtpbmQiKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQXJnIGtpbmRzCitBcmcuSW52YWxp
ZCA9IFN5bWJvbCgiSW52YWxpZCIpOworQXJnLlRtcCA9IFN5bWJvbCgiVG1wIik7CitBcmcuSW1t
ID0gU3ltYm9sKCJJbW0iKTsKK0FyZy5CaWdJbW0gPSBTeW1ib2woIkJpZ0ltbSIpOworQXJnLkJp
dEltbSA9IFN5bWJvbCgiQml0SW1tIik7CitBcmcuQml0SW1tNjQgPSBTeW1ib2woIkJpdEltbTY0
Iik7CitBcmcuQWRkciA9IFN5bWJvbCgiQWRkciIpOworQXJnLlN0YWNrID0gU3ltYm9sKCJTdGFj
ayIpOworQXJnLkNhbGxBcmcgPSBTeW1ib2woIkNhbGxBcmciKTsKK0FyZy5JbmRleCA9IFN5bWJv
bCgiSW5kZXgiKTsKK0FyZy5SZWxDb25kID0gU3ltYm9sKCJSZWxDb25kIik7CitBcmcuUmVzQ29u
ZCA9IFN5bWJvbCgiUmVzQ29uZCIpOworQXJnLkRvdWJsZUNvbmQgPSBTeW1ib2woIkRvdWJsZUNv
bmQiKTsKK0FyZy5XaWR0aCA9IFN5bWJvbCgiV2lkdGgiKTsKKworLy8gQXJnIHJvbGVzCitBcmcu
VXNlID0gU3ltYm9sKCJVc2UiKTsKK0FyZy5Db2xkVXNlID0gU3ltYm9sKCJDb2xkVXNlIik7CitB
cmcuTGF0ZVVzZSA9IFN5bWJvbCgiTGF0ZVVzZSIpOworQXJnLkxhdGVDb2xkVXNlID0gU3ltYm9s
KCJMYXRlQ29sZFVzZSIpOworQXJnLkRlZiA9IFN5bWJvbCgiRGVmIik7CitBcmcuWkRlZiA9IFN5
bWJvbCgiWkRlZiIpOworQXJnLlVzZURlZiA9IFN5bWJvbCgiVXNlRGVmIik7CitBcmcuVXNlWkRl
ZiA9IFN5bWJvbCgiVXNlWkRlZiIpOworQXJnLkVhcmx5RGVmID0gU3ltYm9sKCJFYXJseURlZiIp
OworQXJnLlNjcmF0Y2ggPSBTeW1ib2woIlNjcmF0Y2giKTsKK0FyZy5Vc2VBZGRyID0gU3ltYm9s
KCJVc2VBZGRyIik7CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYmFzaWNfYmxvY2su
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9iYXNpY19ibG9jay5qcwko
cmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYmFzaWNfYmxvY2suanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzMgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgQmFzaWNCbG9jayB7Cisg
ICAgY29uc3RydWN0b3IoaW5kZXgsIGZyZXF1ZW5jeSkKKyAgICB7CisgICAgICAgIHRoaXMuX2lu
ZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMuX2ZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTsKKyAgICAg
ICAgdGhpcy5faW5zdHMgPSBbXTsKKyAgICAgICAgdGhpcy5fc3VjY2Vzc29ycyA9IFtdOworICAg
ICAgICB0aGlzLl9wcmVkZWNlc3NvcnMgPSBbXTsKKyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4
KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMu
X2luc3RzLmxlbmd0aDsgfQorICAgIAorICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9pbnN0c1tTeW1ib2wuaXRlcmF0b3JdKCk7CisgICAgfQorICAg
IAorICAgIGF0KGluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuX2luc3Rz
Lmxlbmd0aCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3V0IG9mIGJvdW5kcyBhY2Nl
c3MiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RzW2luZGV4XTsKKyAgICB9CisgICAgCisg
ICAgZ2V0KGluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuX2luc3RzLmxl
bmd0aCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICByZXR1cm4gdGhpcy5faW5z
dHNbaW5kZXhdOworICAgIH0KKyAgICAKKyAgICBnZXQgbGFzdCgpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5faW5zdHNbdGhpcy5faW5zdHMubGVuZ3RoIC0gMV07CisgICAgfQorICAgIAor
ICAgIGdldCBpbnN0cygpIHsgcmV0dXJuIHRoaXMuX2luc3RzOyB9CisgICAgCisgICAgYXBwZW5k
KGluc3QpIHsgdGhpcy5faW5zdHMucHVzaChpbnN0KTsgfQorICAgIAorICAgIGdldCBudW1TdWNj
ZXNzb3JzKCkgeyByZXR1cm4gdGhpcy5fc3VjY2Vzc29ycy5sZW5ndGg7IH0KKyAgICBzdWNjZXNz
b3IoaW5kZXgpIHsgcmV0dXJuIHRoaXMuX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgZ2V0IHN1
Y2Nlc3NvcnMoKSB7IHJldHVybiB0aGlzLl9zdWNjZXNzb3JzOyB9CisgICAgCisgICAgc3VjY2Vz
c29yQmxvY2soaW5kZXgpIHsgcmV0dXJuIHRoaXMuX3N1Y2Nlc3NvcnNbaW5kZXhdLmJsb2NrOyB9
CisgICAgZ2V0IHN1Y2Nlc3NvckJsb2NrcygpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFBy
b3h5KHRoaXMuX3N1Y2Nlc3NvcnMsIHsKKyAgICAgICAgICAgIGdldDogZnVuY3Rpb24odGFyZ2V0
LCBwcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgIGlmICgocHJvcGVydHkgfCAwKSA9PSBwcm9w
ZXJ0eSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV0uYmxvY2s7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV07CisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgCisgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgcHJvcGVy
dHksIHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKChwcm9wZXJ0eSB8IDApID09IHByb3Bl
cnR5KSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBvbGRWYWx1ZSA9IHRhcmdldFtwcm9wZXJ0
eV07CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wZXJ0eV0gPSBuZXcgRnJlcXVlbnRl
ZEJsb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsIG9sZFZhbHVlID8gb2xkVmFs
dWUuZnJlcXVlbmN5IDogTm9ybWFsKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0YXJnZXRb
cHJvcGVydHldID0gdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKyAg
ICAKKyAgICBnZXQgbnVtUHJlZGVjZXNzb3JzKCkgeyByZXR1cm4gdGhpcy5fcHJlZGVjZXNzb3Jz
Lmxlbmd0aDsgfQorICAgIHByZWRlY2Vzc29yKGluZGV4KSB7IHJldHVybiB0aGlzLl9wcmVkZWNl
c3NvcnNbaW5kZXhdOyB9CisgICAgZ2V0IHByZWRlY2Vzc29ycygpIHsgcmV0dXJuIHRoaXMuX3By
ZWRlY2Vzc29yczsgfQorICAgIAorICAgIGdldCBmcmVxdWVuY3koKSB7IHJldHVybiB0aGlzLl9m
cmVxdWVuY3k7IH0KKworICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiIyIg
KyB0aGlzLl9pbmRleDsKKyAgICB9CisgICAgCisgICAgZ2V0IGhlYWRlclN0cmluZygpCisgICAg
eworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIHJlc3VsdCArPSAiQkIiICsgdGhp
cyArICI6IDsgZnJlcXVlbmN5ID0gIiArIHRoaXMuX2ZyZXF1ZW5jeSArICJcbiI7CisgICAgICAg
IGlmICh0aGlzLl9wcmVkZWNlc3NvcnMubGVuZ3RoKQorICAgICAgICAgICAgcmVzdWx0ICs9ICIg
IFByZWRlY2Vzc29yczogIiArIHRoaXMuX3ByZWRlY2Vzc29ycy5qb2luKCIsICIpICsgIlxuIjsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgZ2V0IGZvb3RlclN0cmlu
ZygpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIGlmICh0aGlzLl9z
dWNjZXNzb3JzLmxlbmd0aCkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiICBTdWNjZXNzb3JzOiAi
ICsgdGhpcy5fc3VjY2Vzc29ycy5qb2luKCIsICIpICsgIlxuIjsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CisgICAgCisgICAgdG9TdHJpbmdEZWVwKCkKKyAgICB7CisgICAgICAgIGxl
dCByZXN1bHQgPSAiIjsKKyAgICAgICAgcmVzdWx0ICs9IHRoaXMuaGVhZGVyU3RyaW5nOworICAg
ICAgICBmb3IgKGxldCBpbnN0IG9mIHRoaXMpCisgICAgICAgICAgICByZXN1bHQgKz0gIiAgICAi
ICsgaW5zdCArICJcbiI7CisgICAgICAgIHJlc3VsdCArPSB0aGlzLmZvb3RlclN0cmluZzsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvYmVuY2htYXJrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIv
YmVuY2htYXJrLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9iZW5j
aG1hcmsuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MSBAQAorInVzZSBzdHJpY3QiOwor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitmdW5jdGlvbiBi
ZW5jaG1hcmsoKQoreworICAgIGNvbnN0IHZlcmJvc2UgPSAwOworICAgIGNvbnN0IG51bUl0ZXJh
dGlvbnMgPSAyMDA7CisgICAgCisgICAgbGV0IGJlZm9yZSA9IGN1cnJlbnRUaW1lKCk7CisgICAg
CisgICAgdmFyIGNvZGVHZW5lcmF0b3JzID0gWworICAgICAgICBjcmVhdGVQYXlsb2FkR2JlbXVF
eGVjdXRlSXRlcmF0aW9uLAorICAgICAgICBjcmVhdGVQYXlsb2FkSW1hZ2luZ0dhdXNzaWFuQmx1
ckdhdXNzaWFuQmx1ciwKKyAgICAgICAgY3JlYXRlUGF5bG9hZFR5cGVzY3JpcHRTY2FuSWRlbnRp
ZmllciwKKyAgICAgICAgY3JlYXRlUGF5bG9hZEpTQWlyQUNMajhDCisgICAgXTsKKyAgICAKKyAg
ICBmb3IgKGxldCBpdGVyYXRpb24gPSAwOyBpdGVyYXRpb24gPCBudW1JdGVyYXRpb25zOyArK2l0
ZXJhdGlvbikgeworICAgICAgICBmb3IgKGxldCBnZW5lcmF0ZUNvZGUgb2YgY29kZUdlbmVyYXRv
cnMpIHsKKyAgICAgICAgICAgIGxldCBjb2RlID0gZ2VuZXJhdGVDb2RlKCk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgcHJpbnQoIkJl
Zm9yZSBhbGxvY2F0ZVN0YWNrOiIpOworICAgICAgICAgICAgICAgIHByaW50KGNvZGUpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBhbGxvY2F0ZVN0YWNrKGNvZGUp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAg
ICAgIHByaW50KCJBZnRlciBhbGxvY2F0ZVN0YWNrOiIpOworICAgICAgICAgICAgICAgIHByaW50
KGNvZGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGxldCBh
ZnRlciA9IGN1cnJlbnRUaW1lKCk7CisgICAgcmV0dXJuIGFmdGVyIC0gYmVmb3JlOworfQpJbmRl
eDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk5IEBACisidXNlIHN0cmlj
dCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNz
IENvZGUgeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Jsb2NrcyA9
IFtdOworICAgICAgICB0aGlzLl9zdGFja1Nsb3RzID0gW107CisgICAgICAgIHRoaXMuX2dwVG1w
cyA9IFtdOworICAgICAgICB0aGlzLl9mcFRtcHMgPSBbXTsKKyAgICAgICAgdGhpcy5fY2FsbEFy
Z0FyZWFTaXplID0gMDsKKyAgICAgICAgdGhpcy5fZnJhbWVTaXplID0gMDsKKyAgICB9CisgICAg
CisgICAgYWRkQmxvY2soZnJlcXVlbmN5KQorICAgIHsKKyAgICAgICAgaWYgKGZyZXF1ZW5jeSA9
PSBudWxsKQorICAgICAgICAgICAgZnJlcXVlbmN5ID0gMTsKKyAgICAgICAgbGV0IHJlc3VsdCA9
IGFkZEluZGV4ZWQodGhpcy5fYmxvY2tzLCBCYXNpY0Jsb2NrLCBmcmVxdWVuY3kpOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBhZGRTdGFja1Nsb3QoYnl0ZVNpemUs
IGtpbmQpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gYWRkSW5kZXhlZCh0aGlzLl9zdGFj
a1Nsb3RzLCBTdGFja1Nsb3QsIGJ5dGVTaXplLCBraW5kKTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9CisgICAgCisgICAgbmV3VG1wKHR5cGUpCisgICAgeworICAgICAgICBsZXQgcmVz
dWx0ID0gYWRkSW5kZXhlZCh0aGlzWyJfIiArIHN5bWJvbE5hbWUodHlwZSkudG9Mb3dlckNhc2Uo
KSArICJUbXBzIl0sIFRtcCwgdHlwZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQor
ICAgIAorICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5fYmxvY2tzLmxlbmd0aDsgfQorICAg
IGF0KGluZGV4KSB7IHJldHVybiB0aGlzLl9ibG9ja3NbaW5kZXhdOyB9CisgICAgCisgICAgW1N5
bWJvbC5pdGVyYXRvcl0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Jsb2Nrc1tTeW1i
b2wuaXRlcmF0b3JdKCk7CisgICAgfQorICAgIAorICAgIGdldCBibG9ja3MoKSB7IHJldHVybiB0
aGlzLl9ibG9ja3M7IH0KKyAgICBnZXQgc3RhY2tTbG90cygpIHsgcmV0dXJuIHRoaXMuX3N0YWNr
U2xvdHM7IH0KKyAgICAKKyAgICB0bXBzKHR5cGUpIHsgcmV0dXJuIHRoaXNbIl8iICsgc3ltYm9s
TmFtZSh0eXBlKS50b0xvd2VyQ2FzZSgpICsgIlRtcHMiXTsgfQorICAgIAorICAgIGdldCBjYWxs
QXJnQXJlYVNpemUoKSB7IHJldHVybiB0aGlzLl9jYWxsQXJnQXJlYVNpemU7IH0KKyAgICAKKyAg
ICByZXF1ZXN0Q2FsbEFyZ0FyZWFTaXplKHNpemUpCisgICAgeworICAgICAgICB0aGlzLl9jYWxs
QXJnQXJlYVNpemUgPSBNYXRoLm1heCh0aGlzLl9jYWxsQXJnQXJlYVNpemUsIHJvdW5kVXBUb011
bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcywgc2l6ZSkpOworICAgIH0KKyAgICAKKyAgICBn
ZXQgZnJhbWVTaXplKCkgeyByZXR1cm4gdGhpcy5fZnJhbWVTaXplOyB9CisgICAgCisgICAgc2V0
RnJhbWVTaXplKGZyYW1lU2l6ZSkgeyB0aGlzLl9mcmFtZVNpemUgPSBmcmFtZVNpemU7IH0KKyAg
ICAKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAg
ICAgIGZvciAobGV0IGJsb2NrIG9mIHRoaXMpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSBibG9j
ay50b1N0cmluZ0RlZXAoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5zdGFja1Nsb3Rz
Lmxlbmd0aCkgeworICAgICAgICAgICAgcmVzdWx0ICs9ICJTdGFjayBzbG90czpcbiI7CisgICAg
ICAgICAgICBmb3IgKGxldCBzbG90IG9mIHRoaXMuc3RhY2tTbG90cykKKyAgICAgICAgICAgICAg
ICByZXN1bHQgKz0gIiAgICAiICsgc2xvdCArICJcbiI7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHRoaXMuX2ZyYW1lU2l6ZSkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiRnJhbWUgc2l6ZTogIiAr
IHRoaXMuX2ZyYW1lU2l6ZSArICJcbiI7CisgICAgICAgIGlmICh0aGlzLl9jYWxsQXJnQXJlYVNp
emUpCisgICAgICAgICAgICByZXN1bHQgKz0gIkNhbGwgYXJnIGFyZWEgc2l6ZTogIiArIHRoaXMu
X2NhbGxBcmdBcmVhU2l6ZSArICJcbiI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQor
fQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9jdXN0b20uanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
UGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9jdXN0b20uanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3Jt
YW5jZVRlc3RzL0pTQWlyL2N1c3RvbS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNCBA
QAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCitjb25zdCBTaHVmZmxlQ3VzdG9tID0geworICAgIGZvckVhY2hBcmcoaW5zdCwgZnVu
YykKKyAgICB7CisgICAgICAgIHZhciBsaW1pdCA9IGluc3QuYXJncy5sZW5ndGggLyAzICogMzsK
KyAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSAzKSB7CisgICAgICAgICAg
ICBsZXQgc3JjID0gaW5zdC5hcmdzW2kgKyAwXTsKKyAgICAgICAgICAgIGxldCBkc3QgPSBpbnN0
LmFyZ3NbaSArIDFdOworICAgICAgICAgICAgbGV0IHdpZHRoQXJnID0gaW5zdC5hcmdzW2kgKyAy
XTsKKyAgICAgICAgICAgIGxldCB3aWR0aCA9IHdpZHRoQXJnLndpZHRoOworICAgICAgICAgICAg
bGV0IHR5cGUgPSBzcmMuaXNHUCAmJiBkc3QuaXNHUCA/IEdQIDogRlA7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKGkgKyAwLCBmdW5jLCBBcmcuVXNlLCB0eXBlLCB3aWR0aCk7CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKGkgKyAxLCBmdW5jLCBBcmcuRGVmLCB0eXBlLCB3aWR0aCk7Cisg
ICAgICAgICAgICBpbnN0LnZpc2l0QXJnKGkgKyAyLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7Cisg
ICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGlu
c3QpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfTsKKworY29uc3QgUGF0
Y2hDdXN0b20gPSB7CisgICAgZm9yRWFjaEFyZyhpbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCBpbnN0LmFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoCisgICAgICAgICAgICAgICAgaSwgZnVuYywgaW5zdC5wYXRjaEFyZ0Rh
dGFbaV0ucm9sZSwgaW5zdC5wYXRjaEFyZ0RhdGFbaV0udHlwZSwKKyAgICAgICAgICAgICAgICBp
bnN0LnBhdGNoQXJnRGF0YVtpXS53aWR0aCk7CisgICAgICAgIH0KKyAgICB9LAorICAgIAorICAg
IGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpCisgICAgeworICAgICAgICByZXR1cm4g
aW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHM7CisgICAgfQorfTsKKworY29uc3QgQ0NhbGxDdXN0
b20gPSB7CisgICAgZm9yRWFjaEFyZyhpbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgbGV0IGlu
ZGV4ID0gMDsKKyAgICAgICAgaW5zdC52aXNpdEFyZyhpbmRleCsrLCBmdW5jLCBBcmcuVXNlLCBH
UCwgUHRyKTsgLy8gY2FsbGVlCisgICAgICAgIAorICAgICAgICBpZiAoaW5zdC5jQ2FsbFR5cGUg
IT0gVm9pZCkgeworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygKKyAgICAgICAgICAgICAgICBp
bmRleCsrLCBmdW5jLCBBcmcuRGVmLCBBcmcudHlwZUZvckIzVHlwZShpbnN0LmNDYWxsVHlwZSks
CisgICAgICAgICAgICAgICAgQXJnLndpZHRoRm9yQjNUeXBlKGluc3QuY0NhbGxUeXBlKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgaW5zdC5jQ2FsbEFy
Z1R5cGVzKSB7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKAorICAgICAgICAgICAgICAgIGlu
ZGV4KyssIGZ1bmMsIEFyZy5Vc2UsIEFyZy50eXBlRm9yQjNUeXBlKHR5cGUpLCBBcmcud2lkdGhG
b3JCM1R5cGUodHlwZSkpOworICAgICAgICB9CisgICAgfSwKKyAgICAKKyAgICBoYXNOb25BcmdO
b25Db250cm9sRWZmZWN0cyhpbnN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorfTsKKworY29uc3QgQ29sZENDYWxsQ3VzdG9tID0geworICAgIGZvckVhY2hBcmcoaW5zdCwg
ZnVuYykKKyAgICB7CisgICAgICAgIENDYWxsQ3VzdG9tLmZvckVhY2hBcmcoCisgICAgICAgICAg
ICBpbnN0LAorICAgICAgICAgICAgKGFyZywgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZnVuYyhhcmcsIEFyZy5jb29sZWQocm9sZSksIHR5cGUsIHdpZHRo
KTsKKyAgICAgICAgICAgIH0pOworICAgIH0sCisgICAgCisgICAgaGFzTm9uQXJnTm9uQ29udHJv
bEVmZmVjdHMoaW5zdCkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisK
SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvZnJlcXVlbnRlZF9ibG9jay5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2ZyZXF1ZW50ZWRfYmxvY2suanMJKHJldmlz
aW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2ZyZXF1ZW50ZWRfYmxvY2suanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBGcmVxdWVudGVkQmxvY2sg
eworICAgIGNvbnN0cnVjdG9yKGJsb2NrLCBmcmVxdWVuY3kpCisgICAgeworICAgICAgICB0aGlz
LmJsb2NrID0gYmxvY2s7CisgICAgICAgIHRoaXMuZnJlcXVlbmN5ID0gZnJlcXVlbmN5OworICAg
IH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gKHRoaXMuZnJl
cXVlbmN5ID09IE5vcm1hbCA/ICIiIDogIlJhcmU6IikgKyB0aGlzLmJsb2NrOworICAgIH0KK30K
SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvaW5zZXJ0aW9uX3NldC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2luc2VydGlvbl9zZXQuanMJKHJldmlzaW9uIDAp
CisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2luc2VydGlvbl9zZXQuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw4OSBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBJbnNlcnRpb24geworICAgIGNvbnN0cnVj
dG9yKGluZGV4LCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsK
KyAgICAgICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnQ7CisgICAgfQorICAgIAorICAgIGdldCBp
bmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9CisgICAgZ2V0IGVsZW1lbnQoKSB7IHJldHVy
biB0aGlzLl9lbGVtZW50OyB9CisgICAgCisgICAgbGVzc1RoYW4ob3RoZXIpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5faW5kZXggPCBvdGhlci5faW5kZXg7CisgICAgfQorfQorCitjbGFz
cyBJbnNlcnRpb25TZXQgeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHRoaXMu
X2luc2VydGlvbnMgPSBbXQorICAgIH0KKyAgICAKKyAgICBhcHBlbmRJbnNlcnRpb24oaW5zZXJ0
aW9uKQorICAgIHsKKyAgICAgICAgdGhpcy5faW5zZXJ0aW9ucy5wdXNoKGluc2VydGlvbik7Cisg
ICAgfQorICAgIAorICAgIGFwcGVuZChpbmRleCwgZWxlbWVudCkKKyAgICB7CisgICAgICAgIHRo
aXMuYXBwZW5kSW5zZXJ0aW9uKG5ldyBJbnNlcnRpb24oaW5kZXgsIGVsZW1lbnQpKTsKKyAgICB9
CisgICAgCisgICAgZXhlY3V0ZSh0YXJnZXQpCisgICAgeworICAgICAgICAvLyBXZSBidWJibGUt
c29ydCBiZWNhdXNlIHRoYXQncyB3aGF0IHRoZSBDKysgY29kZSwgYW5kIGZvciB0aGUgc2FtZSBy
ZWFzb24gYXMgd2UgZG8gaXQ6CisgICAgICAgIC8vIHRoZSBzdGRsaWIgZG9lc24ndCBoYXZlIGEg
c3RhYmxlIHNvcnQgYW5kIG1lcmdlc29ydCBpcyBzbG93ZXIgaW4gdGhlIGNvbW1vbiBjYXNlIG9m
IHRoZQorICAgICAgICAvLyBhcnJheSB1c3VhbGx5IGJlaW5nIHNvcnRlZC4gVGhpcyBhcnJheSBp
cyB1c3VhbGx5IHNvcnRlZC4KKyAgICAgICAgYnViYmxlU29ydCh0aGlzLl9pbnNlcnRpb25zLCAo
YSwgYikgPT4gKGEubGVzc1RoYW4oYikpKTsKKyAgICAgICAgCisgICAgICAgIGxldCBudW1JbnNl
cnRpb25zID0gdGhpcy5faW5zZXJ0aW9ucy5sZW5ndGg7CisgICAgICAgIGlmICghbnVtSW5zZXJ0
aW9ucykKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBsZXQgb3JpZ2luYWxUYXJnZXRT
aXplID0gdGFyZ2V0Lmxlbmd0aDsKKyAgICAgICAgdGFyZ2V0Lmxlbmd0aCArPSBudW1JbnNlcnRp
b25zOworICAgICAgICBsZXQgbGFzdEluZGV4ID0gdGFyZ2V0Lmxlbmd0aDsKKyAgICAgICAgZm9y
IChsZXQgaW5kZXhJbkluc2VydGlvbnMgPSBudW1JbnNlcnRpb25zOyBpbmRleEluSW5zZXJ0aW9u
cy0tOykgeworICAgICAgICAgICAgbGV0IGluc2VydGlvbiA9IHRoaXMuX2luc2VydGlvbnNbaW5k
ZXhJbkluc2VydGlvbnNdOworICAgICAgICAgICAgaWYgKGluZGV4SW5JbnNlcnRpb25zICYmIGlu
c2VydGlvbi5pbmRleCA8IHRoaXMuX2luc2VydGlvbnNbaW5kZXhJbkluc2VydGlvbnMgLSAxXS5p
bmRleCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkluc2VydGlvbnMgb3V0IG9m
IG9yZGVyIik7CisgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uLmluZGV4ID4gb3JpZ2luYWxUYXJn
ZXRTaXplKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3V0LW9mLWJvdW5kcyBp
bnNlcnRpb24iKTsKKyAgICAgICAgICAgIGxldCBmaXJzdEluZGV4ID0gaW5zZXJ0aW9uLmluZGV4
ICsgaW5kZXhJbkluc2VydGlvbnM7CisgICAgICAgICAgICBsZXQgaW5kZXhPZmZzZXQgPSBpbmRl
eEluSW5zZXJ0aW9ucyArIDE7CisgICAgICAgICAgICBmb3IgKGxldCBpID0gbGFzdEluZGV4OyAt
LWkgPiBmaXJzdEluZGV4OykKKyAgICAgICAgICAgICAgICB0YXJnZXRbaV0gPSB0YXJnZXRbaSAt
IGluZGV4T2Zmc2V0XTsKKyAgICAgICAgICAgIHRhcmdldFtmaXJzdEluZGV4XSA9IGluc2VydGlv
bi5lbGVtZW50OworICAgICAgICAgICAgbGFzdEluZGV4ID0gZmlyc3RJbmRleDsKKyAgICAgICAg
fQorICAgICAgICB0aGlzLl9pbnNlcnRpb25zID0gW107CisgICAgICAgIHJldHVybiBudW1JbnNl
cnRpb25zOworICAgIH0KK30KKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9pbnN0Lmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvaW5zdC5qcwkocmV2aXNpb24g
MCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvaW5zdC5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEzMyBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBJbnN0IHsKKyAgICBjb25zdHJ1Y3RvcihvcGNvZGUs
IGFyZ3MpCisgICAgeworICAgICAgICB0aGlzLl9vcGNvZGUgPSBvcGNvZGU7CisgICAgICAgIHRo
aXMuX2FyZ3MgPSBhcmdzID09IG51bGwgPyBbXSA6IGFyZ3M7CisgICAgfQorICAgIAorICAgIGFw
cGVuZCguLi5hcmdzKQorICAgIHsKKyAgICAgICAgdGhpcy5fYXJncy5wdXNoKC4uLmFyZ3MpOwor
ICAgIH0KKyAgICAKKyAgICBjbGVhcigpCisgICAgeworICAgICAgICB0aGlzLl9vcGNvZGUgPSBO
b3A7CisgICAgICAgIHRoaXMuX2FyZ3MgPSBbXTsKKyAgICB9CisgICAgCisgICAgZ2V0IG9wY29k
ZSgpIHsgcmV0dXJuIHRoaXMuX29wY29kZTsgfQorICAgIGdldCBhcmdzKCkgeyByZXR1cm4gdGhp
cy5fYXJnczsgfQorICAgIAorICAgIHZpc2l0QXJnKGluZGV4LCBmdW5jLCAuLi5hcmdzKQorICAg
IHsKKyAgICAgICAgbGV0IHJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9hcmdzW2luZGV4XSwgLi4u
YXJncyk7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCkKKyAgICAgICAgICAgIHRoaXMuX2FyZ3Nb
aW5kZXhdID0gcmVwbGFjZW1lbnQ7CisgICAgfQorICAgIAorICAgIGZvckVhY2hUbXBGYXN0KGZ1
bmMpCisgICAgeworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2FyZ3MubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChy
ZXBsYWNlbWVudCA9IHRoaXMuX2FyZ3NbaV0uZm9yRWFjaFRtcEZhc3QoZnVuYykpCisgICAgICAg
ICAgICAgICAgdGhpcy5fYXJnc1tpXSA9IHJlcGxhY2VtZW50OworICAgICAgICB9CisgICAgfQor
ICAgIAorICAgIGZvckVhY2hBcmcoZnVuYykKKyAgICB7CisgICAgICAgIEluc3RfZm9yRWFjaEFy
Zyh0aGlzLCBmdW5jKTsKKyAgICB9CisgICAgCisgICAgZm9yRWFjaFRtcChmdW5jKQorICAgIHsK
KyAgICAgICAgdGhpcy5mb3JFYWNoQXJnKChhcmcsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7Cisg
ICAgICAgICAgICByZXR1cm4gYXJnLmZvckVhY2hUbXAocm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmMp
OworICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgZm9yRWFjaCh0aGluZywgZnVuYykKKyAg
ICB7CisgICAgICAgIHRoaXMuZm9yRWFjaEFyZygoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4g
eworICAgICAgICAgICAgcmV0dXJuIGFyZy5mb3JFYWNoKHRoaW5nLCByb2xlLCB0eXBlLCB3aWR0
aCwgZnVuYyk7CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaERl
Zih0aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKHBy
ZXZJbnN0KSB7CisgICAgICAgICAgICBwcmV2SW5zdC5mb3JFYWNoKAorICAgICAgICAgICAgICAg
IHRoaW5nLAorICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKEFyZy5pc0xhdGVEZWYocm9sZSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZnVuYyh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobmV4dElu
c3QpIHsKKyAgICAgICAgICAgIG5leHRJbnN0LmZvckVhY2goCisgICAgICAgICAgICAgICAgdGhp
bmcsCisgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAg
ICAgICAgICAgICAgICAgICBpZiAoQXJnLmlzRWFybHlEZWYocm9sZSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZnVuYyh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNo
RGVmV2l0aEV4dHJhQ2xvYmJlcmVkUmVncyh0aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5j
KQorICAgIHsKKyAgICAgICAgZm9yRWFjaERlZih0aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBm
dW5jKTsKKyAgICAgICAgCisgICAgICAgIGxldCByZWdEZWZSb2xlOworICAgICAgICAKKyAgICAg
ICAgbGV0IHJlcG9ydFJlZyA9IHJlZyA9PiB7CisgICAgICAgICAgICBsZXQgdHlwZSA9IHJlZy5p
c0dQUiA/IEdQIDogRlA7CisgICAgICAgICAgICBmdW5jKHRoaW5nLmZyb21SZWcocmVnKSwgcmVn
RGVmUm9sZSwgdHlwZSwgQXJnLmNvbnNlcnZhdGl2ZVdpZHRoKHR5cGUpKTsKKyAgICAgICAgfTsK
KyAgICAgICAgCisgICAgICAgIGlmIChwcmV2SW5zdCAmJiBwcmV2SW5zdC5vcGNvZGUgPT0gUGF0
Y2gpIHsKKyAgICAgICAgICAgIHJlZ0RlZlJvbGUgPSBBcmcuRGVmOworICAgICAgICAgICAgcHJl
dkluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmZvckVhY2gocmVwb3J0UmVnKTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgaWYgKG5leHRJbnN0ICYmIG5leHRJbnN0Lm9wY29kZSA9PSBQYXRj
aCkgeworICAgICAgICAgICAgcmVnRGVmUm9sZSA9IEFyZy5FYXJseURlZjsKKyAgICAgICAgICAg
IG5leHRJbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmZvckVhY2gocmVwb3J0UmVnKTsKKyAg
ICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgaGFzTm9uQXJnRWZmZWN0cygpIHsgcmV0dXJu
IEluc3RfaGFzTm9uQXJnRWZmZWN0cyh0aGlzKTsgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAiIiArIHN5bWJvbE5hbWUodGhpcy5fb3Bjb2RlKSArICIgIiAr
IHRoaXMuX2FyZ3Muam9pbigiLCAiKTsKKyAgICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVz
dHMvSlNBaXIvbGl2ZW5lc3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fp
ci9saXZlbmVzcy5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvbGl2
ZW5lc3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNTIgQEAKKyJ1c2Ugc3RyaWN0IjsK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgTGl2
ZW5lc3MgeworICAgIGNvbnN0cnVjdG9yKHRoaW5nLCBjb2RlKQorICAgIHsKKyAgICAgICAgdGhp
cy5fdGhpbmcgPSB0aGluZzsKKyAgICAgICAgdGhpcy5fY29kZSA9IGNvZGU7CisgICAgICAgIAor
ICAgICAgICB0aGlzLl9saXZlQXRIZWFkID0gbmV3IE1hcCgpOworICAgICAgICB0aGlzLl9saXZl
QXRUYWlsID0gbmV3IE1hcCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgYmxvY2sgb2Yg
Y29kZSkgeworICAgICAgICAgICAgdGhpcy5fbGl2ZUF0SGVhZC5zZXQoYmxvY2ssIG5ldyBTZXQo
KSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxldCBsaXZlQXRUYWlsID0gbmV3IFNldCgp
OworICAgICAgICAgICAgdGhpcy5fbGl2ZUF0VGFpbC5zZXQoYmxvY2ssIGxpdmVBdFRhaWwpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBibG9jay5sYXN0LmZvckVhY2goCisgICAgICAgICAg
ICAgICAgdGhpbmcsCisgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkg
PT4geworICAgICAgICAgICAgICAgICAgICBpZiAoQXJnLmlzTGF0ZVVzZShyb2xlKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxpdmVBdFRhaWwuYWRkKHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbGV0IGRpcnR5QmxvY2tzID0gbmV3
IFNldChjb2RlKTsKKyAgICAgICAgCisgICAgICAgIGxldCBjaGFuZ2VkOworICAgICAgICBkbyB7
CisgICAgICAgICAgICBjaGFuZ2VkID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGZvciAobGV0IGJsb2NrSW5kZXggPSBjb2RlLnNpemU7IGJsb2NrSW5kZXgtLTspIHsKKyAgICAg
ICAgICAgICAgICBsZXQgYmxvY2sgPSBjb2RlLmF0KGJsb2NrSW5kZXgpOworICAgICAgICAgICAg
ICAgIGlmICghYmxvY2spCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghZGlydHlCbG9ja3MuZGVsZXRlKGJsb2NrKSkK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgbGV0IGxvY2FsQ2FsYyA9IHRoaXMubG9jYWxDYWxjKGJsb2NrKTsKKyAgICAgICAg
ICAgICAgICBmb3IgKGxldCBpbnN0SW5kZXggPSBibG9jay5zaXplOyBpbnN0SW5kZXgtLTspCisg
ICAgICAgICAgICAgICAgICAgIGxvY2FsQ2FsYy5leGVjdXRlKGluc3RJbmRleCk7CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBlYXJseSBkZWYncyBvZiB0
aGUgZmlyc3QgaW5zdHJ1Y3Rpb24uCisgICAgICAgICAgICAgICAgYmxvY2suYXQoMCkuZm9yRWFj
aCgKKyAgICAgICAgICAgICAgICAgICAgdGhpbmcsCisgICAgICAgICAgICAgICAgICAgICh2YWx1
ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChB
cmcuaXNFYXJseURlZihyb2xlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbENh
bGMubGl2ZVNldC5yZW1vdmUodmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBsZXQgbGl2ZUF0SGVhZCA9IHRoaXMuX2xpdmVB
dEhlYWQuZ2V0KGJsb2NrKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAo
IW1lcmdlSW50b1NldChsaXZlQXRIZWFkLCBsb2NhbENhbGMubGl2ZVNldCkpCisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZv
ciAobGV0IHByZWRlY2Vzc29yIG9mIGJsb2NrLnByZWRlY2Vzc29ycykgeworICAgICAgICAgICAg
ICAgICAgICBpZiAobWVyZ2VJbnRvU2V0KHRoaXMuX2xpdmVBdFRhaWwuZ2V0KHByZWRlY2Vzc29y
KSwgbGl2ZUF0SGVhZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpcnR5QmxvY2tzLmFk
ZChwcmVkZWNlc3Nvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSB3aGlsZSAoY2hhbmdlZCk7CisgICAgfQorICAgIAorICAgIGdldCB0aGluZygp
IHsgcmV0dXJuIHRoaXMuX3RoaW5nOyB9CisgICAgZ2V0IGNvZGUoKSB7IHJldHVybiB0aGlzLl9j
b2RlOyB9CisgICAgZ2V0IGxpdmVBdEhlYWQoKSB7IHJldHVybiB0aGlzLl9saXZlQXRIZWFkOyB9
CisgICAgZ2V0IGxpdmVBdFRhaWwoKSB7IHJldHVybiB0aGlzLl9saXZlQXRUYWlsOyB9CisgICAg
CisgICAgbG9jYWxDYWxjKGJsb2NrKQorICAgIHsKKyAgICAgICAgbGV0IGxpdmVuZXNzID0gdGhp
czsKKyAgICAgICAgY2xhc3MgTG9jYWxDYWxjIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9saXZlU2V0ID0gbmV3IFNldChs
aXZlbmVzcy5saXZlQXRUYWlsLmdldChibG9jaykpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgCisgICAgICAgICAgICBnZXQgbGl2ZVNldCgpIHsgcmV0dXJuIHRoaXMuX2xpdmVTZXQ7IH0K
KyAgICAgICAgICAgIAorICAgICAgICAgICAgZXhlY3V0ZShpbnN0SW5kZXgpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgbGV0IGluc3QgPSBibG9jay5hdChpbnN0SW5kZXgpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEZpcnN0IGhhbmRsZSB0aGUgZWFybHkg
ZGVmcyBvZiB0aGUgbmV4dCBpbnN0cnVjdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoaW5zdElu
ZGV4ICsgMSA8IGJsb2NrLnNpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2suYXQoaW5z
dEluZGV4ICsgMSkuZm9yRWFjaCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVuZXNzLnRo
aW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNFYXJseURlZihyb2xl
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGl2ZVNldC5kZWxldGUo
dmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRoZW4gaGFuZGxlIGRlZnMuCisg
ICAgICAgICAgICAgICAgaW5zdC5mb3JFYWNoKAorICAgICAgICAgICAgICAgICAgICBsaXZlbmVz
cy50aGluZywKKyAgICAgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkg
PT4geworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFyZy5pc0xhdGVEZWYocm9sZSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGl2ZVNldC5kZWxldGUodmFsdWUpOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICAvLyBUaGVuIGhhbmRsZSB1c2VzLgorICAgICAgICAgICAgICAgIGluc3QuZm9yRWFjaCgKKyAg
ICAgICAgICAgICAgICAgICAgbGl2ZW5lc3MudGhpbmcsCisgICAgICAgICAgICAgICAgICAgICh2
YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChBcmcuaXNFYXJseVVzZShyb2xlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9saXZlU2V0LmFkZCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEZpbmFsbHkgaGFuZGxlIHRoZSBsYXRlIHVzZXMg
b2YgdGhlIHByZXZpb3VzIGluc3RydWN0aW9uLgorICAgICAgICAgICAgICAgIGlmIChpbnN0SW5k
ZXggLSAxID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2suYXQoaW5zdEluZGV4IC0g
MSkuZm9yRWFjaCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVuZXNzLnRoaW5nLAorICAg
ICAgICAgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNMYXRlVXNlKHJvbGUpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9saXZlU2V0LmFkZCh2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgTG9jYWxDYWxjKCk7Cisg
ICAgfQorfQorCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL29wY29kZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL29wY29kZS5qcwkocmV2aXNpb24gMCkKKysr
IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTM4MCBAQAorInVzZSBzdHJpY3QiOworLy8gR2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0
b3IucmIgZnJvbSBKYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgLS0gZG8g
bm90IGVkaXQhCitjb25zdCBOb3AgPSBTeW1ib2woIk5vcCIpOworY29uc3QgQWRkMzIgPSBTeW1i
b2woIkFkZDMyIik7Citjb25zdCBBZGQ4ID0gU3ltYm9sKCJBZGQ4Iik7Citjb25zdCBBZGQxNiA9
IFN5bWJvbCgiQWRkMTYiKTsKK2NvbnN0IEFkZDY0ID0gU3ltYm9sKCJBZGQ2NCIpOworY29uc3Qg
QWRkRG91YmxlID0gU3ltYm9sKCJBZGREb3VibGUiKTsKK2NvbnN0IEFkZEZsb2F0ID0gU3ltYm9s
KCJBZGRGbG9hdCIpOworY29uc3QgU3ViMzIgPSBTeW1ib2woIlN1YjMyIik7Citjb25zdCBTdWI2
NCA9IFN5bWJvbCgiU3ViNjQiKTsKK2NvbnN0IFN1YkRvdWJsZSA9IFN5bWJvbCgiU3ViRG91Ymxl
Iik7Citjb25zdCBTdWJGbG9hdCA9IFN5bWJvbCgiU3ViRmxvYXQiKTsKK2NvbnN0IE5lZzMyID0g
U3ltYm9sKCJOZWczMiIpOworY29uc3QgTmVnNjQgPSBTeW1ib2woIk5lZzY0Iik7Citjb25zdCBO
ZWdhdGVEb3VibGUgPSBTeW1ib2woIk5lZ2F0ZURvdWJsZSIpOworY29uc3QgTXVsMzIgPSBTeW1i
b2woIk11bDMyIik7Citjb25zdCBNdWw2NCA9IFN5bWJvbCgiTXVsNjQiKTsKK2NvbnN0IE11bHRp
cGx5QWRkMzIgPSBTeW1ib2woIk11bHRpcGx5QWRkMzIiKTsKK2NvbnN0IE11bHRpcGx5QWRkNjQg
PSBTeW1ib2woIk11bHRpcGx5QWRkNjQiKTsKK2NvbnN0IE11bHRpcGx5U3ViMzIgPSBTeW1ib2wo
Ik11bHRpcGx5U3ViMzIiKTsKK2NvbnN0IE11bHRpcGx5U3ViNjQgPSBTeW1ib2woIk11bHRpcGx5
U3ViNjQiKTsKK2NvbnN0IE11bHRpcGx5TmVnMzIgPSBTeW1ib2woIk11bHRpcGx5TmVnMzIiKTsK
K2NvbnN0IE11bHRpcGx5TmVnNjQgPSBTeW1ib2woIk11bHRpcGx5TmVnNjQiKTsKK2NvbnN0IERp
djMyID0gU3ltYm9sKCJEaXYzMiIpOworY29uc3QgRGl2NjQgPSBTeW1ib2woIkRpdjY0Iik7Citj
b25zdCBNdWxEb3VibGUgPSBTeW1ib2woIk11bERvdWJsZSIpOworY29uc3QgTXVsRmxvYXQgPSBT
eW1ib2woIk11bEZsb2F0Iik7Citjb25zdCBEaXZEb3VibGUgPSBTeW1ib2woIkRpdkRvdWJsZSIp
OworY29uc3QgRGl2RmxvYXQgPSBTeW1ib2woIkRpdkZsb2F0Iik7Citjb25zdCBYODZDb252ZXJ0
VG9Eb3VibGVXb3JkMzIgPSBTeW1ib2woIlg4NkNvbnZlcnRUb0RvdWJsZVdvcmQzMiIpOworY29u
c3QgWDg2Q29udmVydFRvUXVhZFdvcmQ2NCA9IFN5bWJvbCgiWDg2Q29udmVydFRvUXVhZFdvcmQ2
NCIpOworY29uc3QgWDg2RGl2MzIgPSBTeW1ib2woIlg4NkRpdjMyIik7Citjb25zdCBYODZEaXY2
NCA9IFN5bWJvbCgiWDg2RGl2NjQiKTsKK2NvbnN0IExlYSA9IFN5bWJvbCgiTGVhIik7Citjb25z
dCBBbmQzMiA9IFN5bWJvbCgiQW5kMzIiKTsKK2NvbnN0IEFuZDY0ID0gU3ltYm9sKCJBbmQ2NCIp
OworY29uc3QgQW5kRG91YmxlID0gU3ltYm9sKCJBbmREb3VibGUiKTsKK2NvbnN0IEFuZEZsb2F0
ID0gU3ltYm9sKCJBbmRGbG9hdCIpOworY29uc3QgWG9yRG91YmxlID0gU3ltYm9sKCJYb3JEb3Vi
bGUiKTsKK2NvbnN0IFhvckZsb2F0ID0gU3ltYm9sKCJYb3JGbG9hdCIpOworY29uc3QgTHNoaWZ0
MzIgPSBTeW1ib2woIkxzaGlmdDMyIik7Citjb25zdCBMc2hpZnQ2NCA9IFN5bWJvbCgiTHNoaWZ0
NjQiKTsKK2NvbnN0IFJzaGlmdDMyID0gU3ltYm9sKCJSc2hpZnQzMiIpOworY29uc3QgUnNoaWZ0
NjQgPSBTeW1ib2woIlJzaGlmdDY0Iik7Citjb25zdCBVcnNoaWZ0MzIgPSBTeW1ib2woIlVyc2hp
ZnQzMiIpOworY29uc3QgVXJzaGlmdDY0ID0gU3ltYm9sKCJVcnNoaWZ0NjQiKTsKK2NvbnN0IE9y
MzIgPSBTeW1ib2woIk9yMzIiKTsKK2NvbnN0IE9yNjQgPSBTeW1ib2woIk9yNjQiKTsKK2NvbnN0
IFhvcjMyID0gU3ltYm9sKCJYb3IzMiIpOworY29uc3QgWG9yNjQgPSBTeW1ib2woIlhvcjY0Iik7
Citjb25zdCBOb3QzMiA9IFN5bWJvbCgiTm90MzIiKTsKK2NvbnN0IE5vdDY0ID0gU3ltYm9sKCJO
b3Q2NCIpOworY29uc3QgQWJzRG91YmxlID0gU3ltYm9sKCJBYnNEb3VibGUiKTsKK2NvbnN0IEFi
c0Zsb2F0ID0gU3ltYm9sKCJBYnNGbG9hdCIpOworY29uc3QgQ2VpbERvdWJsZSA9IFN5bWJvbCgi
Q2VpbERvdWJsZSIpOworY29uc3QgQ2VpbEZsb2F0ID0gU3ltYm9sKCJDZWlsRmxvYXQiKTsKK2Nv
bnN0IEZsb29yRG91YmxlID0gU3ltYm9sKCJGbG9vckRvdWJsZSIpOworY29uc3QgRmxvb3JGbG9h
dCA9IFN5bWJvbCgiRmxvb3JGbG9hdCIpOworY29uc3QgU3FydERvdWJsZSA9IFN5bWJvbCgiU3Fy
dERvdWJsZSIpOworY29uc3QgU3FydEZsb2F0ID0gU3ltYm9sKCJTcXJ0RmxvYXQiKTsKK2NvbnN0
IENvbnZlcnRJbnQzMlRvRG91YmxlID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0RvdWJsZSIpOwor
Y29uc3QgQ29udmVydEludDY0VG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRJbnQ2NFRvRG91Ymxl
Iik7Citjb25zdCBDb252ZXJ0SW50MzJUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0Zs
b2F0Iik7Citjb25zdCBDb252ZXJ0SW50NjRUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50NjRU
b0Zsb2F0Iik7Citjb25zdCBDb3VudExlYWRpbmdaZXJvczMyID0gU3ltYm9sKCJDb3VudExlYWRp
bmdaZXJvczMyIik7Citjb25zdCBDb3VudExlYWRpbmdaZXJvczY0ID0gU3ltYm9sKCJDb3VudExl
YWRpbmdaZXJvczY0Iik7Citjb25zdCBDb252ZXJ0RG91YmxlVG9GbG9hdCA9IFN5bWJvbCgiQ29u
dmVydERvdWJsZVRvRmxvYXQiKTsKK2NvbnN0IENvbnZlcnRGbG9hdFRvRG91YmxlID0gU3ltYm9s
KCJDb252ZXJ0RmxvYXRUb0RvdWJsZSIpOworY29uc3QgTW92ZSA9IFN5bWJvbCgiTW92ZSIpOwor
Y29uc3QgU3dhcDMyID0gU3ltYm9sKCJTd2FwMzIiKTsKK2NvbnN0IFN3YXA2NCA9IFN5bWJvbCgi
U3dhcDY0Iik7Citjb25zdCBNb3ZlMzIgPSBTeW1ib2woIk1vdmUzMiIpOworY29uc3QgU3RvcmVa
ZXJvMzIgPSBTeW1ib2woIlN0b3JlWmVybzMyIik7Citjb25zdCBTaWduRXh0ZW5kMzJUb1B0ciA9
IFN5bWJvbCgiU2lnbkV4dGVuZDMyVG9QdHIiKTsKK2NvbnN0IFplcm9FeHRlbmQ4VG8zMiA9IFN5
bWJvbCgiWmVyb0V4dGVuZDhUbzMyIik7Citjb25zdCBTaWduRXh0ZW5kOFRvMzIgPSBTeW1ib2wo
IlNpZ25FeHRlbmQ4VG8zMiIpOworY29uc3QgWmVyb0V4dGVuZDE2VG8zMiA9IFN5bWJvbCgiWmVy
b0V4dGVuZDE2VG8zMiIpOworY29uc3QgU2lnbkV4dGVuZDE2VG8zMiA9IFN5bWJvbCgiU2lnbkV4
dGVuZDE2VG8zMiIpOworY29uc3QgTW92ZUZsb2F0ID0gU3ltYm9sKCJNb3ZlRmxvYXQiKTsKK2Nv
bnN0IE1vdmVEb3VibGUgPSBTeW1ib2woIk1vdmVEb3VibGUiKTsKK2NvbnN0IE1vdmVaZXJvVG9E
b3VibGUgPSBTeW1ib2woIk1vdmVaZXJvVG9Eb3VibGUiKTsKK2NvbnN0IE1vdmU2NFRvRG91Ymxl
ID0gU3ltYm9sKCJNb3ZlNjRUb0RvdWJsZSIpOworY29uc3QgTW92ZTMyVG9GbG9hdCA9IFN5bWJv
bCgiTW92ZTMyVG9GbG9hdCIpOworY29uc3QgTW92ZURvdWJsZVRvNjQgPSBTeW1ib2woIk1vdmVE
b3VibGVUbzY0Iik7Citjb25zdCBNb3ZlRmxvYXRUbzMyID0gU3ltYm9sKCJNb3ZlRmxvYXRUbzMy
Iik7Citjb25zdCBMb2FkOCA9IFN5bWJvbCgiTG9hZDgiKTsKK2NvbnN0IFN0b3JlOCA9IFN5bWJv
bCgiU3RvcmU4Iik7Citjb25zdCBMb2FkOFNpZ25lZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQ4
U2lnbmVkRXh0ZW5kVG8zMiIpOworY29uc3QgTG9hZDE2ID0gU3ltYm9sKCJMb2FkMTYiKTsKK2Nv
bnN0IExvYWQxNlNpZ25lZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQxNlNpZ25lZEV4dGVuZFRv
MzIiKTsKK2NvbnN0IFN0b3JlMTYgPSBTeW1ib2woIlN0b3JlMTYiKTsKK2NvbnN0IENvbXBhcmUz
MiA9IFN5bWJvbCgiQ29tcGFyZTMyIik7Citjb25zdCBDb21wYXJlNjQgPSBTeW1ib2woIkNvbXBh
cmU2NCIpOworY29uc3QgVGVzdDMyID0gU3ltYm9sKCJUZXN0MzIiKTsKK2NvbnN0IFRlc3Q2NCA9
IFN5bWJvbCgiVGVzdDY0Iik7Citjb25zdCBDb21wYXJlRG91YmxlID0gU3ltYm9sKCJDb21wYXJl
RG91YmxlIik7Citjb25zdCBDb21wYXJlRmxvYXQgPSBTeW1ib2woIkNvbXBhcmVGbG9hdCIpOwor
Y29uc3QgQnJhbmNoOCA9IFN5bWJvbCgiQnJhbmNoOCIpOworY29uc3QgQnJhbmNoMzIgPSBTeW1i
b2woIkJyYW5jaDMyIik7Citjb25zdCBCcmFuY2g2NCA9IFN5bWJvbCgiQnJhbmNoNjQiKTsKK2Nv
bnN0IEJyYW5jaFRlc3Q4ID0gU3ltYm9sKCJCcmFuY2hUZXN0OCIpOworY29uc3QgQnJhbmNoVGVz
dDMyID0gU3ltYm9sKCJCcmFuY2hUZXN0MzIiKTsKK2NvbnN0IEJyYW5jaFRlc3Q2NCA9IFN5bWJv
bCgiQnJhbmNoVGVzdDY0Iik7Citjb25zdCBCcmFuY2hEb3VibGUgPSBTeW1ib2woIkJyYW5jaERv
dWJsZSIpOworY29uc3QgQnJhbmNoRmxvYXQgPSBTeW1ib2woIkJyYW5jaEZsb2F0Iik7Citjb25z
dCBCcmFuY2hBZGQzMiA9IFN5bWJvbCgiQnJhbmNoQWRkMzIiKTsKK2NvbnN0IEJyYW5jaEFkZDY0
ID0gU3ltYm9sKCJCcmFuY2hBZGQ2NCIpOworY29uc3QgQnJhbmNoTXVsMzIgPSBTeW1ib2woIkJy
YW5jaE11bDMyIik7Citjb25zdCBCcmFuY2hNdWw2NCA9IFN5bWJvbCgiQnJhbmNoTXVsNjQiKTsK
K2NvbnN0IEJyYW5jaFN1YjMyID0gU3ltYm9sKCJCcmFuY2hTdWIzMiIpOworY29uc3QgQnJhbmNo
U3ViNjQgPSBTeW1ib2woIkJyYW5jaFN1YjY0Iik7Citjb25zdCBCcmFuY2hOZWczMiA9IFN5bWJv
bCgiQnJhbmNoTmVnMzIiKTsKK2NvbnN0IEJyYW5jaE5lZzY0ID0gU3ltYm9sKCJCcmFuY2hOZWc2
NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHkzMiA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFs
bHkzMiIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlv
bmFsbHk2NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlUZXN0MzIgPSBTeW1ib2woIk1vdmVD
b25kaXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2NCA9IFN5
bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlUZXN0NjQiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5
RG91YmxlID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseURvdWJsZSIpOworY29uc3QgTW92ZUNv
bmRpdGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlGbG9hdCIpOworY29u
c3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHkzMiA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlv
bmFsbHkzMiIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92
ZURvdWJsZUNvbmRpdGlvbmFsbHk2NCIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlU
ZXN0MzIgPSBTeW1ib2woIk1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBN
b3ZlRG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2NCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlv
bmFsbHlUZXN0NjQiKTsKK2NvbnN0IE1vdmVEb3VibGVDb25kaXRpb25hbGx5RG91YmxlID0gU3lt
Ym9sKCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseURvdWJsZSIpOworY29uc3QgTW92ZURvdWJsZUNv
bmRpdGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCIp
OworY29uc3QgSnVtcCA9IFN5bWJvbCgiSnVtcCIpOworY29uc3QgUmV0MzIgPSBTeW1ib2woIlJl
dDMyIik7Citjb25zdCBSZXQ2NCA9IFN5bWJvbCgiUmV0NjQiKTsKK2NvbnN0IFJldEZsb2F0ID0g
U3ltYm9sKCJSZXRGbG9hdCIpOworY29uc3QgUmV0RG91YmxlID0gU3ltYm9sKCJSZXREb3VibGUi
KTsKK2NvbnN0IE9vcHMgPSBTeW1ib2woIk9vcHMiKTsKK2NvbnN0IFNodWZmbGUgPSBTeW1ib2wo
IlNodWZmbGUiKTsKK2NvbnN0IFBhdGNoID0gU3ltYm9sKCJQYXRjaCIpOworY29uc3QgQ0NhbGwg
PSBTeW1ib2woIkNDYWxsIik7Citjb25zdCBDb2xkQ0NhbGwgPSBTeW1ib2woIkNvbGRDQ2FsbCIp
OworZnVuY3Rpb24gSW5zdF9mb3JFYWNoQXJnKGluc3QsIGZ1bmMpCit7CisgICAgbGV0IHJlcGxh
Y2VtZW50OworICAgIHN3aXRjaCAoaW5zdC5vcGNvZGUpIHsKKyAgICBjYXNlIE5vcDoKKyAgICAg
ICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkMzI6CisgICAgICAgIHN3aXRj
aCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZp
c2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0
QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYs
IEdQLCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZDg6CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA4KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQWRkMTY6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDE2KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVm
LCBHUCwgMTYpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBZGQ2
NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZERv
dWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsK
KyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFk
ZEZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIp
OworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOwor
ICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBGUCwgMzIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRB
cmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmco
MSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
U3ViMzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3ViNjQ6CisgICAgICAgIGlu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTdWJEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdz
Lmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMs
IEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAg
ICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBTdWJGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFy
Z3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmco
MCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVu
YywgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6
CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7Cisg
ICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCAzMik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE5lZzMyOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBOZWc2NDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBOZWdhdGVEb3VibGU6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
RlAsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQp
OworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWwzMjoKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBB
cmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsNjQ6CisgICAg
ICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBB
cmcuRGVmLCBHUCwgNjQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWx0aXBseUFkZDMy
OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5z
dC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0
QXJnKDMsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBNdWx0aXBseUFkZDY0OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2
NCk7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bHRpcGx5U3Vi
MzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBp
bnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3Qudmlz
aXRBcmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIE11bHRpcGx5U3ViNjQ6CisgICAgICAgIGluc3QudmlzaXRBcmco
MCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5V
c2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLkRlZiwgR1As
IDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsdGlwbHlO
ZWczMjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOwor
ICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
IGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFr
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bHRpcGx5TmVnNjQ6CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5aRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBEaXYzMjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAg
ICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpdjY0OgorICAgICAgICBpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRB
cmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBm
dW5jLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNdWxEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgewor
ICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5V
c2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2Us
IEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQ
LCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgaW5z
dC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBv
dmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNdWxGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVz
ZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwg
RlAsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCAzMik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICBjYXNlIERpdkRvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3Ro
KSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRl
ZiwgRlAsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
QmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERpdkZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5n
dGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcu
RGVmLCBGUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgWDg2Q29udmVydFRvRG91YmxlV29yZDMyOgorICAgICAgICBpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRB
cmcoMSwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFg4NkNvbnZlcnRUb1F1YWRXb3JkNjQ6CisgICAgICAgIGluc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygx
LCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBYODZEaXYzMjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNl
WkRlZiwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYODZEaXY2
NDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsK
KyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBi
cmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMZWE6CisgICAgICAgIGluc3QudmlzaXRB
cmcoMCwgZnVuYywgQXJnLlVzZUFkZHIsIEdQLCBQdHIpOworICAgICAgICBpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBbmQzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYs
IEdQLCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJC
YWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQW5kNjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkg
eworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFy
Zy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5V
c2UsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYs
IEdQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBbmREb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMs
IEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5E
ZWYsIEZQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBBbmRGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJn
LkRlZiwgRlAsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCAzMik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFhvckRvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3Mu
bGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywg
QXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFhvckZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJn
cy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygw
LCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBm
dW5jLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5j
LCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTHNoaWZ0MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5h
cmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIExzaGlmdDY0OgorICAgICAgICBzd2l0Y2ggKGlu
c3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNp
dEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2
NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2
NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFJzaGlmdDMyOgorICAgICAgICBzd2l0Y2gg
KGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFy
ZygyLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDI6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBH
UCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSc2hpZnQ2NDoKKyAgICAgICAgc3dp
dGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGlu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3Qudmlz
aXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVm
LCBHUCwgNjQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBVcnNoaWZ0MzI6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVz
ZVpEZWYsIEdQLCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFVyc2hpZnQ2NDoKKyAg
ICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcjMyOgorICAg
ICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcjY0OgorICAg
ICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWG9yMzI6CisgICAg
ICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFhvcjY0OgorICAg
ICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAg
ICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTm90MzI6CisgICAg
ICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vdDY0
OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmco
MCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QWJzRG91YmxlOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2
NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWJzRmxvYXQ6CisgICAgICAg
IGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDZWlsRG91YmxlOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ2VpbEZsb2F0OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQ
LCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsK
KyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRmxvb3JEb3VibGU6Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGbG9vckZsb2F0OgorICAgICAgICBpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU3FydERvdWJsZToKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlLCBGUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQ
LCA2NCk7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNxcnRGbG9h
dDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworICAg
ICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJy
ZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRJbnQzMlRvRG91YmxlOgorICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGlu
c3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udmVydEludDY0VG9Eb3VibGU6CisgICAgICAgIGlu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb252ZXJ0SW50MzJUb0Zsb2F0OgorICAgICAgICBpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ29udmVydEludDY0VG9GbG9hdDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IENvdW50TGVhZGluZ1plcm9zMzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwg
R1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ291bnRM
ZWFkaW5nWmVyb3M2NDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBH
UCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7
CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnREb3VibGVU
b0Zsb2F0OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udmVydEZsb2F0VG9Eb3VibGU6
CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVh
azsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlOgorICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBTd2FwMzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZURl
ZiwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBH
UCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTd2FwNjQ6
CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAg
ICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlMzI6CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgU3RvcmVaZXJvMzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU2lnbkV4dGVuZDMyVG9QdHI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVm
LCBHUCwgUHRyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWmVy
b0V4dGVuZDhUbzMyOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCA4KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsK
KyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2lnbkV4dGVuZDhUbzMy
OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJl
YWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWmVyb0V4dGVuZDE2VG8zMjoKKyAgICAgICAg
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMTYpOworICAgICAgICBpbnN0LnZp
c2l0QXJnKDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTaWduRXh0ZW5kMTZUbzMyOgorICAgICAgICBpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIE1vdmVGbG9hdDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlLCBGUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQ
LCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3Vi
bGU6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBi
cmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlWmVyb1RvRG91YmxlOgorICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFr
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmU2NFRvRG91YmxlOgorICAgICAgICBpbnN0
LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRB
cmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTW92ZTMyVG9GbG9hdDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IE1vdmVEb3VibGVUbzY0OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgR1AsIDY0
KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUZsb2F0VG8z
MjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworICAg
ICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCAzMik7CisgICAgICAgIGJy
ZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQ4OgorICAgICAgICBpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBm
dW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgU3RvcmU4OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCA4KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwgOCk7
CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQ4U2lnbmVkRXh0
ZW5kVG8zMjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7
CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAg
ICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQxNjoKKyAgICAgICAgaW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMTYpOworICAgICAgICBpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBMb2FkMTZTaWduZWRFeHRlbmRUbzMyOgorICAgICAgICBpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAgIGluc3QudmlzaXRBcmco
MSwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFN0b3JlMTY6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDE2KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBH
UCwgMTYpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wYXJl
MzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBp
bnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3Qudmlz
aXRBcmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENvbXBhcmU2NDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwg
R1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMy
KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGVzdDMyOgorICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGlu
c3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNp
dEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDMs
IGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBUZXN0NjQ6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwg
NjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAg
IGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBhcmVEb3VibGU6CisgICAgICAg
IGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJn
KDIsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVu
YywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENvbXBhcmVGbG9hdDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQ
LCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsK
KyAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoODoKKyAgICAgICAgaW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBm
dW5jLCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEJyYW5jaDMyOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2g2NDoKKyAgICAgICAg
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZp
c2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmco
MiwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJhbmNoVGVzdDg6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNl
LCBHUCwgOCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDgp
OworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hUZXN0MzI6
CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEJyYW5jaFRlc3Q2NDoKKyAgICAgICAgaW5zdC52aXNpdEFy
ZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
QnJhbmNoRG91YmxlOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsK
KyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAg
ICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hGbG9hdDoKKyAgICAgICAg
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZp
c2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmco
MiwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQnJhbmNoQWRkMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0
aCkgeworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5V
c2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5aRGVm
LCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGlu
c3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJyYW5jaEFkZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5n
dGgpIHsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcu
VXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRl
ZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICBjYXNlIEJyYW5jaE11bDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5n
dGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcu
VXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6Cisg
ICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlNj
cmF0Y2gsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5T
Y3JhdGNoLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcu
WkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTXVsNjQ6Cisg
ICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgNjQpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJn
LlNjcmF0Y2gsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFy
Zy5TY3JhdGNoLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBB
cmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoU3ViMzI6
CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hTdWI2NDoKKyAgICAgICAgaW5zdC52aXNp
dEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywg
QXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQnJhbmNoTmVnMzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwg
R1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNo
TmVnNjQ6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAg
ICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHkz
MjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNToK
KyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJn
LlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5V
c2UsIEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVm
LCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHk2
NDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNToK
KyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJn
LlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5V
c2UsIEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVm
LCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlU
ZXN0MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNl
IDU6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7Cisg
ICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAg
ICAgICAgaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBB
cmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoNSwgZnVuYywgQXJn
LkRlZiwgR1AsIFB0cik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRpb25h
bGx5VGVzdDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAg
Y2FzZSA1OgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQp
OworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOwor
ICAgICAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIFB0cik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgaW5zdC52aXNp
dEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygzLCBm
dW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoNCwgZnVu
YywgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDUsIGZ1bmMs
IEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0
aW9uYWxseURvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAg
ICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAs
IDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDY0
KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7
CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOwor
ICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg0LCBmdW5j
LCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNv
bmRpdGlvbmFsbHlGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Cisg
ICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwg
RlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAs
IDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0
cik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIp
OworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDIsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDMs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg0LCBm
dW5jLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92
ZURvdWJsZUNvbmRpdGlvbmFsbHkzMjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMy
KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAg
ICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGlu
c3QudmlzaXRBcmcoNSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHk2NDoKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRB
cmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygzLCBm
dW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFy
Zy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoNSwgZnVuYywgQXJnLkRlZiwg
RlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURv
dWJsZUNvbmRpdGlvbmFsbHlUZXN0MzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAz
Mik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBp
bnN0LnZpc2l0QXJnKDUsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDY0Ogor
ICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
IGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52
aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJn
KDMsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoNCwgZnVu
YywgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcu
RGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBN
b3ZlRG91YmxlQ29uZGl0aW9uYWxseURvdWJsZToKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFy
Zy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwg
RlAsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQp
OworICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAg
ICAgIGluc3QudmlzaXRBcmcoNSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJl
YWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9h
dDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGlu
c3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgaW5zdC52aXNp
dEFyZygzLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDQs
IGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoNSwgZnVuYywg
QXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgSnVtcDoKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0MzI6
CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0NjQ6CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUmV0RmxvYXQ6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUmV0RG91YmxlOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5V
c2UsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9v
cHM6CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNodWZmbGU6Cisg
ICAgICAgIFNodWZmbGVDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBQYXRjaDoKKyAgICAgICAgUGF0Y2hDdXN0b20uZm9yRWFjaEFyZyhpbnN0
LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQ2FsbDoKKyAgICAgICAgQ0NhbGxD
dXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
b2xkQ0NhbGw6CisgICAgICAgIENvbGRDQ2FsbEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMp
OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICB0aHJvdyAiQmFkIG9wY29k
ZSI7CisgICAgfQorfQorZnVuY3Rpb24gSW5zdF9oYXNOb25BcmdFZmZlY3RzKGluc3QpCit7Cisg
ICAgc3dpdGNoIChpbnN0Lm9wY29kZSkgeworICAgIGNhc2UgQnJhbmNoODoKKyAgICBjYXNlIEJy
YW5jaDMyOgorICAgIGNhc2UgQnJhbmNoNjQ6CisgICAgY2FzZSBCcmFuY2hUZXN0ODoKKyAgICBj
YXNlIEJyYW5jaFRlc3QzMjoKKyAgICBjYXNlIEJyYW5jaFRlc3Q2NDoKKyAgICBjYXNlIEJyYW5j
aERvdWJsZToKKyAgICBjYXNlIEJyYW5jaEZsb2F0OgorICAgIGNhc2UgQnJhbmNoQWRkMzI6Cisg
ICAgY2FzZSBCcmFuY2hBZGQ2NDoKKyAgICBjYXNlIEJyYW5jaE11bDMyOgorICAgIGNhc2UgQnJh
bmNoTXVsNjQ6CisgICAgY2FzZSBCcmFuY2hTdWIzMjoKKyAgICBjYXNlIEJyYW5jaFN1YjY0Ogor
ICAgIGNhc2UgQnJhbmNoTmVnMzI6CisgICAgY2FzZSBCcmFuY2hOZWc2NDoKKyAgICBjYXNlIEp1
bXA6CisgICAgY2FzZSBSZXQzMjoKKyAgICBjYXNlIFJldDY0OgorICAgIGNhc2UgUmV0RmxvYXQ6
CisgICAgY2FzZSBSZXREb3VibGU6CisgICAgY2FzZSBPb3BzOgorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBjYXNlIFNodWZmbGU6CisgICAgICAgIHJldHVybiBTaHVmZmxlQ3VzdG9tLmhhc05v
bkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOworICAgIGNhc2UgUGF0Y2g6CisgICAgICAgIHJl
dHVybiBQYXRjaEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKKyAgICBj
YXNlIENDYWxsOgorICAgICAgICByZXR1cm4gQ0NhbGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJv
bEVmZmVjdHMoaW5zdCk7CisgICAgY2FzZSBDb2xkQ0NhbGw6CisgICAgICAgIHJldHVybiBDb2xk
Q0NhbGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVz
dHMvSlNBaXIvcGF5bG9hZC1nYmVtdS1leGVjdXRlSXRlcmF0aW9uLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcGF5bG9hZC1nYmVtdS1leGVjdXRlSXRlcmF0aW9uLmpz
CShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9wYXlsb2FkLWdiZW11LWV4
ZWN1dGVJdGVyYXRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMTgyIEBACisidXNl
IHN0cmljdCI7CisvLyBHZW5lcmF0ZWQgYnkgQWlyOjpkdW1wQXNKUyBmcm9tIGV4ZWN1dGVJdGVy
YXRpb24jRVZ4OHBKIGluIE9jdGFuZS9nYmVtdQorZnVuY3Rpb24gY3JlYXRlUGF5bG9hZEdiZW11
RXhlY3V0ZUl0ZXJhdGlvbigpCit7CisgICAgbGV0IGNvZGUgPSBuZXcgQ29kZSgpOworICAgIGxl
dCBiYjAgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMSA9IGNvZGUuYWRkQmxvY2soKTsK
KyAgICBsZXQgYmIyID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjMgPSBjb2RlLmFkZEJs
b2NrKCk7CisgICAgbGV0IGJiNCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI1ID0gY29k
ZS5hZGRCbG9jaygpOworICAgIGxldCBiYjYgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJi
NyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI4ID0gY29kZS5hZGRCbG9jaygpOworICAg
IGxldCBiYjkgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTAgPSBjb2RlLmFkZEJsb2Nr
KCk7CisgICAgbGV0IGJiMTEgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTIgPSBjb2Rl
LmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTMgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJi
MTQgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTUgPSBjb2RlLmFkZEJsb2NrKCk7Cisg
ICAgbGV0IGJiMTYgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTcgPSBjb2RlLmFkZEJs
b2NrKCk7CisgICAgbGV0IGJiMTggPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTkgPSBj
b2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjAgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0
IGJiMjEgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjIgPSBjb2RlLmFkZEJsb2NrKCk7
CisgICAgbGV0IGJiMjMgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjQgPSBjb2RlLmFk
ZEJsb2NrKCk7CisgICAgbGV0IGJiMjUgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjYg
PSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjcgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAg
bGV0IGJiMjggPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjkgPSBjb2RlLmFkZEJsb2Nr
KCk7CisgICAgbGV0IGJiMzAgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzEgPSBjb2Rl
LmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzIgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJi
MzMgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzQgPSBjb2RlLmFkZEJsb2NrKCk7Cisg
ICAgbGV0IGJiMzUgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzYgPSBjb2RlLmFkZEJs
b2NrKCk7CisgICAgbGV0IGJiMzcgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzggPSBj
b2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzkgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0
IGJiNDAgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiNDEgPSBjb2RlLmFkZEJsb2NrKCk7
CisgICAgbGV0IGJiNDIgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IHNsb3QwID0gY29kZS5h
ZGRTdGFja1Nsb3QoNjQsIExvY2tlZCk7CisgICAgbGV0IHNsb3QxID0gY29kZS5hZGRTdGFja1Ns
b3QoOCwgU3BpbGwpOworICAgIGxldCBzbG90MiA9IGNvZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxs
KTsKKyAgICBsZXQgc2xvdDMgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CisgICAgbGV0
IHNsb3Q0ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworICAgIGxldCBzbG90NSA9IGNv
ZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDYgPSBjb2RlLmFkZFN0YWNr
U2xvdCg4LCBTcGlsbCk7CisgICAgbGV0IHNsb3Q3ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3Bp
bGwpOworICAgIGxldCBzbG90OCA9IGNvZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBs
ZXQgc2xvdDkgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CisgICAgbGV0IHNsb3QxMCA9
IGNvZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDExID0gY29kZS5hZGRT
dGFja1Nsb3QoOCwgU3BpbGwpOworICAgIGxldCBzbG90MTIgPSBjb2RlLmFkZFN0YWNrU2xvdCg0
MCwgTG9ja2VkKTsKKyAgICBsZXQgdG1wMTkwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAxODkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE4OCA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMTg3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxODYgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE4NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMTg0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxODMgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDE4MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTgx
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxODAgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDE3OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTc4ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAxNzcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDE3NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTc1ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAxNzQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE3MyA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTcyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAxNzEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE3MCA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wMTY5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNjgg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE2NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wMTY2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNjUgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDE2NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
MTYzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNjIgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDE2MSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTYwID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNTkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDE1OCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTU3ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXAxNTYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE1NSA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTU0ID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXAxNTMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE1MiA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wMTUxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAx
NTAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE0OSA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wMTQ4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNDcgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE0NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMTQ1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNDQgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDE0MyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTQyID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNDEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDE0MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTM5ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXAxMzggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEz
NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTM2ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXAxMzUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzNCA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTMzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAxMzIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzMSA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMTMwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjkgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEyOCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMTI3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjYgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDEyNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTI0
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjMgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDEyMiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTIxID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDExOSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTE4ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAxMTcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExNiA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTE1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAxMTQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExMyA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wMTEyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMTEg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wMTA5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMDggPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDEwNyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
MTA2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMDUgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDEwNCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTAzID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMDIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDEwMSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTAwID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXA5OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTggPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDk3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXA5NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTUgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDk0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5MyA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDkxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5MCA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wODkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDg4ID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wODYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDg1ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXA4NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODMgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDgyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXA4MSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODAgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDc5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3OCA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDc2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3NSA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wNzQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDczID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXA3MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
NzEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDcwID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXA2OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNjggPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDY3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2
NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNjUgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDY0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2MyA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wNjIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYx
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wNTkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDU4ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXA1NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTYg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDU1ID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXA1NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTMgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDUyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1MSA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDQ5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0OCA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wNDcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ2ID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wNDQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQzID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXA0MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDEgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAzOSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzggPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDM3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzNiA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDM0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzMyA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMzIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMxID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMjkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDI4ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAyNyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjYgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDI1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAyNCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjMgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDIyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyMSA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDE5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxOCA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wMTcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE2ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAxNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
MTQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXAxMiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTEgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDEwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4ID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXA3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXA1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0ID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXAwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCBmdG1wNyA9IGNvZGUubmV3
VG1wKEZQKTsKKyAgICBsZXQgZnRtcDYgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA1
ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNCA9IGNvZGUubmV3VG1wKEZQKTsKKyAg
ICBsZXQgZnRtcDMgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAyID0gY29kZS5uZXdU
bXAoRlApOworICAgIGxldCBmdG1wMSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDAg
PSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGluc3Q7CisgICAgbGV0IGFyZzsKKyAgICBiYjAu
c3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyLCBOb3JtYWwpKTsKKyAgICBi
YjAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxLCBOb3JtYWwpKTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDQ5
NzUxNjgwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUFkZHIoUmVnLnJicCwgMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9i
YmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnIxMSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5TY3JhdGNoLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgNDApOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oLTI4MTQ3NDk3Njcx
MDY1NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRy
dWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5v
dEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yYngsIDUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUltbSgyMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5w
YXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
OH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogOH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4
LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1t
KDQ0NDkzNTMyNjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDcsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIw
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUJpZ0ltbSg0NDQ5OTU5NDQwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q0LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ0OTk1OTQ0OCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MTEsIDApOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDMsIDApOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDQ5MzUyOTEyKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGlu
c3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q4
LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEs
IDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDUw
MDU2NDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVN0YWNrKHNsb3QxMCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQmlnSW1tKC0yODE0NzQ5NzY3MTA2NTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ0OTMwMTg4OCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NiwgMCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDI4MTQ3NDk3NjcxMDY1Nik7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90
OSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0
NDkzMjEzMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDIsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUJpZ0ltbSg0NDQ5OTc4MDY0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg4NjIpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBiYjEuc3VjY2Vzc29ycy5wdXNo
KG5ldyBGcmVxdWVudGVkQmxvY2soYmI0MSwgTm9ybWFsKSk7CisgICAgYmIxLnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMywgTm9ybWFsKSk7CisgICAgYmIxLnByZWRlY2Vz
c29ycy5wdXNoKGJiMCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDg4MSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjEuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcu
cmJ4LCAyMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMS5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3QzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMS5hcHBlbmQoaW5zdCk7CisgICAgYmIyLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJl
cXVlbnRlZEJsb2NrKGJiNDEsIE5vcm1hbCkpOworICAgIGJiMi5zdWNjZXNzb3JzLnB1c2gobmV3
IEZyZXF1ZW50ZWRCbG9jayhiYjMsIE5vcm1hbCkpOworICAgIGJiMi5wcmVkZWNlc3NvcnMucHVz
aChiYjApOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
QWRkcihSZWcucmJ4LCAyMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
Mi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3QzMik7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMi5hcHBlbmQoaW5zdCk7CisgICAgYmIzLnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiNSwgTm9ybWFsKSk7CisgICAgYmIzLnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiNCwgTm9ybWFsKSk7CisgICAgYmIzLnByZWRlY2Vz
c29ycy5wdXNoKGJiMSk7CisgICAgYmIzLnByZWRlY2Vzc29ycy5wdXNoKGJiNDApOworICAgIGJi
My5wcmVkZWNlc3NvcnMucHVzaChiYjM5KTsKKyAgICBiYjMucHJlZGVjZXNzb3JzLnB1c2goYmIy
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIo
UmVnLnJieCwgOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzLmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUFkZHIoUmVnLnJzaSwgLTExNDQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlUmVsQ29uZChFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMy5hcHBlbmQoaW5zdCk7CisgICAgYmI0LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJl
cXVlbnRlZEJsb2NrKGJiNiwgTm9ybWFsKSk7CisgICAgYmI0LnN1Y2Nlc3NvcnMucHVzaChuZXcg
RnJlcXVlbnRlZEJsb2NrKGJiNywgTm9ybWFsKSk7CisgICAgYmI0LnByZWRlY2Vzc29ycy5wdXNo
KGJiMyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlUmVsQ29uZChFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNC5h
cHBlbmQoaW5zdCk7CisgICAgYmI1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2Nr
KGJiNiwgTm9ybWFsKSk7CisgICAgYmI1LnByZWRlY2Vzc29ycy5wdXNoKGJiMyk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyMzIp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwg
MjU2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucmJ4LCAyNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNS5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFuZDMyKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBbmQzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUltbSgzMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI1
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyNDApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7
CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBiYjYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVx
dWVudGVkQmxvY2soYmI3LCBOb3JtYWwpKTsKKyAgICBiYjYucHJlZGVjZXNzb3JzLnB1c2goYmI0
KTsKKyAgICBiYjYucHJlZGVjZXNzb3JzLnB1c2goYmI1KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
QWRkMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTEpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChBZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yc2ksIC0x
MTQ0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiNi5hcHBlbmQoaW5zdCk7CisgICAgYmI3
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiOCwgTm9ybWFsKSk7CisgICAg
YmI3LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiOSwgTm9ybWFsKSk7Cisg
ICAgYmI3LnByZWRlY2Vzc29ycy5wdXNoKGJiNCk7CisgICAgYmI3LnByZWRlY2Vzc29ycy5wdXNo
KGJiNik7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yYngsIDI0MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI3
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVSZWxDb25kKEdyZWF0ZXJUaGFuKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBiYjguc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmI5LCBOb3JtYWwpKTsKKyAgICBiYjgucHJlZGVjZXNzb3JzLnB1c2go
YmI3KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJp
Z0ltbSg0NDQ5MzAxODg4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjgu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQmlnSW1tKDQ0NDkzMDE4ODgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZyg4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmco
MTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxB
cmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNo
SGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVn
cyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
KyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
cnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5y
MTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTMpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNyk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
eG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTIpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBiYjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQ
YXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05v
bkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjgu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjguYXBwZW5k
KGluc3QpOworICAgIGJiOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEy
LCBOb3JtYWwpKTsKKyAgICBiYjkuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2so
YmIxMCwgTm9ybWFsKSk7CisgICAgYmI5LnByZWRlY2Vzc29ycy5wdXNoKGJiNyk7CisgICAgYmI5
LnByZWRlY2Vzc29ycy5wdXNoKGJiOCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDMwNCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAxMjgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVBZGRyKFJlZy5yOCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlSW1tKDgwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGlu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjkuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucjgsIDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwg
LTgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNo
SGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVn
cyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBiYjkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmI5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yYXgsIFJlZy5yc2ksIDgsIDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMTApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmVDb25kaXRpb25hbGx5VGVzdDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29u
ZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlSW1tKC0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFy
bHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
ID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVxdWFsKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5y
Y3gsIDUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUlt
bSgyMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFy
bHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
ID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBi
YjkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQWRkcihSZWcucmN4LCAyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmI5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoNjQpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDgsIDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmI5LmFwcGVuZChpbnN0KTsKKyAgICBiYjEwLnN1Y2Nlc3Nv
cnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTEsIE5vcm1hbCkpOworICAgIGJiMTAuc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxMywgTm9ybWFsKSk7CisgICAgYmIx
MC5wcmVkZWNlc3NvcnMucHVzaChiYjkpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2g2NCk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NywgMCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBiYjExLnN1Y2Nl
c3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTQsIE5vcm1hbCkpOworICAgIGJiMTEu
cHJlZGVjZXNzb3JzLnB1c2goYmIxMCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDAsIDApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDM0NCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSg1MDIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMg
PSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjExLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIo
UmVnLnJkaSwgMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92ZU9yRXF1YWwpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5y
ZGksIDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFF
YXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KExvYWQ4KTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVnLnJzaSwgUmVnLnJheCwgMSwgMCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KEp1bXApOworICAgIGJiMTEuYXBwZW5kKGluc3QpOworICAgIGJiMTIuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNCwgTm9ybWFsKSk7CisgICAgYmIxMi5wcmVk
ZWNlc3NvcnMucHVzaChiYjkpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QwLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMTIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAzMzYpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCA0NTYpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRl
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg1MDIpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBiYjEyLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMTYpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQ
YXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVs
Q29uZChBYm92ZU9yRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZl
Y3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0
Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxMi5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KExvYWQ4KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
SW5kZXgoUmVnLnJzaSwgUmVnLnJheCwgMSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIxMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOwor
ICAgIGJiMTIuYXBwZW5kKGluc3QpOworICAgIGJiMTMucHJlZGVjZXNzb3JzLnB1c2goYmIxMCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIxMy5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE9vcHMpOworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGJiMTQu
c3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNSwgTm9ybWFsKSk7CisgICAg
YmIxNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE2LCBOb3JtYWwpKTsK
KyAgICBiYjE0LnByZWRlY2Vzc29ycy5wdXNoKGJiMTEpOworICAgIGJiMTQucHJlZGVjZXNzb3Jz
LnB1c2goYmIxMik7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZDMyKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoWmVyb0V4dGVuZDE2VG8zMik7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjE0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMTI4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTQuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChCcmFuY2hUZXN0MzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5v
blplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFk
ZHIoUmVnLnJieCwgMjE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVJbW0oMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0LmFwcGVu
ZChpbnN0KTsKKyAgICBiYjE1LnByZWRlY2Vzc29ycy5wdXNoKGJiMTQpOworICAgIGluc3QgPSBu
ZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE1LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoT29wcyk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7Cisg
ICAgYmIxNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE4LCBOb3JtYWwp
KTsKKyAgICBiYjE2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTcsIE5v
cm1hbCkpOworICAgIGJiMTYucHJlZGVjZXNzb3JzLnB1c2goYmIxNCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGlu
c3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAt
MTc1Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRy
KFJlZy5yZHgsIDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJvdmVPckVxdWFsKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcu
cmR4LCAyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
aW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoTG9hZDgpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucmF4LCBSZWcu
cmN4LCAxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjcyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0NDk5NTk0NDApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQ
YXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVs
Q29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQWRkcihSZWcucmF4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVJbW0oODApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDQ5OTU5NDQwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGlu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ0OTk1OTQ0OCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5y
YXgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92ZU9yRXF1YWwpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgsIC04
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05v
bkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGJiMTYuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW5kZXgo
UmVnLnJheCwgUmVnLnJjeCwgOCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVJbW0oMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlQ29uZGl0aW9uYWxs
eVRlc3Q2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxs
QXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgy
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJn
KDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0
NDk5NTk0NDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZyg4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDI0KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDMy
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05v
bkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yY3gpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcucmR4KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJzaSk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yZGkpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcucjkpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjEwKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0wKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVn
cy5hZGQoUmVnLnhtbTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1t
Mik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0zKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzLmFkZChSZWcueG1tNSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy54bW02KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTcpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW05KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTEwKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEx
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEyKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEzKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnhtbTE0KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTE1KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRj
aEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZHgsIC0xMDg4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjcyKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjgw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoUnNoaWZ0MzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJi
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNo
SGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVn
cyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVBZGRyKFJlZy5yZHgsIC0xMDg4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQWRkcihSZWcucmR4LCAtODgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmR4LCAtMTE3Nik7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAg
IGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE2LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTm90RXF1YWwpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJjeCwgMCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDgwKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmN4LCA4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
UGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJl
bENvbmQoQWJvdmVPckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAtOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7Cisg
ICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtd
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVn
LnJheCwgUmVnLnJkeCwgOCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVJbW0oMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlQ29uZGl0aW9uYWxseVRl
c3Q2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
Y3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0Vm
ZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
UmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQWRkcihSZWcucmF4LCA1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVJbW0oMjMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7Cisg
ICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtd
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA4fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA4fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlSW1tKDIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUNhbGxBcmcoMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDMyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJn
KDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxB
cmcoMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNh
bGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUNhbGxBcmcoMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0
LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mu
YWRkKFJlZy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTMp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncy5hZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
eG1tNyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcueG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTIp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzLmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyNzIpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyODApOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGlu
c3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KFJzaGlmdDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRk
cihSZWcucmJ4LCA4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUFkZHIoUmVnLnJzaSwgLTEwNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxv
dyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yc2ksIC0xMDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQWRkcihSZWcucnNpLCAtMTA3Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDY0KTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGJiMTcuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxOSwgTm9ybWFsKSk7CisgICAgYmIxNy5wcmVk
ZWNlc3NvcnMucHVzaChiYjE2KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQ29udmVydEludDMyVG9E
b3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChKdW1wKTsKKyAgICBiYjE3LmFwcGVuZChpbnN0KTsKKyAgICBiYjE4LnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTksIE5vcm1hbCkpOworICAgIGJiMTgucHJlZGVj
ZXNzb3JzLnB1c2goYmIxNik7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTY0VG9E
b3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChKdW1wKTsKKyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBiYjE5LnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjAsIE5vcm1hbCkpOworICAgIGJiMTkuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMiwgTm9ybWFsKSk7CisgICAgYmIxOS5w
cmVkZWNlc3NvcnMucHVzaChiYjE3KTsKKyAgICBiYjE5LnByZWRlY2Vzc29ycy5wdXNoKGJiMTgp
OworICAgIGluc3QgPSBuZXcgSW5zdChDb252ZXJ0SW50MzJUb0RvdWJsZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIxOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZERvdWJsZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIxOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmVEb3VibGVUbzY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE5LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSgyODE0NzQ5
NzY3MTA2NTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTkuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIx
OS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQWRkcihSZWcucnNpLCAtMTA3Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjE5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJzaSwgLTEwODApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
UmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOwor
ICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBb
XTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0
ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGJiMTkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2
NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIxOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucnNpLCAtMTA4MCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE5LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoQnJhbmNoVGVzdDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29u
ZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVBZGRyKFJlZy5yc2ksIC0xMTA0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVJbW0oMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE5
LmFwcGVuZChpbnN0KTsKKyAgICBiYjIwLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJs
b2NrKGJiMjEsIE5vcm1hbCkpOworICAgIGJiMjAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVu
dGVkQmxvY2soYmIzMiwgTm9ybWFsKSk7CisgICAgYmIyMC5wcmVkZWNlc3NvcnMucHVzaChiYjE5
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIo
UmVnLnJzaSwgLTEwOTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjAu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5z
dC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGJiMjAuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIy
MC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQWRkcihSZWcucnNpLCAtMTA5Nik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJzaSwgLTExMTIpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoR3JlYXRlclRoYW5PckVx
dWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMC5hcHBlbmQo
aW5zdCk7CisgICAgYmIyMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIz
LCBOb3JtYWwpKTsKKyAgICBiYjIxLnByZWRlY2Vzc29ycy5wdXNoKGJiMjApOworICAgIGluc3Qg
PSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAzNDQp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjEuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjEyLCAwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNTAyKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0
cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjEyLCAxNik7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMS5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnIx
MiwgMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMS5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93T3JFcXVhbCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDY1Mjg2KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9
IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyMzIpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyNTYpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMS5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGJiMjIuc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyMywgTm9ybWFsKSk7CisgICAgYmIy
Mi5wcmVkZWNlc3NvcnMucHVzaChiYjMwKTsKKyAgICBiYjIyLnByZWRlY2Vzc29ycy5wdXNoKGJi
MzEpOworICAgIGJiMjIucHJlZGVjZXNzb3JzLnB1c2goYmIyOSk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIyLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoSnVtcCk7CisgICAgYmIyMi5hcHBlbmQoaW5zdCk7CisgICAgYmIyMy5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI1LCBOb3JtYWwpKTsKKyAgICBiYjIzLnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjQsIE5vcm1hbCkpOworICAgIGJi
MjMucHJlZGVjZXNzb3JzLnB1c2goYmIyMSk7CisgICAgYmIyMy5wcmVkZWNlc3NvcnMucHVzaChi
YjIyKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05v
bkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJzaSwg
LTEwOTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KExvYWQ4KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucmRpLCA2NTI4NSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFz
Tm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJy
YW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvd09yRXF1YWwpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjkpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg2NTI4NSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBi
YjI0LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjYsIE5vcm1hbCkpOwor
ICAgIGJiMjQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMCwgTm9ybWFs
KSk7CisgICAgYmIyNC5wcmVkZWNlc3NvcnMucHVzaChiYjIzKTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoU3RvcmU4KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTMpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgNjUyODUp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChF
cXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUltbSgyNTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5z
dCk7CisgICAgYmIyNS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI2LCBO
b3JtYWwpKTsKKyAgICBiYjI1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJi
MzAsIE5vcm1hbCkpOworICAgIGJiMjUucHJlZGVjZXNzb3JzLnB1c2goYmIyMyk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChFcXVh
bCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUlt
bSgyNTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNS5hcHBlbmQoaW5zdCk7
CisgICAgYmIyNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI4LCBOb3Jt
YWwpKTsKKyAgICBiYjI2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjcs
IE5vcm1hbCkpOworICAgIGJiMjYucHJlZGVjZXNzb3JzLnB1c2goYmIyNCk7CisgICAgYmIyNi5w
cmVkZWNlc3NvcnMucHVzaChiYjI1KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTG9hZDgpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDY1Mjg2KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjI2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
QnJhbmNoMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93T3JFcXVhbCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDY1Mjg1
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjYuYXBwZW5kKGluc3QpOworICAg
IGJiMjcuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyOCwgTm9ybWFsKSk7
CisgICAgYmIyNy5wcmVkZWNlc3NvcnMucHVzaChiYjI2KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
U3RvcmU4KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgNjUyODUpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNy5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjcuYXBwZW5kKGluc3QpOworICAgIGJiMjguc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyOSwgTm9ybWFsKSk7CisgICAgYmIy
OC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMxLCBOb3JtYWwpKTsKKyAg
ICBiYjI4LnByZWRlY2Vzc29ycy5wdXNoKGJiMjYpOworICAgIGJiMjgucHJlZGVjZXNzb3JzLnB1
c2goYmIyNyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVBZGRyKFJlZy5yYngsIDI0OCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIyOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE9yMzIpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVJbW0oNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIy
OC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjI4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTMpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjQ4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChC
cmFuY2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIx
Myk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI4LmFwcGVuZChpbnN0KTsKKyAg
ICBiYjI5LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjIsIE5vcm1hbCkp
OworICAgIGJiMjkuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMiwgTm9y
bWFsKSk7CisgICAgYmIyOS5wcmVkZWNlc3NvcnMucHVzaChiYjI4KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoQW5kMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyOS5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KEFuZDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDMxKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjkuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIo
UmVnLnJieCwgMjQwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjkuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVJlbENvbmQoR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIyOS5hcHBlbmQoaW5zdCk7CisgICAgYmIzMC5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIyLCBOb3JtYWwpKTsKKyAgICBiYjMwLnN1Y2Nlc3Nv
cnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzIsIE5vcm1hbCkpOworICAgIGJiMzAucHJl
ZGVjZXNzb3JzLnB1c2goYmIyNCk7CisgICAgYmIzMC5wcmVkZWNlc3NvcnMucHVzaChiYjI1KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxD
b25kKEdyZWF0ZXJUaGFuT3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMzAuYXBwZW5kKGluc3QpOworICAgIGJiMzEuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIyMiwgTm9ybWFsKSk7CisgICAgYmIzMS5zdWNjZXNzb3JzLnB1c2go
bmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMyLCBOb3JtYWwpKTsKKyAgICBiYjMxLnByZWRlY2Vzc29y
cy5wdXNoKGJiMjgpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVJlbENvbmQoR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIzMS5hcHBlbmQoaW5zdCk7CisgICAgYmIzMi5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMzLCBOb3JtYWwpKTsKKyAgICBiYjMyLnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzQsIE5vcm1hbCkpOworICAgIGJi
MzIucHJlZGVjZXNzb3JzLnB1c2goYmIxOSk7CisgICAgYmIzMi5wcmVkZWNlc3NvcnMucHVzaChi
YjIwKTsKKyAgICBiYjMyLnByZWRlY2Vzc29ycy5wdXNoKGJiMzApOworICAgIGJiMzIucHJlZGVj
ZXNzb3JzLnB1c2goYmIzMSk7CisgICAgYmIzMi5wcmVkZWNlc3NvcnMucHVzaChiYjI5KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJz
aSwgLTExMjApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzIuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVJlbENvbmQoR3JlYXRlclRoYW4pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjMyLmFwcGVuZChpbnN0KTsKKyAgICBiYjMzLnByZWRlY2Vzc29ycy5wdXNoKGJiMzIpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4
dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjMzLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoT29wcyk7CisgICAgYmIzMy5hcHBlbmQoaW5zdCk7CisgICAgYmIz
NC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjM2LCBOb3JtYWwpKTsKKyAg
ICBiYjM0LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzUsIE5vcm1hbCkp
OworICAgIGJiMzQucHJlZGVjZXNzb3JzLnB1c2goYmIzMik7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDEzNik7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KEJyYW5jaDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3Qp
OworICAgIGJiMzUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzNywgTm9y
bWFsKSk7CisgICAgYmIzNS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjM4
LCBOb3JtYWwpKTsKKyAgICBiYjM1LnByZWRlY2Vzc29ycy5wdXNoKGJiMzQpOworICAgIGluc3Qg
PSBuZXcgSW5zdChDb252ZXJ0SW50MzJUb0RvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNS5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaERvdWJsZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM1LmFwcGVuZChpbnN0KTsKKyAgICBi
YjM2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzcsIE5vcm1hbCkpOwor
ICAgIGJiMzYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzOCwgTm9ybWFs
KSk7CisgICAgYmIzNi5wcmVkZWNlc3NvcnMucHVzaChiYjM0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzYuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChNb3ZlNjRUb0RvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNi5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaERvdWJsZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZURvdWJsZUNvbmQoRG91YmxlR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM2LmFwcGVuZChpbnN0KTsKKyAgICBiYjM3LnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzgsIE5vcm1hbCkpOworICAgIGJi
MzcucHJlZGVjZXNzb3JzLnB1c2goYmIzNSk7CisgICAgYmIzNy5wcmVkZWNlc3NvcnMucHVzaChi
YjM2KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJp
Z0ltbSg0NDQ5MzIxMzEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM3
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUJpZ0ltbSg0NDQ5MzIxMzEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjM3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMzcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxB
cmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2Fs
bEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
Q2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3Qu
cGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmN4KTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnJkeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy5yc2kpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmRpKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI4KTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnI5KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnIxMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMyk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW00KTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTUpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tNik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54
bW03KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTgpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOSk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW0xMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy54bW0xMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMik7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMyk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy54bW0xNSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiMzcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRj
aEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBiYjM3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIz
Ny5hcHBlbmQoaW5zdCk7CisgICAgYmIzOC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRC
bG9jayhiYjM5LCBOb3JtYWwpKTsKKyAgICBiYjM4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVl
bnRlZEJsb2NrKGJiNDAsIE5vcm1hbCkpOworICAgIGJiMzgucHJlZGVjZXNzb3JzLnB1c2goYmIz
NSk7CisgICAgYmIzOC5wcmVkZWNlc3NvcnMucHVzaChiYjM3KTsKKyAgICBiYjM4LnByZWRlY2Vz
c29ycy5wdXNoKGJiMzYpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4
LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0o
ODgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhh
c05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3Mg
PSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMzguYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRk
cihSZWcucmJ4LCA4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM4LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUFkZHIoUmVnLnJkeCwgLTE4MjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMzguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIzOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92
ZXJmbG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJ
bW0oMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgYmIzOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjM4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMzguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkeCwgLTE4MjQpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZHgsIC0xODMy
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM4LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxD
b25kKEdyZWF0ZXJUaGFuKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIzOC5hcHBlbmQoaW5zdCk7CisgICAgYmIzOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50
ZWRCbG9jayhiYjQyLCBOb3JtYWwpKTsKKyAgICBiYjM5LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJl
cXVlbnRlZEJsb2NrKGJiMywgTm9ybWFsKSk7CisgICAgYmIzOS5wcmVkZWNlc3NvcnMucHVzaChi
YjM4KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJp
Z0ltbSg0NDQ5MzIxMzEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM5
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUJpZ0ltbSg0NDQ5MzIxMzEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMzkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxB
cmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2Fs
bEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
Q2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3Qu
cGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmN4KTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnJkeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy5yc2kpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmRpKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI4KTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnI5KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnIxMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMyk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW00KTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTUpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tNik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54
bW03KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTgpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOSk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW0xMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy54bW0xMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMik7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMyk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy54bW0xNSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiMzkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRj
aEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBiYjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoT3IzMik7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMzkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2
NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyMjQpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ0OTk3ODA2
NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzOS5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0o
NDQ0OTk3ODA2NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzOS5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQ2FsbEFyZyg4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzkuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVJbW0oMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQ2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM5LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUJpZ0ltbSg0NDUwMDU2NDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMzkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmco
MTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxB
cmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNo
SGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVn
cyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
KyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
cnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5y
MTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTMpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNyk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
eG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTIpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBiYjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
UGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNO
b25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAg
IGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIz
OS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVBZGRyKFJlZy5yYngsIDIyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3Qz
Mik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzkuYXBwZW5kKGluc3QpOworICAgIGJiNDAuc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI0MiwgTm9ybWFsKSk7CisgICAgYmI0
MC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMsIE5vcm1hbCkpOworICAg
IGJiNDAucHJlZGVjZXNzb3JzLnB1c2goYmIzOCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDIyNCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmI0MC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KEJyYW5jaFRlc3QzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNDAuYXBwZW5kKGluc3Qp
OworICAgIGJiNDEucHJlZGVjZXNzb3JzLnB1c2goYmIxKTsKKyAgICBiYjQxLnByZWRlY2Vzc29y
cy5wdXNoKGJiMik7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVJbW0oMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNDEuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChSZXQ2NCk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNDEuYXBw
ZW5kKGluc3QpOworICAgIGJiNDIucHJlZGVjZXNzb3JzLnB1c2goYmI0MCk7CisgICAgYmI0Mi5w
cmVkZWNlc3NvcnMucHVzaChiYjM5KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUltbSgxMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmI0Mi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFJldDY0KTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmI0Mi5hcHBlbmQoaW5zdCk7CisgICAgcmV0dXJuIGNvZGU7Cit9CkluZGV4OiBQZXJmb3Jt
YW5jZVRlc3RzL0pTQWlyL3BheWxvYWQtaW1hZ2luZy1nYXVzc2lhbi1ibHVyLWdhdXNzaWFuQmx1
ci5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3BheWxvYWQtaW1hZ2lu
Zy1nYXVzc2lhbi1ibHVyLWdhdXNzaWFuQmx1ci5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvcGF5bG9hZC1pbWFnaW5nLWdhdXNzaWFuLWJsdXItZ2F1c3NpYW5CbHVy
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzA2NCBAQAorInVzZSBzdHJpY3QiOworLy8g
R2VuZXJhdGVkIGJ5IEFpcjo6ZHVtcEFzSlMgZnJvbSBnYXVzc2lhbkJsdXIjQTh2Y1lnIGluIEty
YWtlbi9pbWFnaW5nLWdhdXNzaWFuLWJsdXIKK2Z1bmN0aW9uIGNyZWF0ZVBheWxvYWRJbWFnaW5n
R2F1c3NpYW5CbHVyR2F1c3NpYW5CbHVyKCkKK3sKKyAgICBsZXQgY29kZSA9IG5ldyBDb2RlKCk7
CisgICAgbGV0IGJiMCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxID0gY29kZS5hZGRC
bG9jaygpOworICAgIGxldCBiYjIgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMyA9IGNv
ZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI0ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBi
YjUgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiNiA9IGNvZGUuYWRkQmxvY2soKTsKKyAg
ICBsZXQgYmI3ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjggPSBjb2RlLmFkZEJsb2Nr
KCk7CisgICAgbGV0IGJiOSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMCA9IGNvZGUu
YWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIx
MiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAg
ICBsZXQgYmIxNCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxNSA9IGNvZGUuYWRkQmxv
Y2soKTsKKyAgICBsZXQgYmIxNiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxNyA9IGNv
ZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxOCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQg
YmIxOSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyMCA9IGNvZGUuYWRkQmxvY2soKTsK
KyAgICBsZXQgYmIyMSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyMiA9IGNvZGUuYWRk
QmxvY2soKTsKKyAgICBsZXQgYmIyMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNCA9
IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBs
ZXQgYmIyNiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNyA9IGNvZGUuYWRkQmxvY2so
KTsKKyAgICBsZXQgYmIyOCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyOSA9IGNvZGUu
YWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIz
MSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMiA9IGNvZGUuYWRkQmxvY2soKTsKKyAg
ICBsZXQgYmIzMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzNCA9IGNvZGUuYWRkQmxv
Y2soKTsKKyAgICBsZXQgYmIzNSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzNiA9IGNv
ZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgc2xvdDAgPSBjb2RlLmFkZFN0YWNrU2xvdCg0MCwgTG9j
a2VkKTsKKyAgICBsZXQgc2xvdDEgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CisgICAg
bGV0IHNsb3QyID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworICAgIGxldCBzbG90MyA9
IGNvZGUuYWRkU3RhY2tTbG90KDQsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDQgPSBjb2RlLmFkZFN0
YWNrU2xvdCg4LCBTcGlsbCk7CisgICAgbGV0IHNsb3Q1ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwg
U3BpbGwpOworICAgIGxldCBzbG90NiA9IGNvZGUuYWRkU3RhY2tTbG90KDQwLCBMb2NrZWQpOwor
ICAgIGxldCB0bXAxNDEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE0MCA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTM5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAxMzggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzNyA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMTM2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMzUgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzNCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMTMzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMzIgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDEzMSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTMw
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjkgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDEyOCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTI3ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDEyNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTI0ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAxMjMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEyMiA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTIxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAxMjAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExOSA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wMTE4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMTcg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExNiA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wMTE1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMTQgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDExMyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
MTEyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMTEgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDExMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTA5ID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMDggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDEwNyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTA2ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXAxMDUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEwNCA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTAzID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXAxMDIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEwMSA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wMTAwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5
OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTggPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDk3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5NiA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wOTUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDk0
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5MyA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wOTIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDkxID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXA5MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODkg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDg4ID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXA4NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODYgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDg1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4NCA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDgyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4MSA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wODAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDc5ID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3OCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wNzcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDc2ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXA3NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzQgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDczID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXA3MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzEgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDcwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2OSA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNjggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDY3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2NiA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wNjUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDY0ID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2MyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wNjIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYxID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXA2MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTkgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDU4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXA1NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTYgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDU1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1NCA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDUyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1MSA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wNTAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ5ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXA0OCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
NDcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ2ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXA0NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDQgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDQzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0
MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDEgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDQwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzOSA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wMzggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM3
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzNiA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wMzUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM0ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXAzMyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzIg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMxID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXAzMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjkgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDI4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyNyA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDI1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyNCA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wMjMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDIyID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyMSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMjAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE5ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXAxOCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTcgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAxNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTQgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDEzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMiA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDEwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXA4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXA2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0ID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXAzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXAxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAwID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCBmdG1wNzQgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0
IGZ0bXA3MyA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDcyID0gY29kZS5uZXdUbXAo
RlApOworICAgIGxldCBmdG1wNzEgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA3MCA9
IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDY5ID0gY29kZS5uZXdUbXAoRlApOworICAg
IGxldCBmdG1wNjggPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA2NyA9IGNvZGUubmV3
VG1wKEZQKTsKKyAgICBsZXQgZnRtcDY2ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1w
NjUgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA2NCA9IGNvZGUubmV3VG1wKEZQKTsK
KyAgICBsZXQgZnRtcDYzID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNjIgPSBjb2Rl
Lm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA2MSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQg
ZnRtcDYwID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNTkgPSBjb2RlLm5ld1RtcChG
UCk7CisgICAgbGV0IGZ0bXA1OCA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDU3ID0g
Y29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNTYgPSBjb2RlLm5ld1RtcChGUCk7CisgICAg
bGV0IGZ0bXA1NSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDU0ID0gY29kZS5uZXdU
bXAoRlApOworICAgIGxldCBmdG1wNTMgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA1
MiA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDUxID0gY29kZS5uZXdUbXAoRlApOwor
ICAgIGxldCBmdG1wNTAgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA0OSA9IGNvZGUu
bmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDQ4ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBm
dG1wNDcgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA0NiA9IGNvZGUubmV3VG1wKEZQ
KTsKKyAgICBsZXQgZnRtcDQ1ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNDQgPSBj
b2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA0MyA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBs
ZXQgZnRtcDQyID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNDEgPSBjb2RlLm5ld1Rt
cChGUCk7CisgICAgbGV0IGZ0bXA0MCA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDM5
ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wMzggPSBjb2RlLm5ld1RtcChGUCk7Cisg
ICAgbGV0IGZ0bXAzNyA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDM2ID0gY29kZS5u
ZXdUbXAoRlApOworICAgIGxldCBmdG1wMzUgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0
bXAzNCA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDMzID0gY29kZS5uZXdUbXAoRlAp
OworICAgIGxldCBmdG1wMzIgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAzMSA9IGNv
ZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDMwID0gY29kZS5uZXdUbXAoRlApOworICAgIGxl
dCBmdG1wMjkgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAyOCA9IGNvZGUubmV3VG1w
KEZQKTsKKyAgICBsZXQgZnRtcDI3ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wMjYg
PSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAyNSA9IGNvZGUubmV3VG1wKEZQKTsKKyAg
ICBsZXQgZnRtcDI0ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wMjMgPSBjb2RlLm5l
d1RtcChGUCk7CisgICAgbGV0IGZ0bXAyMiA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRt
cDIxID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wMjAgPSBjb2RlLm5ld1RtcChGUCk7
CisgICAgbGV0IGZ0bXAxOSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDE4ID0gY29k
ZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wMTcgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0
IGZ0bXAxNiA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDE1ID0gY29kZS5uZXdUbXAo
RlApOworICAgIGxldCBmdG1wMTQgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAxMyA9
IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDEyID0gY29kZS5uZXdUbXAoRlApOworICAg
IGxldCBmdG1wMTEgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAxMCA9IGNvZGUubmV3
VG1wKEZQKTsKKyAgICBsZXQgZnRtcDkgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA4
ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNyA9IGNvZGUubmV3VG1wKEZQKTsKKyAg
ICBsZXQgZnRtcDYgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA1ID0gY29kZS5uZXdU
bXAoRlApOworICAgIGxldCBmdG1wNCA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDMg
PSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAyID0gY29kZS5uZXdUbXAoRlApOworICAg
IGxldCBmdG1wMSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDAgPSBjb2RlLm5ld1Rt
cChGUCk7CisgICAgbGV0IGluc3Q7CisgICAgbGV0IGFyZzsKKyAgICBiYjAuc3VjY2Vzc29ycy5w
dXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyLCBOb3JtYWwpKTsKKyAgICBiYjAuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxLCBSYXJlKSk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3NDI2MTQ4OCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYnAs
IDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJicCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0
cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncy5hZGQo
UmVnLnIxMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAg
IGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuU2NyYXRjaCwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3MjUwMjc1Mik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQzNzI1MDI3NjgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgs
IDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0o
NDM3MjUwMjc3Nik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUFkZHIoUmVnLnJheCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIw
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUJpZ0ltbSg0MzcyNTAyNzg0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQzNzI1MDI3OTIpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgsIDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3MjUwMjgwMCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwg
MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0
MzcyNTAyODA4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
QWRkcihSZWcucmF4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQmlnSW1tKDQzNzI1MDI4MTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3MjUwMjgyNCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSgtMjgxNDc0OTc2NzEwNjU2
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlNjRUb0RvdWJsZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2hEb3VibGUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVEb3VibGVDb25kKERvdWJsZUVxdWFsKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGJiMS5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIsIE5vcm1hbCkpOworICAgIGJiMS5w
cmVkZWNlc3NvcnMucHVzaChiYjApOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
MTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRy
dWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KENvbnZlcnRJbnQzMlRvRG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
MTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjEuYXBwZW5kKGluc3QpOworICAg
IGJiMi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjQsIE5vcm1hbCkpOwor
ICAgIGJiMi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMsIFJhcmUpKTsK
KyAgICBiYjIucHJlZGVjZXNzb3JzLnB1c2goYmIwKTsKKyAgICBiYjIucHJlZGVjZXNzb3JzLnB1
c2goYmIxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQmVsb3cpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1
LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBiYjIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxv
dyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9
IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVSZWxDb25kKEJlbG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hI
YXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdz
ID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyLmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTY0VG9Eb3VibGUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIyLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoRG91YmxlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZChEb3VibGVFcXVhbCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyLmFwcGVuZChpbnN0KTsKKyAgICBiYjMu
c3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI0LCBOb3JtYWwpKTsKKyAgICBi
YjMucHJlZGVjZXNzb3JzLnB1c2goYmIyKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQmVs
b3cpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMg
PSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChDb252ZXJ0SW50MzJUb0RvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzLmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIzLmFwcGVuZChpbnN0KTsK
KyAgICBiYjQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI2LCBOb3JtYWwp
KTsKKyAgICBiYjQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI1LCBSYXJl
KSk7CisgICAgYmI0LnByZWRlY2Vzc29ycy5wdXNoKGJiMik7CisgICAgYmI0LnByZWRlY2Vzc29y
cy5wdXNoKGJiMyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmU2NFRvRG91YmxlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5j
aERvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlRXF1YWwpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
MSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNC5hcHBlbmQoaW5zdCk7
CisgICAgYmI1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiNiwgTm9ybWFs
KSk7CisgICAgYmI1LnByZWRlY2Vzc29ycy5wdXNoKGJiNCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVS
ZWxDb25kKEJlbG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoQ29udmVydEludDMyVG9Eb3VibGUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
NS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiNS5hcHBl
bmQoaW5zdCk7CisgICAgYmI2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJi
OCwgTm9ybWFsKSk7CisgICAgYmI2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2Nr
KGJiNywgUmFyZSkpOworICAgIGJiNi5wcmVkZWNlc3NvcnMucHVzaChiYjQpOworICAgIGJiNi5w
cmVkZWNlc3NvcnMucHVzaChiYjUpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRy
dWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KEFkZDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmU2NFRvRG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
OCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaERvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZURvdWJsZUNvbmQoRG91YmxlRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7CisgICAgYmI3LnN1Y2Nlc3NvcnMucHVzaChuZXcg
RnJlcXVlbnRlZEJsb2NrKGJiOCwgTm9ybWFsKSk7CisgICAgYmI3LnByZWRlY2Vzc29ycy5wdXNo
KGJiNik7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwg
MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4
dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQ29udmVydEludDMy
VG9Eb3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KEp1bXApOworICAgIGJiNy5hcHBlbmQoaW5zdCk7CisgICAgYmI4LnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTAsIE5vcm1hbCkpOworICAgIGJiOC5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjksIFJhcmUpKTsKKyAgICBiYjgucHJlZGVj
ZXNzb3JzLnB1c2goYmI2KTsKKyAgICBiYjgucHJlZGVjZXNzb3JzLnB1c2goYmI3KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0MzQ3MDQ5
MzUyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJl
Zy5yOCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yOSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjguYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOC5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmU2NFRvRG91YmxlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW02KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaERvdWJsZSk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlRXF1YWwpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW02KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOC5hcHBlbmQoaW5zdCk7CisgICAgYmI5
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTAsIE5vcm1hbCkpOworICAg
IGJiOS5wcmVkZWNlc3NvcnMucHVzaChiYjgpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChC
ZWxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yOSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMg
PSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChDb252ZXJ0SW50MzJUb0RvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjkuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjkuYXBwZW5kKGluc3QpOwor
ICAgIGJiMTAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxOCwgTm9ybWFs
KSk7CisgICAgYmIxMC5wcmVkZWNlc3NvcnMucHVzaChiYjgpOworICAgIGJiMTAucHJlZGVjZXNz
b3JzLnB1c2goYmI5KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUJpZ0ltbSg0Mzc0NDYyMTY4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMy
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjksIC04KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQzNzQ0NjIxMjgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmRpLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oODApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0Mzc0NDYyMTI4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlD
bG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIx
MC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVCaWdJbW0oNDM3NDQ2MjEzNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIxMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QyLCAwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIC04KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNs
b3QzLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlWmVyb1RvRG91YmxlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW03KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTAu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlSW1tKDEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVTdGFjayhzbG90NCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEw
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUJpZ0ltbSgtMjgxNDc0OTc2NzEwNjU0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7
CisgICAgYmIxMC5hcHBlbmQoaW5zdCk7CisgICAgYmIxMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZy
ZXF1ZW50ZWRCbG9jayhiYjEzLCBOb3JtYWwpKTsKKyAgICBiYjExLnByZWRlY2Vzc29ycy5wdXNo
KGJiMzUpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlSW1tKDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjExLmFwcGVuZChpbnN0
KTsKKyAgICBiYjEyLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTMsIE5v
cm1hbCkpOworICAgIGJiMTIucHJlZGVjZXNzb3JzLnB1c2goYmIzNCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEyLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIxMi5hcHBlbmQoaW5zdCk7CisgICAgYmIxMy5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE1LCBOb3JtYWwpKTsKKyAgICBiYjEz
LnByZWRlY2Vzc29ycy5wdXNoKGJiMTEpOworICAgIGJiMTMucHJlZGVjZXNzb3JzLnB1c2goYmIx
Mik7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0o
LTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTMuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlRG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW03KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMy5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmVEb3VibGUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTcpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjEzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNyk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlRG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW03KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KEp1bXApOworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGJiMTQuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNSwgTm9ybWFsKSk7CisgICAgYmIxNC5w
cmVkZWNlc3NvcnMucHVzaChiYjMxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMTQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsK
KyAgICBiYjE0LmFwcGVuZChpbnN0KTsKKyAgICBiYjE1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJl
cXVlbnRlZEJsb2NrKGJiMjgsIE5vcm1hbCkpOworICAgIGJiMTUuc3VjY2Vzc29ycy5wdXNoKG5l
dyBGcmVxdWVudGVkQmxvY2soYmIxNiwgTm9ybWFsKSk7CisgICAgYmIxNS5wcmVkZWNlc3NvcnMu
cHVzaChiYjEzKTsKKyAgICBiYjE1LnByZWRlY2Vzc29ycy5wdXNoKGJiMTQpOworICAgIGluc3Qg
PSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0
LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
WkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7Cisg
ICAgYmIxNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgwKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAgIGJiMTYuc3VjY2Vzc29ycy5wdXNo
KG5ldyBGcmVxdWVudGVkQmxvY2soYmIyOSwgTm9ybWFsKSk7CisgICAgYmIxNi5zdWNjZXNzb3Jz
LnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE3LCBOb3JtYWwpKTsKKyAgICBiYjE2LnByZWRl
Y2Vzc29ycy5wdXNoKGJiMTUpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDI2Nyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBiYjE3LnN1Y2Nl
c3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTgsIE5vcm1hbCkpOworICAgIGJiMTcu
cHJlZGVjZXNzb3JzLnB1c2goYmIxNik7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIxNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMTcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAg
ICBiYjE3LmFwcGVuZChpbnN0KTsKKyAgICBiYjE4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVl
bnRlZEJsb2NrKGJiMjAsIE5vcm1hbCkpOworICAgIGJiMTguc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIxOSwgUmFyZSkpOworICAgIGJiMTgucHJlZGVjZXNzb3JzLnB1c2go
YmIxMCk7CisgICAgYmIxOC5wcmVkZWNlc3NvcnMucHVzaChiYjE3KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFy
bHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
ID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5aRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxh
dGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2Us
IHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNDAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy54bW0zKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
aW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2Us
IHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoQnJhbmNoVGVzdDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChO
b25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxOC5hcHBl
bmQoaW5zdCk7CisgICAgYmIxOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhi
YjIwLCBOb3JtYWwpKTsKKyAgICBiYjE5LnByZWRlY2Vzc29ycy5wdXNoKGJiMTgpOworICAgIGlu
c3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0
LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE5LmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIxOS5hcHBlbmQoaW5zdCk7CisgICAgYmIy
MC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIyLCBOb3JtYWwpKTsKKyAg
ICBiYjIwLnByZWRlY2Vzc29ycy5wdXNoKGJiMTgpOworICAgIGJiMjAucHJlZGVjZXNzb3JzLnB1
c2goYmIxOSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIw
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUnNoaWZ0MzIpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVJbW0oMzEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFhvcjMyKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0
Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENv
bmQoTGVzc1RoYW4pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVJbW0oMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0Vm
ZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVS
ZWxDb25kKEFib3ZlT3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QzLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0
LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjIwLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Qy
LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIwLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4
KFJlZy5yc2ksIFJlZy5yZGksIDgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlSW1tKDEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZUNvbmRpdGlvbmFs
bHlUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTEpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJk
aSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNr
KHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0
LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0
fSk7CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5v
dEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yZGksIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUltbSg3OSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5y
ZGksIDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yMTIsIC04KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIw
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIyMC5hcHBl
bmQoaW5zdCk7CisgICAgYmIyMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhi
YjIyLCBOb3JtYWwpKTsKKyAgICBiYjIxLnByZWRlY2Vzc29ycy5wdXNoKGJiMjcpOworICAgIGlu
c3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
Y3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMS5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGJi
MjIuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyNSwgTm9ybWFsKSk7Cisg
ICAgYmIyMi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIzLCBOb3JtYWwp
KTsKKyAgICBiYjIyLnByZWRlY2Vzc29ycy5wdXNoKGJiMjApOworICAgIGJiMjIucHJlZGVjZXNz
b3JzLnB1c2goYmIyMSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVT
dGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9
IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIy
Mi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMjIuYXBwZW5kKGluc3QpOworICAgIGJiMjMuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIyNiwgTm9ybWFsKSk7CisgICAgYmIyMy5zdWNjZXNzb3JzLnB1c2go
bmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI0LCBOb3JtYWwpKTsKKyAgICBiYjIzLnByZWRlY2Vzc29y
cy5wdXNoKGJiMjIpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVJlbENvbmQoR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDQwMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBiYjI0LnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjcsIE5vcm1hbCkpOworICAgIGJiMjQucHJlZGVj
ZXNzb3JzLnB1c2goYmIyMyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIx
MSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
MTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxh
dGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBiYjI0LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNr
KHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAg
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29s
ZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGJiMjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQzMik7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSgzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFi
b3ZlT3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
NSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFz
Tm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGJiMjQuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92ZU9yRXF1YWwpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFj
ayhzbG90MSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAg
IGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZURvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnIxNSwgOCwg
MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0wKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjQuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFJzaGlmdDMyKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlSW1tKDMxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI0LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkMzIpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChYb3IzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKExlc3NU
aGFuKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
SW1tKDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0
YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTAp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJv
dmVPckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yMTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
NSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0
LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZURvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yMTIsIFJlZy5y
YngsIDgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI0LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTXVsRG91YmxlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkRG91YmxlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoQWRkMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNdWxEb3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucjksIFJlZy5y
c2ksIDgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjQu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGREb3VibGUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQzMik7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE11bERv
dWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnIxNSwgOCwgMCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW00KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZERvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE11bERvdWJsZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnIxNCwgOCwgMCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW00KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTQpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KEFkZERvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
NSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW00KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjQuYXBwZW5kKGluc3Qp
OworICAgIGJiMjUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyNywgTm9y
bWFsKSk7CisgICAgYmIyNS5wcmVkZWNlc3NvcnMucHVzaChiYjIyKTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoSnVtcCk7CisgICAgYmIyNS5hcHBlbmQoaW5zdCk7CisgICAgYmIyNi5zdWNjZXNzb3Jz
LnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI3LCBOb3JtYWwpKTsKKyAgICBiYjI2LnByZWRl
Y2Vzc29ycy5wdXNoKGJiMjMpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjI2
LmFwcGVuZChpbnN0KTsKKyAgICBiYjI3LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJs
b2NrKGJiMjEsIE5vcm1hbCkpOworICAgIGJiMjcuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVu
dGVkQmxvY2soYmIzMCwgTm9ybWFsKSk7CisgICAgYmIyNy5wcmVkZWNlc3NvcnMucHVzaChiYjI0
KTsKKyAgICBiYjI3LnByZWRlY2Vzc29ycy5wdXNoKGJiMjYpOworICAgIGJiMjcucHJlZGVjZXNz
b3JzLnB1c2goYmIyNSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJz
aSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2so
c2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDEsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVl
OworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEg
PSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29s
ZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGJiMjcuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVJlbENvbmQoTGVzc1RoYW4pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVJbW0oNyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjI3LmFwcGVuZChpbnN0KTsKKyAgICBiYjI4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRl
ZEJsb2NrKGJiMzEsIE5vcm1hbCkpOworICAgIGJiMjgucHJlZGVjZXNzb3JzLnB1c2goYmIxNSk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjguYXBwZW5kKGluc3QpOworICAg
IGJiMjkuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMSwgTm9ybWFsKSk7
CisgICAgYmIyOS5wcmVkZWNlc3NvcnMucHVzaChiYjE2KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
SnVtcCk7CisgICAgYmIyOS5hcHBlbmQoaW5zdCk7CisgICAgYmIzMC5zdWNjZXNzb3JzLnB1c2go
bmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMxLCBOb3JtYWwpKTsKKyAgICBiYjMwLnByZWRlY2Vzc29y
cy5wdXNoKGJiMjcpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDEsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMzAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjMw
LmFwcGVuZChpbnN0KTsKKyAgICBiYjMxLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJs
b2NrKGJiMTQsIE5vcm1hbCkpOworICAgIGJiMzEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVu
dGVkQmxvY2soYmIzMiwgTm9ybWFsKSk7CisgICAgYmIzMS5wcmVkZWNlc3NvcnMucHVzaChiYjMw
KTsKKyAgICBiYjMxLnByZWRlY2Vzc29ycy5wdXNoKGJiMjkpOworICAgIGJiMzEucHJlZGVjZXNz
b3JzLnB1c2goYmIyOCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjMxLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJz
aSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2so
c2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAg
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2VaRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0
eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CisgICAgYmIzMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg3KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzEuYXBwZW5kKGluc3QpOworICAgIGJi
MzIuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzNCwgTm9ybWFsKSk7Cisg
ICAgYmIzMi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMzLCBSYXJlKSk7
CisgICAgYmIzMi5wcmVkZWNlc3NvcnMucHVzaChiYjMxKTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
UGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJl
c0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVJbW0oNDAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZl
Y3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0
Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0
eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KEJyYW5jaFRlc3QzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9u
WmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzIuYXBwZW5k
KGluc3QpOworICAgIGJiMzMuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIz
NCwgTm9ybWFsKSk7CisgICAgYmIzMy5wcmVkZWNlc3NvcnMucHVzaChiYjMyKTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
MSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIzMy5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMzMuYXBwZW5k
KGluc3QpOworICAgIGJiMzQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIx
MiwgTm9ybWFsKSk7CisgICAgYmIzNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9j
ayhiYjM1LCBOb3JtYWwpKTsKKyAgICBiYjM0LnByZWRlY2Vzc29ycy5wdXNoKGJiMzIpOworICAg
IGJiMzQucHJlZGVjZXNzb3JzLnB1c2goYmIzMyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNo
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25k
KE92ZXJmbG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBiYjM0LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0zKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFF
YXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
TGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0
ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
RGl2RG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW02KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0zKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5w
YXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
RG91YmxlQ29uZChEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwg
MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4
dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
RlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGJiMzQuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlRG91YmxlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucjksIFJlZy5yc2ksIDgsIDApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVj
dHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChEaXZEb3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTYpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoQWRkMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGlu
c3QgPSBuZXcgSW5zdChBZGQzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgzKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3Qu
cGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFib3Zl
T3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1
ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRh
ID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVEb3VibGVDb25kKERvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsK
KyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0g
W107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjM0LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlSW5kZXgoUmVnLnI5LCBSZWcucmRpLCA4LCAwKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChB
ZGQzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KERpdkRvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNik7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlRG91YmxlQ29uZChEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0zKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFj
ayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0
cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQ
LCB3aWR0aDogNjR9KTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZURvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVnLnI5LCBS
ZWcucnNpLCA4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChEaXZEb3VibGUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlTm90
RXF1YWxPclVub3JkZXJlZCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0
cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
NSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW5kZXgo
UmVnLnI5LCBSZWcucmF4LCA4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNr
KHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5w
YXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4pOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNDAw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAg
IGJiMzUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxMSwgTm9ybWFsKSk7
CisgICAgYmIzNS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjM2LCBOb3Jt
YWwpKTsKKyAgICBiYjM1LnByZWRlY2Vzc29ycy5wdXNoKGJiMzQpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGJiMzUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4pOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMjY3
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzUuYXBwZW5kKGluc3QpOworICAg
IGJiMzYucHJlZGVjZXNzb3JzLnB1c2goYmIzNSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3NDQ2MjE2MCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIzNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFJldDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIzNi5hcHBlbmQoaW5zdCk7CisgICAgcmV0dXJuIGNvZGU7
Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3BheWxvYWQtanNhaXItQUNMajhDLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcGF5bG9hZC1qc2Fpci1BQ0xq
OEMuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3BheWxvYWQtanNh
aXItQUNMajhDLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTY5NiBAQAorInVzZSBzdHJp
Y3QiOworLy8gR2VuZXJhdGVkIGJ5IEFpcjo6ZHVtcEFzSlMgZnJvbSAjQUNMajhDIGluIEpTQWly
CitmdW5jdGlvbiBjcmVhdGVQYXlsb2FkSlNBaXJBQ0xqOEMoKQoreworICAgIGxldCBjb2RlID0g
bmV3IENvZGUoKTsKKyAgICBsZXQgYmIwID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjEg
PSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBs
ZXQgYmIzID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjQgPSBjb2RlLmFkZEJsb2NrKCk7
CisgICAgbGV0IGJiNSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI2ID0gY29kZS5hZGRC
bG9jaygpOworICAgIGxldCBiYjcgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiOCA9IGNv
ZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI5ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBi
YjEwID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjExID0gY29kZS5hZGRCbG9jaygpOwor
ICAgIGxldCBiYjEyID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjEzID0gY29kZS5hZGRC
bG9jaygpOworICAgIGxldCBiYjE0ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjE1ID0g
Y29kZS5hZGRCbG9jaygpOworICAgIGxldCBzbG90MCA9IGNvZGUuYWRkU3RhY2tTbG90KDE2MCwg
TG9ja2VkKTsKKyAgICBsZXQgc2xvdDEgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7Cisg
ICAgbGV0IHNsb3QyID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworICAgIGxldCBzbG90
MyA9IGNvZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDQgPSBjb2RlLmFk
ZFN0YWNrU2xvdCg0MCwgTG9ja2VkKTsKKyAgICBsZXQgdG1wNjEgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDYwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1OSA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDU3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1NiA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wNTUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDU0ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXA1MyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
NTIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDUxID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXA1MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDkgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDQ4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0
NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDYgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDQ1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0NCA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wNDMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQy
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0MSA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wNDAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM5ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXAzOCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzcg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM2ID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXAzNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzQgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDMzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzMiA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDMwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyOSA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wMjggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDI3ID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyNiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMjUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDI0ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXAyMyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjIgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDIxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAyMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTkgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDE4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNyA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDE1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNCA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMTMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEyID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMTAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDkgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDcgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDUg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDIgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDAgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IGluc3Q7CisgICAgbGV0IGFyZzsKKyAgICBiYjAuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxLCBOb3JtYWwpKTsKKyAgICBiYjAuc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNSwgTm9ybWFsKSk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM0Njk5NzM5
Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRy
KFJlZy5yYnAsIDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJicCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAg
IGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVk
UmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5y
MTEpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuU2NyYXRjaCwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYnAsIDcyKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJwLCA2NCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgNTYp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5y
YnAsIDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJ
bW0oLTI4MTQ3NDk3NjcxMDY1NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
MTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJwLCAyNCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMTYp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oLTI4
MTQ3NDk3NjcxMDY1Nik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMg
PSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUVh
cmx5Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy5yMTEpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkxhdGVVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuTGF0ZVVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0
cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJjeCwgMzIpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yY3gsIDQwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZl
Y3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0
Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQmlnSW1tKDQzNDY5MTY1OTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5v
dEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsK
KyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0g
W107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjgsIDUpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyMSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3Qu
cGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8p
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGlu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yMTIsIDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgzNjQpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3Qu
cGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjEyLCA4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAtNDApOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5l
eHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVy
byk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQzNDY5
MTA0MDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOwor
ICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBb
XTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDAsIDcyKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDAsIDY0KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDAsIDU2
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xv
dDAsIDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFj
ayhzbG90MCwgNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVl
OworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xv
YmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy5yMTEpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuTGF0ZVVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAg
IGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoWG9yNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJ
bW0oNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgt
Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2so
c2xvdDIsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgt
Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yOSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9
IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNs
b3QzLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
Y3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoVGVzdDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVz
Q29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIw
LmFwcGVuZChpbnN0KTsKKyAgICBiYjEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxv
Y2soYmIzLCBOb3JtYWwpKTsKKyAgICBiYjEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVk
QmxvY2soYmIyLCBOb3JtYWwpKTsKKyAgICBiYjEucHJlZGVjZXNzb3JzLnB1c2goYmIwKTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTm90RXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnI4LCAwKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNDUyKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0
cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIxLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVn
LnI4LCAxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxLmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJp
Z0ltbSg0MzQ3MzEzMTkyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQWRkcihSZWcucmN4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2g2NCk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgOCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIxLmFwcGVuZChpbnN0KTsKKyAgICBiYjIucHJlZGVjZXNzb3Jz
LnB1c2goYmIxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRy
dWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBiYjIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChPb3BzKTsKKyAg
ICBiYjIuYXBwZW5kKGluc3QpOworICAgIGJiMy5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50
ZWRCbG9jayhiYjQsIE5vcm1hbCkpOworICAgIGJiMy5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1
ZW50ZWRCbG9jayhiYjcsIE5vcm1hbCkpOworICAgIGJiMy5wcmVkZWNlc3NvcnMucHVzaChiYjEp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucjgsIDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjMuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCA1KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMjMpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIx
Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGlu
c3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9i
YmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGJiMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM0Njc3ODg2NCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJh
bmNoNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEVxdWFsKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDI0KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjMuYXBwZW5kKGluc3QpOworICAgIGJi
NC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjUsIE5vcm1hbCkpOworICAg
IGJiNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjYsIE5vcm1hbCkpOwor
ICAgIGJiNC5wcmVkZWNlc3NvcnMucHVzaChiYjMpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QwLCAwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDE2KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAzMik7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90
MSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5z
dC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhz
bG90MCwgMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVT
dGFjayhzbG90MCwgMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI0LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVTdGFjayhzbG90MCwgMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI0
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVTdGFjayhzbG90MCwgOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQmlnSW1tKDQzNDcyMTgwNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM0NzIxODY3Mik7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDIpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMTYpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDI0KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQ
YXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUNhbGxBcmcoMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUNhbGxBcmcoMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRy
YUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChS
ZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnJkaSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTMpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tNyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54
bW04KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcueG1tMTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRh
ID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5E
ZWYsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmI0LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0g
dHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdE
YXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChYb3I2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg2KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKC0yKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
UmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2hUZXN0NjQpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGJiNS5zdWNjZXNzb3Jz
LnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjgsIE5vcm1hbCkpOworICAgIGJiNS5wcmVkZWNl
c3NvcnMucHVzaChiYjQpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuTGF0ZVVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJi
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNO
b25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAg
IGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVBZGRyKFJlZy5yY3gsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSg0MDYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0MzQ2OTA2MTc2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
MzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDMyKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNo
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQ2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFy
bHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
ID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5y
MTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmN4KTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy5yc2kpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
cmRpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI4KTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI5KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncy5hZGQoUmVnLnIxMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5y
MTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnhtbTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcueG1tMyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW00KTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTUpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mu
YWRkKFJlZy54bW03KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTgp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOSk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy54bW0xMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy54bW0xMik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMyk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBb
XTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjUuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7Cisg
ICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtd
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlSW1tKDEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjUuYXBw
ZW5kKGluc3QpOworICAgIGJiNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhi
YjgsIE5vcm1hbCkpOworICAgIGJiNi5wcmVkZWNlc3NvcnMucHVzaChiYjQpOworICAgIGluc3Qg
PSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEwKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChKdW1wKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAgIGJiNy5zdWNjZXNzb3Jz
LnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEyLCBOb3JtYWwpKTsKKyAgICBiYjcuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI5LCBOb3JtYWwpKTsKKyAgICBiYjcucHJl
ZGVjZXNzb3JzLnB1c2goYmIzKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVJbW0oNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlSW1tKDEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVDYWxsQXJnKDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
Ny5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUNhbGxBcmcoNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQ2FsbEFyZyg1Nik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmco
MTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxB
cmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNh
bGxBcmcoMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUNhbGxBcmcoNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUNhbGxBcmcoNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUNhbGxBcmcoNTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjEx
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJk
aSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjEx
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnhtbTMpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcueG1tNyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
eG1tMTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoVGVz
dDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBiYjguc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxMywgTm9ybWFsKSk7CisgICAgYmI4
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTAsIE5vcm1hbCkpOworICAg
IGJiOC5wcmVkZWNlc3NvcnMucHVzaChiYjYpOworICAgIGJiOC5wcmVkZWNlc3NvcnMucHVzaChi
YjUpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjguYXBwZW5kKGluc3QpOworICAgIGJiOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1
ZW50ZWRCbG9jayhiYjExLCBOb3JtYWwpKTsKKyAgICBiYjkucHJlZGVjZXNzb3JzLnB1c2goYmI3
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmI5LmFwcGVuZChpbnN0KTsKKyAg
ICBiYjEwLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTEsIE5vcm1hbCkp
OworICAgIGJiMTAucHJlZGVjZXNzb3JzLnB1c2goYmI4KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
SnVtcCk7CisgICAgYmIxMC5hcHBlbmQoaW5zdCk7CisgICAgYmIxMS5wcmVkZWNlc3NvcnMucHVz
aChiYjkpOworICAgIGJiMTEucHJlZGVjZXNzb3JzLnB1c2goYmIxMCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVSZWxDb25kKEJlbG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgsIDUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5z
dC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA4fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA4fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5z
dC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiMTEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChPb3BzKTsKKyAgICBiYjExLmFwcGVuZChpbnN0KTsKKyAgICBiYjEyLnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTQsIE5vcm1hbCkpOworICAgIGJiMTIucHJlZGVj
ZXNzb3JzLnB1c2goYmI3KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIxMi5h
cHBlbmQoaW5zdCk7CisgICAgYmIxMy5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9j
ayhiYjE0LCBOb3JtYWwpKTsKKyAgICBiYjEzLnByZWRlY2Vzc29ycy5wdXNoKGJiOCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGJiMTQu
cHJlZGVjZXNzb3JzLnB1c2goYmIxMik7CisgICAgYmIxNC5wcmVkZWNlc3NvcnMucHVzaChiYjEz
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQW5kNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJ
bW0oLTkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTQuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3Rz
ID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hB
cmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMTQuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1t
KDEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUmV0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0LmFwcGVuZChpbnN0
KTsKKyAgICBiYjE1LnByZWRlY2Vzc29ycy5wdXNoKGJiMCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMTApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChS
ZXQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAgIHJldHVybiBjb2RlOworfQpJ
bmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9wYXlsb2FkLXR5cGVzY3JpcHQtc2NhbklkZW50
aWZpZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9wYXlsb2FkLXR5
cGVzY3JpcHQtc2NhbklkZW50aWZpZXIuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRl
c3RzL0pTQWlyL3BheWxvYWQtdHlwZXNjcmlwdC1zY2FuSWRlbnRpZmllci5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE4NDcgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8vIEdlbmVyYXRlZCBieSBB
aXI6OmR1bXBBc0pTIGZyb20gc2NhbklkZW50aWZpZXIjRVBjRlFlIGluIE9jdGFuZS90eXBlc2Ny
aXB0CitmdW5jdGlvbiBjcmVhdGVQYXlsb2FkVHlwZXNjcmlwdFNjYW5JZGVudGlmaWVyKCkKK3sK
KyAgICBsZXQgY29kZSA9IG5ldyBDb2RlKCk7CisgICAgbGV0IGJiMCA9IGNvZGUuYWRkQmxvY2so
KTsKKyAgICBsZXQgYmIxID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjIgPSBjb2RlLmFk
ZEJsb2NrKCk7CisgICAgbGV0IGJiMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI0ID0g
Y29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjUgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0
IGJiNiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI3ID0gY29kZS5hZGRCbG9jaygpOwor
ICAgIGxldCBiYjggPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiOSA9IGNvZGUuYWRkQmxv
Y2soKTsKKyAgICBsZXQgYmIxMCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMSA9IGNv
ZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQg
YmIxMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxNCA9IGNvZGUuYWRkQmxvY2soKTsK
KyAgICBsZXQgYmIxNSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxNiA9IGNvZGUuYWRk
QmxvY2soKTsKKyAgICBsZXQgYmIxNyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxOCA9
IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxOSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBs
ZXQgYmIyMCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyMSA9IGNvZGUuYWRkQmxvY2so
KTsKKyAgICBsZXQgYmIyMiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyMyA9IGNvZGUu
YWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIy
NSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNiA9IGNvZGUuYWRkQmxvY2soKTsKKyAg
ICBsZXQgYmIyNyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyOCA9IGNvZGUuYWRkQmxv
Y2soKTsKKyAgICBsZXQgYmIyOSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMCA9IGNv
ZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQg
YmIzMiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMyA9IGNvZGUuYWRkQmxvY2soKTsK
KyAgICBsZXQgYmIzNCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgc2xvdDAgPSBjb2RlLmFk
ZFN0YWNrU2xvdCg1NiwgTG9ja2VkKTsKKyAgICBsZXQgc2xvdDEgPSBjb2RlLmFkZFN0YWNrU2xv
dCg4LCBTcGlsbCk7CisgICAgbGV0IHNsb3QyID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwp
OworICAgIGxldCBzbG90MyA9IGNvZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBsZXQg
c2xvdDQgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CisgICAgbGV0IHNsb3Q1ID0gY29k
ZS5hZGRTdGFja1Nsb3QoNCwgU3BpbGwpOworICAgIGxldCBzbG90NiA9IGNvZGUuYWRkU3RhY2tT
bG90KDgsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDcgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGls
bCk7CisgICAgbGV0IHNsb3Q4ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworICAgIGxl
dCBzbG90OSA9IGNvZGUuYWRkU3RhY2tTbG90KDQwLCBMb2NrZWQpOworICAgIGxldCB0bXA5OCA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDk2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5NSA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wOTQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDkzID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wOTEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDkwID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXA4OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODggPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDg3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXA4NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODUgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDg0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4MyA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDgxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4MCA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wNzkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDc4ID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wNzYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDc1ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXA3NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzMgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDcyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXA3MSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzAgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDY5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2OCA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNjcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDY2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2NSA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wNjQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYzID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXA2MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
NjEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYwID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXA1OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTggPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDU3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1
NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTUgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDU0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1MyA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wNTIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDUx
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wNDkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ4ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXA0NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDYg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ1ID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXA0NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDMgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDQyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0MSA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDM5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzOCA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wMzcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM2ID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMzQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMzID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXAzMiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzEgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAyOSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjggPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDI3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyNiA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDI0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyMyA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMjIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDIxID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMTkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE4ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAxNyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTYgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAxNCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTMgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDEyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMSA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDggPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IGluc3Q7CisgICAgbGV0
IGFyZzsKKyAgICBiYjAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI1LCBO
b3JtYWwpKTsKKyAgICBiYjAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI0
LCBOb3JtYWwpKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUJpZ0ltbSg0NTc5MjUxOTM2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5T
Y3JhdGNoLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJi
cCwgNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJ
bW0oLTI4MTQ3NDk3NjcxMDY1NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0
cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogOH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogOH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTm90RXF1YWwpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDI1NDApOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJi
eCwgNzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KENvbXBhcmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVJlbENvbmQoRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVJbW0oOTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ1NTY5MTM5ODQpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNo
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25k
KE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVBZGRyKFJlZy5yY3gsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUltbSg4MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQmlnSW1tKDQ1NTY5MTM5ODQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAg
IGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBiYjAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmln
SW1tKDQ1NTY5MTM5OTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVBZGRyKFJlZy5yY3gsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnIxMiwgLTgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJv
dmVPckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRy
YUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yMTIsIFJlZy5yYXgs
IDgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0o
MTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmVDb25kaXRpb25hbGx5VGVzdDY0KTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKC0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTMpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoWG9yNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNik7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDIsIDApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0
Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0Nv
bmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5z
dC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xv
dDEsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0
NTMxOTA5MzYwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3Q0LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVCaWdJbW0oNDUxMDI2Njk2MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUJpZ0ltbSgtMjgxNDc0OTc2NzEwNjU2KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5j
aFRlc3Q2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgYmIx
LnByZWRlY2Vzc29ycy5wdXNoKGJiNik7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0g
dHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdE
YXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE9vcHMpOworICAgIGJiMS5hcHBlbmQoaW5zdCk7CisgICAgYmIyLnByZWRlY2Vzc29y
cy5wdXNoKGJiMjMpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAg
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBiYjIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChPb3Bz
KTsKKyAgICBiYjIuYXBwZW5kKGluc3QpOworICAgIGJiMy5wcmVkZWNlc3NvcnMucHVzaChiYjMy
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFF
YXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgYmIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoT29wcyk7CisgICAgYmIz
LmFwcGVuZChpbnN0KTsKKyAgICBiYjQucHJlZGVjZXNzb3JzLnB1c2goYmIwKTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVh
cmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVn
cyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoT29wcyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBiYjUuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI4LCBOb3JtYWwpKTsKKyAgICBiYjUuc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI2LCBSYXJlKSk7CisgICAgYmI1LnBy
ZWRlY2Vzc29ycy5wdXNoKGJiMCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDU2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCA4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAtMjQpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yMTAsIDE2KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGlu
c3QgPSBuZXcgSW5zdChCcmFuY2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25k
KE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjUuYXBw
ZW5kKGluc3QpOworICAgIGJiNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhi
YjEsIFJhcmUpKTsKKyAgICBiYjYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2so
YmI3LCBOb3JtYWwpKTsKKyAgICBiYjYucHJlZGVjZXNzb3JzLnB1c2goYmI1KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgMzYp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI2LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90
OCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
MTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI2LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0
YWNrKHNsb3Q3LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDYsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI2LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmJwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjYu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0w
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05v
bkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yY3gpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnJkaSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMik7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0zKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNSk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW02KTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTcpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tOCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54
bW05KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEwKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTExKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnhtbTEyKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTEzKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTE0
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTE1KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuRGVmLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xv
dDgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFj
ayhzbG90NywgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
U3RhY2soc2xvdDYsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVCaWdJbW0oNDUzMTkwOTM2MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmI2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoVGVzdDY0KTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yY3gsIDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAgIGJiNy5zdWNjZXNzb3Jz
LnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjExLCBOb3JtYWwpKTsKKyAgICBiYjcucHJlZGVj
ZXNzb3JzLnB1c2goYmI2KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAg
YmI3LmFwcGVuZChpbnN0KTsKKyAgICBiYjguc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVk
QmxvY2soYmIxMSwgTm9ybWFsKSk7CisgICAgYmI4LnByZWRlY2Vzc29ycy5wdXNoKGJiNSk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5y
YXgsIDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiOC5hcHBlbmQoaW5zdCk7Cisg
ICAgYmI5LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTEsIE5vcm1hbCkp
OworICAgIGJiOS5wcmVkZWNlc3NvcnMucHVzaChiYjE1KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjkpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KEp1bXApOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgYmIxMC5zdWNjZXNzb3JzLnB1c2go
bmV3IEZyZXF1ZW50ZWRCbG9jayhiYjExLCBOb3JtYWwpKTsKKyAgICBiYjEwLnByZWRlY2Vzc29y
cy5wdXNoKGJiMTgpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yOSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIx
MC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMTAuYXBw
ZW5kKGluc3QpOworICAgIGJiMTEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2so
YmIxMiwgTm9ybWFsKSk7CisgICAgYmIxMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRC
bG9jayhiYjE2LCBOb3JtYWwpKTsKKyAgICBiYjExLnByZWRlY2Vzc29ycy5wdXNoKGJiNyk7Cisg
ICAgYmIxMS5wcmVkZWNlc3NvcnMucHVzaChiYjEwKTsKKyAgICBiYjExLnByZWRlY2Vzc29ycy5w
dXNoKGJiOSk7CisgICAgYmIxMS5wcmVkZWNlc3NvcnMucHVzaChiYjgpOworICAgIGluc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjkpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDQwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjExLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZm
ZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjExLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjExKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
MTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIo
UmVnLnJieCwgNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMS5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yYngsIDMyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEx
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMTEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3Rh
Y2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0
LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxMS5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjExLmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MTEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5kKGluc3QpOworICAgIGJiMTIuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxMywgTm9ybWFsKSk7CisgICAgYmIxMi5z
dWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE0LCBOb3JtYWwpKTsKKyAgICBi
YjEyLnByZWRlY2Vzc29ycy5wdXNoKGJiMTEpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChB
Ym92ZU9yRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVBZGRyKFJlZy5yMTAsIDEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0
cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMTIuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRk
cihSZWcucjEwLCAxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMi5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3QzMik7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAxNik7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIxMi5hcHBlbmQoaW5zdCk7CisgICAgYmIxMy5zdWNjZXNzb3JzLnB1c2go
bmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE1LCBOb3JtYWwpKTsKKyAgICBiYjEzLnByZWRlY2Vzc29y
cy5wdXNoKGJiMTIpOworICAgIGluc3QgPSBuZXcgSW5zdChMb2FkOCk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnJkeCwgMSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIxMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1
bXApOworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGJiMTQuc3VjY2Vzc29ycy5wdXNoKG5l
dyBGcmVxdWVudGVkQmxvY2soYmIxNSwgTm9ybWFsKSk7CisgICAgYmIxNC5wcmVkZWNlc3NvcnMu
cHVzaChiYjEyKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTG9hZDE2KTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlSW5kZXgoUmVnLnI5LCBSZWcucmR4LCAyLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjE0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVt
cCk7CisgICAgYmIxNC5hcHBlbmQoaW5zdCk7CisgICAgYmIxNS5zdWNjZXNzb3JzLnB1c2gobmV3
IEZyZXF1ZW50ZWRCbG9jayhiYjksIE5vcm1hbCkpOworICAgIGJiMTUuc3VjY2Vzc29ycy5wdXNo
KG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNywgTm9ybWFsKSk7CisgICAgYmIxNS5wcmVkZWNlc3Nv
cnMucHVzaChiYjE0KTsKKyAgICBiYjE1LnByZWRlY2Vzc29ycy5wdXNoKGJiMTMpOworICAgIGlu
c3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
c2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE1LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTUuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUFkZHIoUmVnLnJieCwgNzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIxNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVh
bCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
aW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucjEyLCBSZWcucmF4LCA4LCAwKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE1LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZUNvbmRpdGlvbmFsbHlUZXN0NjQpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVJbW0oLTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFhv
cjY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDYpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKC0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjE1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQo
Tm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5l
eHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMTUuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChCcmFuY2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXND
b25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE1
LmFwcGVuZChpbnN0KTsKKyAgICBiYjE2LnByZWRlY2Vzc29ycy5wdXNoKGJiMTEpOworICAgIGlu
c3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAg
ICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoT29wcyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgYmIxNy5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE4LCBOb3JtYWwpKTsKKyAgICBiYjE3
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTksIE5vcm1hbCkpOworICAg
IGJiMTcucHJlZGVjZXNzb3JzLnB1c2goYmIxNSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5j
aDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChHcmVhdGVyVGhhbk9yRXF1YWwpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNDgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNy5hcHBlbmQoaW5zdCk7CisgICAg
YmIxOC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEwLCBOb3JtYWwpKTsK
KyAgICBiYjE4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTksIE5vcm1h
bCkpOworICAgIGJiMTgucHJlZGVjZXNzb3JzLnB1c2goYmIxNyk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbk9yRXF1
YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJ
bW0oNTcpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxOC5hcHBlbmQoaW5zdCk7
CisgICAgYmIxOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIwLCBOb3Jt
YWwpKTsKKyAgICBiYjE5LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjEs
IE5vcm1hbCkpOworICAgIGJiMTkucHJlZGVjZXNzb3JzLnB1c2goYmIxNyk7CisgICAgYmIxOS5w
cmVkZWNlc3NvcnMucHVzaChiYjE4KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEdyZWF0ZXJUaGFuT3JFcXVhbCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxMjgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxOS5hcHBlbmQoaW5zdCk7CisgICAgYmIyMC5w
cmVkZWNlc3NvcnMucHVzaChiYjE5KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90
NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05v
bkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE9vcHMpOworICAgIGJiMjAuYXBwZW5kKGluc3QpOworICAgIGJiMjEuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyMiwgTm9ybWFsKSk7CisgICAgYmIyMS5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIzLCBOb3JtYWwpKTsKKyAgICBiYjIx
LnByZWRlY2Vzc29ycy5wdXNoKGJiMTkpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNs
b3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBiYjIxLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDkyKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGJiMjIucHJlZGVjZXNzb3Jz
LnB1c2goYmIyMSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3Rz
ID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hB
cmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGJiMjIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChPb3Bz
KTsKKyAgICBiYjIyLmFwcGVuZChpbnN0KTsKKyAgICBiYjIzLnN1Y2Nlc3NvcnMucHVzaChuZXcg
RnJlcXVlbnRlZEJsb2NrKGJiMiwgUmFyZSkpOworICAgIGJiMjMuc3VjY2Vzc29ycy5wdXNoKG5l
dyBGcmVxdWVudGVkQmxvY2soYmIyNCwgTm9ybWFsKSk7CisgICAgYmIyMy5wcmVkZWNlc3NvcnMu
cHVzaChiYjIxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUFkZHIoUmVnLnJieCwgNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQmlnSW1tKDQ1NTY5NDM2MTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMy
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDMyKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoNDApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBh
dGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQ2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQ2FsbEFyZyg0MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4
dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy5yMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmN4KTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkeCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy5yc2kpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcucmRpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI4KTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI5KTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnIxMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy5yMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMCk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xKTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tMyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW00
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTUpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy54bW03KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnhtbTgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOSk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mu
YWRkKFJlZy54bW0xMik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0x
Myk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkRlZiwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
YmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVj
dHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQmlnSW1tKDQ1NTY5NjMzMzYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgLTEzMzYpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1
ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRh
ID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyMy5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVBZGRyKFJlZy5yMTMsIDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgMzYpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDUxMDIwNDkxMik7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDMsIDApOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJicCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMg
PSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy5yY3gpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mu
YWRkKFJlZy54bW0zKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTQp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNSk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW02KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncy5hZGQoUmVnLnhtbTcpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
eG1tOCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW05KTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEwKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnhtbTExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTEyKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEz
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTE0KTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTE1KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkRlZiwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuRGVmLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDUz
MTkwOTM2MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3Q2NCk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmN4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgYmIyNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZy
ZXF1ZW50ZWRCbG9jayhiYjI1LCBOb3JtYWwpKTsKKyAgICBiYjI0LnN1Y2Nlc3NvcnMucHVzaChu
ZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjYsIE5vcm1hbCkpOworICAgIGJiMjQucHJlZGVjZXNzb3Jz
LnB1c2goYmIyMyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0
cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMjQuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChCcmFuY2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5v
blplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI0LmFwcGVu
ZChpbnN0KTsKKyAgICBiYjI1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJi
MjcsIE5vcm1hbCkpOworICAgIGJiMjUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxv
Y2soYmIyNiwgTm9ybWFsKSk7CisgICAgYmIyNS5wcmVkZWNlc3NvcnMucHVzaChiYjI0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI1LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoQW5kNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTkp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjUuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2g2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENv
bmQoRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVJbW0oMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI1LmFwcGVuZChp
bnN0KTsKKyAgICBiYjI2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjks
IE5vcm1hbCkpOworICAgIGJiMjYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2so
YmIyOCwgTm9ybWFsKSk7CisgICAgYmIyNi5wcmVkZWNlc3NvcnMucHVzaChiYjI0KTsKKyAgICBi
YjI2LnByZWRlY2Vzc29ycy5wdXNoKGJiMjUpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2hU
ZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI2LmFwcGVuZChpbnN0KTsKKyAgICBiYjI3
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzAsIE5vcm1hbCkpOworICAg
IGJiMjcucHJlZGVjZXNzb3JzLnB1c2goYmIyNSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIyNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOwor
ICAgIGJiMjcuYXBwZW5kKGluc3QpOworICAgIGJiMjguc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVx
dWVudGVkQmxvY2soYmIzMiwgTm9ybWFsKSk7CisgICAgYmIyOC5wcmVkZWNlc3NvcnMucHVzaChi
YjI2KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIyOC5hcHBlbmQoaW5zdCk7
CisgICAgYmIyOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMwLCBOb3Jt
YWwpKTsKKyAgICBiYjI5LnByZWRlY2Vzc29ycy5wdXNoKGJiMjYpOworICAgIGluc3QgPSBuZXcg
SW5zdChKdW1wKTsKKyAgICBiYjI5LmFwcGVuZChpbnN0KTsKKyAgICBiYjMwLnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzQsIE5vcm1hbCkpOworICAgIGJiMzAuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMSwgTm9ybWFsKSk7CisgICAgYmIzMC5w
cmVkZWNlc3NvcnMucHVzaChiYjI5KTsKKyAgICBiYjMwLnByZWRlY2Vzc29ycy5wdXNoKGJiMjcp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBbmQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUlt
bSgtOSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
UmVsQ29uZChFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzAuYXBw
ZW5kKGluc3QpOworICAgIGJiMzEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2so
YmIzMiwgTm9ybWFsKSk7CisgICAgYmIzMS5wcmVkZWNlc3NvcnMucHVzaChiYjMwKTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIzMS5hcHBlbmQoaW5zdCk7CisgICAgYmIzMi5z
dWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMsIFJhcmUpKTsKKyAgICBiYjMy
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzMsIE5vcm1hbCkpOworICAg
IGJiMzIucHJlZGVjZXNzb3JzLnB1c2goYmIyOCk7CisgICAgYmIzMi5wcmVkZWNlc3NvcnMucHVz
aChiYjMxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlSW1tKDMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUFkZHIoUmVnLnJicCwgMzYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzMi5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVCaWdJbW0oNDU1NjkxMzY4MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJicCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNo
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0o
NDUxMDIwNDkxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy5yY3gpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucnNpKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTApOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnhtbTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcueG1tMik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0zKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTQpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mu
YWRkKFJlZy54bW02KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTcp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW05KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncy5hZGQoUmVnLnhtbTEwKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnhtbTExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEyKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEzKTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTE0KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVn
cy5hZGQoUmVnLnhtbTE1KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5EZWYsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuRGVmLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDUzMTkwOTM2MCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KEJyYW5jaFRlc3Q2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9u
WmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRk
cihSZWcucmN4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVJbW0oLTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzMi5hcHBlbmQo
aW5zdCk7CisgICAgYmIzMy5wcmVkZWNlc3NvcnMucHVzaChiYjMyKTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0
LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgYmIzMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFJldDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIzMy5hcHBlbmQoaW5zdCk7CisgICAgYmIzNC5wcmVkZWNl
c3NvcnMucHVzaChiYjMwKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUJpZ0ltbSg0NTU1NzU3MzQ0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDQwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxs
QXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNh
bGxBcmcoMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUNhbGxBcmcoMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUNhbGxBcmcoNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjEx
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJk
aSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjEx
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnhtbTMpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcueG1tNyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
eG1tMTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMzQuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsK
KyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0g
W107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjM0LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUmV0NjQpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM0LmFwcGVu
ZChpbnN0KTsKKyAgICByZXR1cm4gY29kZTsKK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNB
aXIvcmVnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcmVnLmpzCShy
ZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMzMgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgUmVnIGV4dGVuZHMgVG1wQmFzZSB7Cisg
ICAgY29uc3RydWN0b3IoaW5kZXgsIHR5cGUsIG5hbWUsIGlzQ2FsbGVlU2F2ZSkKKyAgICB7Cisg
ICAgICAgIHN1cGVyKCk7CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRo
aXMuX3R5cGUgPSB0eXBlOworICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKKyAgICAgICAgdGhp
cy5faXNDYWxsZWVTYXZlID0gISFpc0NhbGxlZVNhdmU7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBmcm9tUmVnKHJlZykKKyAgICB7CisgICAgICAgIHJldHVybiByZWc7CisgICAgfQorICAgIAor
ICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9CisgICAgZ2V0IHR5cGUoKSB7
IHJldHVybiB0aGlzLl90eXBlOyB9CisgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1l
OyB9CisgICAgZ2V0IGlzQ2FsbGVlU2F2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzQ2FsbGVlU2F2ZTsg
fQorICAgIAorICAgIGdldCBpc1JlZygpIHsgcmV0dXJuIHRydWU7IH0KKyAgICAKKyAgICB0b1N0
cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gIiUiICsgdGhpcy5fbmFtZTsKKyAgICB9Cisg
ICAgCisgICAgc3RhdGljIGV4dHJhY3QoYXJnKQorICAgIHsKKyAgICAgICAgaWYgKGFyZy5pc1Jl
ZykKKyAgICAgICAgICAgIHJldHVybiBhcmcucmVnOworICAgICAgICByZXR1cm4gbnVsbDsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykKKyAgICB7CisgICAg
ICAgIHJldHVybiBhcmcuZm9yRWFjaFRtcEZhc3QodG1wID0+IHsKKyAgICAgICAgICAgIGlmICgh
dG1wLmlzUmVnKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBm
dW5jKHRtcCk7CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaChh
cmcsIGFyZ1JvbGUsIGFyZ1R5cGUsIGFyZ1dpZHRoLCBmdW5jKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFyZy5mb3JFYWNoVG1wKAorICAgICAgICAgICAgYXJnUm9sZSwgYXJnVHlwZSwgYXJnV2lk
dGgsCisgICAgICAgICAgICAodG1wLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAg
ICAgICAgIGlmICghdG1wLmlzUmVnKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZ1bmModG1wLCByb2xlLCB0eXBlLCB3aWR0aCk7CisgICAgICAg
ICAgICB9KTsKKyAgICB9Cit9CisKK3sKKyAgICBSZWcucmVncyA9IFtdOworICAgIGZ1bmN0aW9u
IG5ld1JlZyguLi5hcmdzKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBSZWcoLi4u
YXJncyk7CisgICAgICAgIFJlZy5yZWdzLnB1c2gocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CisKKyAgICAvLyBEZWZpbmUgWDg2XzY0IEdQUnMKKyAgICB7CisgICAgICAg
IGxldCBpbmRleCA9IDA7CisgICAgICAgIGZ1bmN0aW9uIG5ld0dQUihuYW1lLCBpc0NhbGxlZVNh
dmUpIHsgcmV0dXJuIG5ld1JlZyhpbmRleCsrLCBHUCwgbmFtZSwgaXNDYWxsZWVTYXZlKTsgfQor
ICAgICAgICAKKyAgICAgICAgUmVnLnJheCA9IG5ld0dQUigicmF4Iik7CisgICAgICAgIFJlZy5y
Y3ggPSBuZXdHUFIoInJjeCIpOworICAgICAgICBSZWcucmR4ID0gbmV3R1BSKCJyZHgiKTsKKyAg
ICAgICAgUmVnLnJieCA9IG5ld0dQUigicmJ4IiwgdHJ1ZSk7CisgICAgICAgIFJlZy5yc3AgPSBu
ZXdHUFIoInJzcCIpOworICAgICAgICBSZWcucmJwID0gbmV3R1BSKCJyYnAiLCB0cnVlKTsKKyAg
ICAgICAgUmVnLnJzaSA9IG5ld0dQUigicnNpIik7CisgICAgICAgIFJlZy5yZGkgPSBuZXdHUFIo
InJkaSIpOworICAgICAgICBmb3IgKGxldCBpID0gODsgaSA8PSAxNTsgKytpKQorICAgICAgICAg
ICAgUmVnWyJyIiArIGldID0gbmV3R1BSKCJyIiArIGksIGkgPj0gMTIpOworICAgIH0KKworICAg
IC8vIERlZmluZSBYODZfNjQgRlBScy4KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAxNTsgKytp
KQorICAgICAgICBSZWdbInhtbSIgKyBpXSA9IG5ld1JlZyhpLCBGUCwgInhtbSIgKyBpKTsKKwor
ICAgIFJlZy5ncHJzID0gW10KKyAgICBSZWcuZnBycyA9IFtdCisgICAgUmVnLmNhbGxlZVNhdmVH
UFJzID0gW10KKyAgICBSZWcuY2FsbGVlU2F2ZUZQUnMgPSBbXQorICAgIFJlZy5jYWxsZWVTYXZl
cyA9IFtdCisgICAgZm9yIChsZXQgcmVnIG9mIFJlZy5yZWdzKSB7CisgICAgICAgIGlmIChyZWcu
aXNHUCkgeworICAgICAgICAgICAgUmVnLmdwcnMucHVzaChyZWcpOworICAgICAgICAgICAgaWYg
KHJlZy5pc0NhbGxlZVNhdmUpCisgICAgICAgICAgICAgICAgUmVnLmNhbGxlZVNhdmVHUFJzLnB1
c2gocmVnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFJlZy5mcHJzLnB1c2gocmVn
KTsKKyAgICAgICAgICAgIGlmIChyZWcuaXNDYWxsZWVTYXZlKQorICAgICAgICAgICAgICAgIFJl
Zy5jYWxsZWVTYXZlRlBSUy5wdXNoKHJlZyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZy5p
c0NhbGxlZVNhdmUpCisgICAgICAgICAgICBSZWcuY2FsbGVlU2F2ZXMucHVzaChyZWcpOworICAg
IH0KKyAgICAKKyAgICBSZWcuY2FsbEZyYW1lUmVnaXN0ZXIgPSBSZWcucmJwOworICAgIFJlZy5z
dGFja1BvaW50ZXJSZWdpc3RlciA9IFJlZy5yc3A7Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3Rz
L0pTQWlyL3N0YWNrX3Nsb3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fp
ci9zdGFja19zbG90LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9z
dGFja19zbG90LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTcgQEAKKyJ1c2Ugc3RyaWN0
IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3Mg
U3RhY2tTbG90IHsKKyAgICBjb25zdHJ1Y3RvcihpbmRleCwgYnl0ZVNpemUsIGtpbmQpCisgICAg
eworICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OworICAgICAgICB0aGlzLl9ieXRlU2l6ZSA9
IGJ5dGVTaXplOworICAgICAgICB0aGlzLl9raW5kID0ga2luZDsKKyAgICB9CisgICAgCisgICAg
Z2V0IGJ5dGVTaXplKCkgeyByZXR1cm4gdGhpcy5fYnl0ZVNpemU7IH0KKyAgICBnZXQga2luZCgp
IHsgcmV0dXJuIHRoaXMuX2tpbmQ7IH0KKyAgICAKKyAgICBnZXQgaXNMb2NrZWQoKSB7IHJldHVy
biB0aGlzLl9raW5kID09IExvY2tlZDsgfQorICAgIGdldCBpc1NwaWxsKCkgeyByZXR1cm4gdGhp
cy5fa2luZCA9PSBTcGlsbDsgfQorICAgIAorICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMu
X2luZGV4OyB9CisKKyAgICBlbnN1cmVTaXplKHNpemUpCisgICAgeworICAgICAgICBpZiAodGhp
cy5fb2Zmc2V0RnJvbUZQKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTdGFjayBzbG90
IGFscmVhZHkgYWxsb2NhdGVkIik7CisgICAgICAgIHRoaXMuX2J5dGVTaXplID0gTWF0aC5tYXgo
dGhpcy5fYnl0ZVNpemUsIHNpemUpOworICAgIH0KKyAgICAKKyAgICBnZXQgYWxpZ25tZW50KCkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9ieXRlU2l6ZSA8PSAxKQorICAgICAgICAgICAgcmV0
dXJuIDE7CisgICAgICAgIGlmICh0aGlzLl9ieXRlU2l6ZSA8PSAyKQorICAgICAgICAgICAgcmV0
dXJuIDI7CisgICAgICAgIGlmICh0aGlzLl9ieXRlU2l6ZSA8PSA0KQorICAgICAgICAgICAgcmV0
dXJuIDQ7CisgICAgICAgIHJldHVybiA4OworICAgIH0KKyAgICAKKyAgICBnZXQgb2Zmc2V0RnJv
bUZQKCkgeyByZXR1cm4gdGhpcy5fb2Zmc2V0RnJvbUZQOyB9CisgICAgCisgICAgc2V0T2Zmc2V0
RnJvbUZQKHZhbHVlKSB7IHRoaXMuX29mZnNldEZyb21GUCA9IHZhbHVlOyB9CisgICAgCisgICAg
dG9TdHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICIiICsgKHRoaXMuaXNTcGlsbCA/ICJz
cGlsbCIgOiAic3RhY2siKSArIHRoaXMuX2luZGV4ICsgIjwiICsgdGhpcy5fYnl0ZVNpemUgKwor
ICAgICAgICAgICAgKHRoaXMuX29mZnNldEZyb21GUCA/ICIsIG9mZnNldCA9ICIgKyB0aGlzLl9v
ZmZzZXRGcm9tRlAgOiAiIikgKyAiPiI7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBleHRyYWN0
KGFyZykKKyAgICB7CisgICAgICAgIGlmIChhcmcuaXNTdGFjaykKKyAgICAgICAgICAgIHJldHVy
biBhcmcuc3RhY2tTbG90OworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAg
c3RhdGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlz
U3RhY2spCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBsZXQgcmVwbGFj
ZW1lbnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoYXJnLnN0YWNrU2xvdCkpCisg
ICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVN0YWNrKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZz
ZXQpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaChhcmcsIHJvbGUsIHR5cGUsIHdp
ZHRoLCBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKCFhcmcuaXNTdGFjaykKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgCisgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyhhcmcuc3RhY2tTbG90LCByb2xlLCB0eXBlLCB3aWR0aCkpCisg
ICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVN0YWNrKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZz
ZXQpOworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9scy5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHJldmlzaW9u
IDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw4MiBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisvLyBUaGlzIGZpbGUgaXMgZm9yIG1pc2Mgc3ltYm9scy4K
KworLy8gQjMgdHlwZXMKK2NvbnN0IFZvaWQgPSBTeW1ib2woIlZvaWQiKTsKK2NvbnN0IEludDMy
ID0gU3ltYm9sKCJJbnQzMiIpOworY29uc3QgSW50NjQgPSBTeW1ib2woIkludDY0Iik7Citjb25z
dCBGbG9hdCA9IFN5bWJvbCgiRmxvYXQiKTsKK2NvbnN0IERvdWJsZSA9IFN5bWJvbCgiRG91Ymxl
Iik7CisKKy8vIEFyZyB0eXBlCitjb25zdCBHUCA9IFN5bWJvbCgiR1AiKTsKK2NvbnN0IEZQID0g
U3ltYm9sKCJGUCIpOworCisvLyBTdGFjayBzbG90IGtpbmQKK2NvbnN0IExvY2tlZCA9IFN5bWJv
bCgiTG9ja2VkIik7Citjb25zdCBTcGlsbCA9IFN5bWJvbCgiU3BpbGwiKTsKKworLy8gRnJlcXVl
bmN5IGNsYXNzCitjb25zdCBOb3JtYWwgPSBTeW1ib2woIk5vcm1hbCIpOworY29uc3QgUmFyZSA9
IFN5bWJvbCgiUmFyZSIpOworCisvLyBSZWxhdGlvbmFsIGNvbmRpdGlvbnMKK2NvbnN0IEVxdWFs
ID0gU3ltYm9sKCJFcXVhbCIpOworY29uc3QgTm90RXF1YWwgPSBTeW1ib2woIk5vdEVxdWFsIik7
Citjb25zdCBBYm92ZSA9IFN5bWJvbCgiQWJvdmUiKTsKK2NvbnN0IEFib3ZlT3JFcXVhbCA9IFN5
bWJvbCgiQWJvdmVPckVxdWFsIik7Citjb25zdCBCZWxvdyA9IFN5bWJvbCgiQmVsb3ciKTsKK2Nv
bnN0IEJlbG93T3JFcXVhbCA9IFN5bWJvbCgiQmVsb3dPckVxdWFsIik7Citjb25zdCBHcmVhdGVy
VGhhbiA9IFN5bWJvbCgiR3JlYXRlclRoYW4iKTsKK2NvbnN0IEdyZWF0ZXJUaGFuT3JFcXVhbCA9
IFN5bWJvbCgiR3JlYXRlclRoYW5PckVxdWFsIik7Citjb25zdCBMZXNzVGhhbiA9IFN5bWJvbCgi
TGVzc1RoYW4iKTsKK2NvbnN0IExlc3NUaGFuT3JFcXVhbCA9IFN5bWJvbCgiTGVzc1RoYW5PckVx
dWFsIik7CisKKy8vIFJlc3VsdCBjb25kaXRpb25zCitjb25zdCBPdmVyZmxvdyA9IFN5bWJvbCgi
T3ZlcmZsb3ciKTsKK2NvbnN0IFNpZ25lZCA9IFN5bWJvbCgiU2lnbmVkIik7Citjb25zdCBQb3Np
dGl2ZU9yWmVybyA9IFN5bWJvbCgiUG9zaXRpdmVPclplcm8iKTsKK2NvbnN0IFplcm8gPSBTeW1i
b2woIlplcm8iKTsKK2NvbnN0IE5vblplcm8gPSBTeW1ib2woIk5vblplcm8iKTsKKworLy8gRG91
YmxlIGNvbmRpdGlvbnMKK2NvbnN0IERvdWJsZUVxdWFsID0gU3ltYm9sKCJEb3VibGVFcXVhbCIp
OworY29uc3QgRG91YmxlTm90RXF1YWwgPSBTeW1ib2woIkRvdWJsZU5vdEVxdWFsIik7Citjb25z
dCBEb3VibGVHcmVhdGVyVGhhbiA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRoYW4iKTsKK2NvbnN0
IERvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbCA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRoYW5PckVx
dWFsIik7Citjb25zdCBEb3VibGVMZXNzVGhhbiA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW4iKTsK
K2NvbnN0IERvdWJsZUxlc3NUaGFuT3JFcXVhbCA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW5PckVx
dWFsIik7Citjb25zdCBEb3VibGVFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVFcXVh
bE9yVW5vcmRlcmVkIik7Citjb25zdCBEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9s
KCJEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkIik7Citjb25zdCBEb3VibGVHcmVhdGVyVGhhbk9y
VW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhhbk9yVW5vcmRlcmVkIik7Citjb25z
dCBEb3VibGVHcmVhdGVyVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlR3Jl
YXRlclRoYW5PckVxdWFsT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZUxlc3NUaGFuT3JVbm9y
ZGVyZWQgPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJs
ZUxlc3NUaGFuT3JFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9yRXF1
YWxPclVub3JkZXJlZCIpOworCisvLyBEZWZpbmUgcG9pbnRlclR5cGUoKQorY29uc3QgUHRyID0g
NjQ7CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Rlc3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Rlc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDEg
QEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+SlNBaXI8L3RpdGxlPgorPHNjcmlwdCBzcmM9InN5
bWJvbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRtcF9iYXNlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJhcmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImJhc2ljX2Jsb2Nr
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjb2RlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJmcmVxdWVudGVkX2Jsb2NrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJpbnN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJvcGNvZGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3RhY2tfc2xvdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0idG1wLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ1dGlsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjdXN0b20uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9ImxpdmVuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJpbnNlcnRpb25fc2V0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJhbGxvY2F0ZV9zdGFjay5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icGF5bG9hZC1nYmVtdS1leGVjdXRlSXRlcmF0aW9uLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJwYXlsb2FkLWltYWdpbmctZ2F1c3NpYW4tYmx1ci1nYXVzc2lhbkJsdXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InBheWxvYWQtanNhaXItQUNMajhDLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJwYXlsb2FkLXR5cGVzY3JpcHQtc2NhbklkZW50aWZpZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImJlbmNobWFyay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBiZW5jaG1h
cmsoKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdC1zdW1tYXJ5Iiku
aW5uZXJIVE1MID0gIlRoYXQgdG9vayAiICsgcmVzdWx0ICsgIiBtcy4iOworICAgIH0KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+SlNBaXI8L2gxPgorPHA+CisgIDxkaXYgaWQ9InJl
c3VsdC1zdW1tYXJ5Ij48L2Rpdj4KKyAgPGRpdj48YSBocmVmPSJqYXZhc2NyaXB0OnJ1blRlc3Qo
KSI+U3RhcnQgVGVzdDwvYT48L2Rpdj4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KKworCkluZGV4
OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Rlc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFu
Y2VUZXN0cy9KU0Fpci90ZXN0LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9K
U0Fpci90ZXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKyJ1c2Ugc3RyaWN0
IjsKKworbG9hZCgiYWxsLmpzIik7Citsb2FkKCJwYXlsb2FkLWdiZW11LWV4ZWN1dGVJdGVyYXRp
b24uanMiKTsKK2xvYWQoInBheWxvYWQtaW1hZ2luZy1nYXVzc2lhbi1ibHVyLWdhdXNzaWFuQmx1
ci5qcyIpOworbG9hZCgicGF5bG9hZC1qc2Fpci1BQ0xqOEMuanMiKTsKK2xvYWQoInBheWxvYWQt
dHlwZXNjcmlwdC1zY2FuSWRlbnRpZmllci5qcyIpOworbG9hZCgiYmVuY2htYXJrLmpzIik7CisK
K2xldCByZXN1bHQgPSBiZW5jaG1hcmsoKTsKK3ByaW50KCJUaGF0IHRvb2sgIiArIHJlc3VsdCAr
ICIgbXMuIik7CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3RtcC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3RtcC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZv
cm1hbmNlVGVzdHMvSlNBaXIvdG1wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAK
KyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworY2xhc3MgVG1wIGV4dGVuZHMgVG1wQmFzZSB7CisgICAgY29uc3RydWN0b3IoaW5kZXgs
IHR5cGUpCisgICAgeworICAgICAgICBzdXBlcigpOworICAgICAgICB0aGlzLl9pbmRleCA9IGlu
ZGV4OworICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKKyAgICB9CisgICAgCisgICAgc3RhdGlj
IGZyb21SZWcocmVnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlZzsKKyAgICB9CisgICAgCisg
ICAgZ2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgdHlwZSgpIHsg
cmV0dXJuIHRoaXMuX3R5cGU7IH0KKyAgICAKKyAgICBnZXQgaXNSZWcoKSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiJSIgKyAo
dGhpcy5pc0dQID8gIiIgOiAiZiIpICsgInRtcCIgKyB0aGlzLl9pbmRleDsKKyAgICB9CisgICAg
CisgICAgc3RhdGljIGV4dHJhY3QoYXJnKQorICAgIHsKKyAgICAgICAgaWYgKGFyZy5pc1RtcCkK
KyAgICAgICAgICAgIHJldHVybiBhcmcudG1wOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9
CisKKyAgICBzdGF0aWMgZm9yRWFjaEZhc3QoYXJnLCBmdW5jKSB7IHJldHVybiBhcmcuZm9yRWFj
aFRtcEZhc3QoZnVuYyk7IH0KKyAgICBzdGF0aWMgZm9yRWFjaChhcmcsIHJvbGUsIHR5cGUsIHdp
ZHRoLCBmdW5jKSB7IHJldHVybiBhcmcuZm9yRWFjaFRtcChyb2xlLCB0eXBlLCB3aWR0aCwgZnVu
Yyk7IH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wX2Jhc2UuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXBfYmFzZS5qcwkocmV2aXNpb24gMCkK
KysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wX2Jhc2UuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw1NSBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBUbXBCYXNlIHsKKyAgICBnZXQgaXNHUCgpIHsgcmV0
dXJuIHRoaXMudHlwZSA9PSBHUDsgfQorICAgIGdldCBpc0ZQKCkgeyByZXR1cm4gdGhpcy50eXBl
ID09IEZQOyB9CisgICAgCisgICAgZ2V0IGlzR1BSKCkgeyByZXR1cm4gdGhpcy5pc1JlZyAmJiB0
aGlzLmlzR1A7IH0KKyAgICBnZXQgaXNGUFIoKSB7IHJldHVybiB0aGlzLmlzUmVnICYmIHRoaXMu
aXNGUDsgfQorICAgIAorICAgIGdldCByZWcoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlz
UmVnKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnJlZyBvbiBub24tUmVn
Iik7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIGdldCBncHIoKQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLmlzR1BSKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJD
YWxsZWQgLmdwciBvbiBub24tR1BSIik7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAg
ICAKKyAgICBnZXQgZnByKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc0ZQUikKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5mcHIgb24gbm9uLUZQUiIpOworICAgICAg
ICByZXR1cm4gdGhpczsKKyAgICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIv
dXRpbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3V0aWwuanMJKHJl
dmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3V0aWwuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNzQgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworZnVuY3Rpb24gaXNSZXByZXNlbnRhYmxlQXNJbnQz
Mih2YWx1ZSkKK3sKKyAgICByZXR1cm4gKHZhbHVlIHwgMCkgPT09IHZhbHVlOworfQorCitmdW5j
dGlvbiBhZGRJbmRleGVkKGxpc3QsIGNvbnMsIC4uLmFyZ3MpCit7CisgICAgbGV0IHJlc3VsdCA9
IG5ldyBjb25zKGxpc3QubGVuZ3RoLCAuLi5hcmdzKTsKKyAgICBsaXN0LnB1c2gocmVzdWx0KTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitjb25zdCBzdGFja0FsaWdubWVudEJ5dGVzID0gMTY7
CisKK2Z1bmN0aW9uIHJvdW5kVXBUb011bHRpcGxlT2YoYW1vdW50LCB2YWx1ZSkKK3sKKyAgICBy
ZXR1cm4gTWF0aC5jZWlsKHZhbHVlIC8gYW1vdW50ICogYW1vdW50KTsKK30KKworZnVuY3Rpb24g
c3ltYm9sTmFtZShzeW1ib2wpCit7CisgICAgbGV0IGZ1bGxTdHJpbmcgPSBzeW1ib2wudG9TdHJp
bmcoKTsKKyAgICByZXR1cm4gZnVsbFN0cmluZy5zdWJzdHJpbmcoIlN5bWJvbCgiLmxlbmd0aCwg
ZnVsbFN0cmluZy5sZW5ndGggLSAiKSIubGVuZ3RoKTsKK30KKworZnVuY3Rpb24gc2V0VG9TdHJp
bmcoc2V0KQoreworICAgIGxldCByZXN1bHQgPSAiIjsKKyAgICBmb3IgKGxldCB2YWx1ZSBvZiBz
ZXQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiLCAiOwor
ICAgICAgICByZXN1bHQgKz0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K2Z1bmN0aW9uIG1lcmdlSW50b1NldCh0YXJnZXQsIHNvdXJjZSkKK3sKKyAgICBsZXQgZGlkQWRk
ID0gZmFsc2U7CisgICAgZm9yIChsZXQgdmFsdWUgb2Ygc291cmNlKSB7CisgICAgICAgIGlmICh0
YXJnZXQuaGFzKHZhbHVlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0YXJnZXQu
YWRkKHZhbHVlKTsKKyAgICAgICAgZGlkQWRkID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGRp
ZEFkZDsKK30KKworZnVuY3Rpb24gbm9uRW1wdHlSYW5nZXNPdmVybGFwKGxlZnRNaW4sIGxlZnRN
YXgsIHJpZ2h0TWluLCByaWdodE1heCkKK3sKKyAgICBpZiAobGVmdE1pbiA+PSBsZWZ0TWF4KQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBsZWZ0IHJhbmdlIik7CisgICAgaWYgKHJpZ2h0
TWluID49IHJpZ2h0TWF4KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByaWdodCByYW5n
ZSIpOworICAgIAorICAgIGlmIChsZWZ0TWluIDw9IHJpZ2h0TWluICYmIGxlZnRNYXggPiByaWdo
dE1pbikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHJpZ2h0TWluIDw9IGxlZnRNaW4g
JiYgcmlnaHRNYXggPiBsZWZ0TWluKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Z1bmN0aW9uIHJhbmdlc092ZXJsYXAobGVmdE1pbiwgbGVmdE1heCwgcmln
aHRNaW4sIHJpZ2h0TWF4KQoreworICAgIGlmIChsZWZ0TWluID4gbGVmdE1heCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJCYWQgbGVmdCByYW5nZSIpOworICAgIGlmIChyaWdodE1pbiA+IHJp
Z2h0TWF4KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByaWdodCByYW5nZSIpOworICAg
IAorICAgIGlmIChsZWZ0TWluID09IGxlZnRNYXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAocmlnaHRNaW4gPT0gcmlnaHRNYXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICByZXR1cm4gbm9uRW1wdHlSYW5nZXNPdmVybGFwKGxlZnRNaW4sIGxlZnRNYXgsIHJpZ2h0
TWluLCByaWdodE1heCk7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZUFsbE1hdGNoaW5nKGFycmF5LCBm
dW5jKQoreworICAgIGxldCBzcmNJbmRleCA9IDA7CisgICAgbGV0IGRzdEluZGV4ID0gMDsKKyAg
ICB3aGlsZSAoc3JjSW5kZXggPCBhcnJheS5sZW5ndGgpIHsKKyAgICAgICAgbGV0IHZhbHVlID0g
YXJyYXlbc3JjSW5kZXgrK107CisgICAgICAgIGlmICghZnVuYyh2YWx1ZSkpCisgICAgICAgICAg
ICBhcnJheVtkc3RJbmRleCsrXSA9IHZhbHVlOworICAgIH0KKyAgICBhcnJheS5sZW5ndGggPSBk
c3RJbmRleDsKK30KKworZnVuY3Rpb24gYnViYmxlU29ydChhcnJheSwgbGVzc1RoYW4pCit7Cisg
ICAgZnVuY3Rpb24gc3dhcChpLCBqKQorICAgIHsKKyAgICAgICAgdmFyIHRtcCA9IGFycmF5W2ld
OworICAgICAgICBhcnJheVtpXSA9IGFycmF5W2pdOworICAgICAgICBhcnJheVtqXSA9IHRtcDsK
KyAgICB9CisgICAgCisgICAgbGV0IGJlZ2luID0gMDsKKyAgICBsZXQgZW5kID0gYXJyYXkubGVu
Z3RoOworICAgIGZvciAoOzspIHsKKyAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTsKKyAgICAg
ICAgCisgICAgICAgIGZ1bmN0aW9uIGJ1YmJsZShpLCBqKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAobGVzc1RoYW4oYXJyYXlbaV0sIGFycmF5W2pdKSkgeworICAgICAgICAgICAgICAgIHN3
YXAoaSwgaik7CisgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKGVuZCA8IGJlZ2luKQorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJCZWdpbiBhbmQgZW5kIGFyZSBtZXNzZWQgdXAiKTsKKyAgICAgICAg
CisgICAgICAgIGxldCBsaW1pdCA9IGVuZCAtIGJlZ2luOworICAgICAgICBmb3IgKGxldCBpID0g
bGltaXQ7IGktLSA+IDE7KQorICAgICAgICAgICAgYnViYmxlKGJlZ2luICsgaSwgYmVnaW4gKyBp
IC0gMSk7CisgICAgICAgIGlmICghY2hhbmdlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgCisgICAgICAgIC8vIEFmdGVyIG9uZSBydW4sIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBs
aXN0IGlzIGd1YXJhbnRlZWQgdG8gYmUgdGhlIHNtYWxsZXN0LgorICAgICAgICBiZWdpbisrOwor
ICAgICAgICAKKyAgICAgICAgLy8gTm93IGdvIGluIHRoZSBvdGhlciBkaXJlY3Rpb24uIFRoaXMg
ZWxpbWluYXRlcyBtb3N0IHNvcnRpbmcgcGF0aG9sb2dpZXMuCisgICAgICAgIGNoYW5nZWQgPSBm
YWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmIChlbmQgPCBiZWdpbikKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQmVnaW4gYW5kIGVuZCBhcmUgbWVzc2VkIHVwIik7CisgICAgICAgIAor
ICAgICAgICBsaW1pdCA9IGVuZCAtIGJlZ2luOworICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8
IGxpbWl0OyArK2kpCisgICAgICAgICAgICBidWJibGUoYmVnaW4gKyBpLCBiZWdpbiArIGkgLSAx
KTsKKyAgICAgICAgaWYgKCFjaGFuZ2VkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAK
KyAgICAgICAgLy8gTm93IHRoZSBsYXN0IGVsZW1lbnQgaXMgZ3VhcmFudGVlZCB0byBiZSB0aGUg
bGFyZ2VzdC4KKyAgICAgICAgZW5kLS07CisgICAgfQorfQorCitsZXQgY3VycmVudFRpbWU7Citp
ZiAodGhpcy5wZXJmb3JtYW5jZSAmJiBwZXJmb3JtYW5jZS5ub3cpCisgICAgY3VycmVudFRpbWUg
PSBmdW5jdGlvbigpIHsgcmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpIH07CitlbHNlIGlmIChwcmVj
aXNlVGltZSkKKyAgICBjdXJyZW50VGltZSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gcHJlY2lzZVRp
bWUoKSAqIDEwMDA7IH07CitlbHNlCisgICAgY3VycmVudFRpbWUgPSBmdW5jdGlvbigpIHsgcmV0
dXJuIDAgKyBuZXcgRGF0ZSgpOyB9OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSw1NiBAQAorMjAxNi0wNi0wNyAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBBaXI6OmFsbG9jYXRlU3RhY2soKSBp
biBFUzYgdG8gc2VlIGhvdyBtdWNoIG9mIGEgYmFkIGlkZWEgdGhhdCBpcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MzE4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBNb3N0IG9mIHRoZXNl
IGNoYW5nZXMgYXJlIHRvIHN1cHBvcnQgZHVtcEFzSlMoKS4gQnV0IEkgYWxzbyBmb3VuZCBzb21l
IGR1cGxpY2F0ZSBhbmQgZGVhZAorICAgICAgICBjb2RlIHdoaWxlIHJld3JpdGluZyBpdCB0byBK
Uy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYjMvYWlyL0FpckFsbG9jYXRl
U3RhY2suY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6QXJnOjppc1NvbWVJbW0pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzQWRk
cik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6dG1wSW5kZXgpOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpBcmc6OmlzVmFsaWRJbW1Gb3JtKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjp3aXRoT2Zmc2V0KTogRGVsZXRlZC4gVGhpcyB3YXMgZGVhZCBjb2RlLgorICAgICAgICAq
IGIzL2Fpci9BaXJBcmdJbmxpbmVzLmg6IEl0IHR1cm5zIG91dCB0aGF0IEluc3QgaGFzIGEgRm9y
RWFjaCB0aGluZyB0aGF0IGR1cGxpY2F0ZWQgc29tZSBvZiB0aGUgbG9naWMgb2YgQXJnVGhpbmdI
ZWxwZXIsIHNvIEkganVzdCBtYWRlIEFyZ1RoaW5nSGVscGVyIG1vcmUgcG93ZXJmdWwuCisgICAg
ICAgIChKU0M6OkIzOjpBaXI6OkFyZ1RoaW5nSGVscGVyPEFyZz46OmZvckVhY2gpOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpBcmdUaGluZ0hlbHBlcjxSZWc+Ojppcyk6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OkFyZ1RoaW5nSGVscGVyPFJlZz46OmFzKToKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6QXJnVGhpbmdIZWxwZXI8UmVnPjo6Zm9yRWFjaEZhc3QpOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpBcmdUaGluZ0hlbHBlcjxSZWc+Ojpmb3JFYWNoKToKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6QXJnOjppcyk6CisgICAgICAgICogYjMvYWlyL0FpckR1bXBBc0pTLmNwcDogQWRkZWQuCisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OmR1bXBBc0pTKToKKyAgICAgICAgKiBiMy9haXIvQWlyRHVt
cEFzSlMuaDogQWRkZWQuCisgICAgICAgICogYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMuY3Bw
OgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpB
aXI6OnByZXBhcmVGb3JHZW5lcmF0aW9uKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdElubGlu
ZXMuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6SW5zdDo6Zm9yRWFjaCk6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6Okluc3Q6OmV4dHJhQ2xvYmJlcmVkUmVncyk6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6OkZvckVhY2g8VG1wPjo6Zm9yRWFjaCk6IERlbGV0ZWQuIFRoaXMgd2FzIGRvaW5nIHdo
YXQgQXJnVGhpbmdIZWxwZXIgd291bGQgaGF2ZSBkb25lIGJ1dCBub3QgYXMgd2VsbC4KKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6Rm9yRWFjaDxBcmc+Ojpmb3JFYWNoKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6Rm9yRWFjaDxSZWc+Ojpmb3JFYWNoKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiMy9haXIvQWlyTG9nUmVnaXN0ZXJQcmVzc3VyZS5jcHA6CisgICAgICAgICogYjMvYWly
L0FpclJlcG9ydFVzZWRSZWdpc3RlcnMuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJTcGlsbEV2
ZXJ5dGhpbmcuY3BwOgorICAgICAgICAqIGIzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiOiBNYWtl
IHRoaXMgZHVtcCBvcGNvZGUuanMsIHdoaWNoIGlzIGxpa2Ugd2hhdCBpdCBkdW1wcyBmb3IgQysr
LgorICAgICAgICAqIGppdC9SZWcuY3BwOgorICAgICAgICAoSlNDOjpSZWc6OmRlYnVnTmFtZSk6
CisgICAgICAgIChKU0M6OlJlZzo6ZHVtcCk6CisgICAgICAgICogaml0L1JlZy5oOgorICAgICAg
ICAoSlNDOjpSZWc6Omhhc2gpOgorICAgICAgICAqIGpzYy5jcHA6IEZpeCBqc2Mgc28gdGhhdCBp
dCByZXBvcnRzIHRoZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgb2YgcGFyc2VyIGVycm9ycy4K
KyAgICAgICAgKGR1bXBFeGNlcHRpb24pOgorICAgICAgICAqIHBhcnNlci9QYXJzZXJFcnJvci5o
OiBNYWtlIGl0IGVhc2llciB0byBkZWJ1ZyB0aGlzIGNvZGUuCisgICAgICAgIChXVEY6OnByaW50
SW50ZXJuYWwpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE2LTA2LTA2ICBH
dWlsbGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbanNjXVtt
aXBzXSBJbXBsZW1lbnQgYWJzRG91YmxlKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsNyBAQCBzZXQoSmF2YVNjcmlw
dENvcmVfU09VUkNFUwogICAgIGIzL2Fpci9BaXJDQ2FsbGluZ0NvbnZlbnRpb24uY3BwCiAgICAg
YjMvYWlyL0FpckNvZGUuY3BwCiAgICAgYjMvYWlyL0FpckN1c3RvbS5jcHAKKyAgICBiMy9haXIv
QWlyRHVtcEFzSlMuY3BwCiAgICAgYjMvYWlyL0FpckVsaW1pbmF0ZURlYWRDb2RlLmNwcAogICAg
IGIzL2Fpci9BaXJFbWl0U2h1ZmZsZS5jcHAKICAgICBiMy9haXIvQWlyRml4T2J2aW91c1NwaWxs
cy5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5Myw4ICsxOTkz
LDI1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHN0YXRpYyB2b2lkIGR1bXBF
eGNlcHRpb24oR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgZXhjZXB0aW9uKQog
ewogICAgIHByaW50ZigiRXhjZXB0aW9uOiAlc1xuIiwgZXhjZXB0aW9uLnRvV1RGU3RyaW5nKGds
b2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpKS51dGY4KCkuZGF0YSgpKTsKKworICAgIElkZW50aWZp
ZXIgbmFtZUlEID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4
ZWMoKSwgIm5hbWUiKTsKKyAgICBJZGVudGlmaWVyIGZpbGVOYW1lSUQgPSBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCAic291cmNlVVJMIik7CisgICAg
SWRlbnRpZmllciBsaW5lTnVtYmVySUQgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRXhlYygpLCAibGluZSIpOwogICAgIElkZW50aWZpZXIgc3RhY2tJRCA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksICJzdGFjayIp
OworICAgIAorICAgIEpTVmFsdWUgbmFtZVZhbHVlID0gZXhjZXB0aW9uLmdldChnbG9iYWxPYmpl
Y3QtPmdsb2JhbEV4ZWMoKSwgbmFtZUlEKTsKKyAgICBKU1ZhbHVlIGZpbGVOYW1lVmFsdWUgPSBl
eGNlcHRpb24uZ2V0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBmaWxlTmFtZUlEKTsKKyAg
ICBKU1ZhbHVlIGxpbmVOdW1iZXJWYWx1ZSA9IGV4Y2VwdGlvbi5nZXQoZ2xvYmFsT2JqZWN0LT5n
bG9iYWxFeGVjKCksIGxpbmVOdW1iZXJJRCk7CiAgICAgSlNWYWx1ZSBzdGFja1ZhbHVlID0gZXhj
ZXB0aW9uLmdldChnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgc3RhY2tJRCk7CisgICAgCisg
ICAgaWYgKG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSkg
PT0gIlN5bnRheEVycm9yIgorICAgICAgICAmJiAoIWZpbGVOYW1lVmFsdWUuaXNVbmRlZmluZWRP
ck51bGwoKSB8fCAhbGluZU51bWJlclZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpKSB7CisgICAg
ICAgIHByaW50ZigKKyAgICAgICAgICAgICJhdCAlczolc1xuIiwKKyAgICAgICAgICAgIGZpbGVO
YW1lVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCkpLnV0ZjgoKS5k
YXRhKCksCisgICAgICAgICAgICBsaW5lTnVtYmVyVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCkpLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKyAgICAKICAgICBpZiAo
IXN0YWNrVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcHJpbnRmKCIlc1xuIiwg
c3RhY2tWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSkudXRmOCgp
LmRhdGEoKSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiArMTk4Myw4IEBACiAJ
CURDMTdFODFBMUM5QzkxRTkwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMxN0U4MTYxQzlDODAyQjAwOEE2
QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi87IH07CiAJCURDMjE0MzA3MUNBMzJFNTUwMDBBODg2
OSAvKiBJQ1N0YXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEQzIxNDMwNjFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5oICovOyB9OwogCQlEQzIx
NDMwODFDQTMyRTU4MDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNT
dGF0cy5jcHAgKi87IH07CisJCURDNDU0QjhDMUQwMEU4MjIwMDRDMThBRiAvKiBBaXJEdW1wQXNK
Uy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1
NEI4QTFEMDBFODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwICovOyB9OworCQlEQzQ1NEI4
RDFEMDBFODI0MDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJE
dW1wQXNKUy5oICovOyB9OwogCQlEQzYwNUI1RDFDRTI2RUEwMDA1OTM3MTggLyogUHJvZmlsZXJF
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
QzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgKi87IH07CiAJCURD
NjA1QjVFMUNFMjZFQTIwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTgg
LyogUHJvZmlsZXJFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCURDNjA1QjVGMUNFMjZFQTUwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1QjFD
RTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuY3BwICovOyB9OwpAQCAtNDE5Nyw2ICs0MTk5
LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNT
dGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5
IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzQ1NEI4QTFEMDBFODFGMDA0QzE4QUYg
LyogQWlyRHVtcEFzSlMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
QWlyRHVtcEFzSlMuY3BwOyBwYXRoID0gYjMvYWlyL0FpckR1bXBBc0pTLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBB
c0pTLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFpckR1bXBBc0pTLmg7IHBh
dGggPSBiMy9haXIvQWlyRHVtcEFzSlMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
REM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJvZmlsZXJFdmVudC5jcHA7IHBhdGggPSBwcm9m
aWxlci9Qcm9maWxlckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2
MDVCNUExQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZXJFdmVudC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmls
ZXJFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QjFDRTI2RTk4
MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gUHJvZmlsZXJVSUQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDgyMSw2ICs0ODI1LDggQEAKIAkJCQkw
RkVDODU1MTFCREFDREM3MDA4MEZGNzQgLyogQWlyQ29kZS5oICovLAogCQkJCTBGNjE4MzIyMUM0
NUJGMDcwMDcyNDUwQiAvKiBBaXJDdXN0b20uY3BwICovLAogCQkJCTBGMTBGMUEyMUM0MjBCRjAw
MDFDMDdEMiAvKiBBaXJDdXN0b20uaCAqLywKKwkJCQlEQzQ1NEI4QTFEMDBFODFGMDA0QzE4QUYg
LyogQWlyRHVtcEFzSlMuY3BwICovLAorCQkJCURDNDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBB
aXJEdW1wQXNKUy5oICovLAogCQkJCTBGNDU3MDM2MUJFNDRDOTEwMDYyQTYyOSAvKiBBaXJFbGlt
aW5hdGVEZWFkQ29kZS5jcHAgKi8sCiAJCQkJMEY0NTcwMzcxQkU0NEM5MTAwNjJBNjI5IC8qIEFp
ckVsaW1pbmF0ZURlYWRDb2RlLmggKi8sCiAJCQkJMEY2MTgzMjMxQzQ1QkYwNzAwNzI0NTBCIC8q
IEFpckVtaXRTaHVmZmxlLmNwcCAqLywKQEAgLTcwMjIsNiArNzAyOCw3IEBACiAJCQkJMEZFQzg1
MDYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkVDODUwODFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1ZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVDODUwQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCURDNDU0QjhEMUQwMEU4MjQwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZFQzg1MEMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MEUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
c3QzMlZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUxMDFCREFDREFDMDA4MEZGNzQg
LyogQjNDb25zdDY0VmFsdWUuaCBpbiBIZWFkZXJzICovLApAQCAtOTEwNiw2ICs5MTEzLDcgQEAK
IAkJCQkxNDA1NjZENjEwN0VDMjcxMDA1REJDOEQgLyogSlNGdW5jdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjRBMzhGOTFDOEUxM0RGMDAxOTAzMTggLyogU3VwZXJTYW1wbGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTc5N0UwN0E5MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExl
eGljYWxFbnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzQ1NEI4QzFEMDBFODIy
MDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDIx
MDdFQzM3NjAwNDI3QTQ4IC8qIEpTR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE1RkQwMDg1MTg5QjFCN0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUMzQTFBNTE4QzA0OTAyMDBDOTU5M0EgLyogSlNHbG9i
YWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVN0YWNrLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCShyZXZpc2lv
biAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3Rh
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNf
SklUKQogCisjaW5jbHVkZSAiQWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIK
ICNpbmNsdWRlICJBaXJJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5o
IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCShyZXZpc2lvbiAyMDE3
MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCSh3b3JraW5nIGNv
cHkpCkBAIC02ODgsNyArNjg4LDE1IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTb21lSW1tKCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBpc0ltbSgpIHx8IGlzQmlnSW1tKCkgfHwgaXNC
aXRJbW0oKSB8fCBpc0JpdEltbTY0KCk7CisgICAgICAgIHN3aXRjaCAoa2luZCgpKSB7CisgICAg
ICAgIGNhc2UgSW1tOgorICAgICAgICBjYXNlIEJpZ0ltbToKKyAgICAgICAgY2FzZSBCaXRJbW06
CisgICAgICAgIGNhc2UgQml0SW1tNjQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIGJvb2wgaXNBZGRyKCkgY29uc3QKQEAgLTk5MywzMyArMTAwMSw2IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIHRtcCgpLnRtcEluZGV4KCk7CiAgICAgfQogCi0gICAgLy8gSWYgJ3Ro
aXMnIGlzIGFuIGFkZHJlc3MgQXJnLCB0aGVuIGl0IHJldHVybnMgYSBuZXcgYWRkcmVzcyBBcmcg
d2l0aCB0aGUgYWRkaXRpb25hbCBvZmZzZXQgYXBwbGllZC4KLSAgICAvLyBOb3RlIHRoYXQgdGhp
cyBkb2VzIG5vdCBjb25zaWRlciB3aGV0aGVyIGRvaW5nIHNvIHByb2R1Y2VzIGEgdmFsaWQgQXJn
IG9yIG5vdC4gVW5sZXNzIHlvdSByZWFsbHkKLSAgICAvLyBrbm93IHdoYXQgeW91J3JlIGRvaW5n
LCB5b3Ugc2hvdWxkIGNhbGwgQXJnOjppc1ZhbGlkRm9ybSgpIG9uIHRoZSByZXN1bHQuIFNvbWUg
Y29kZSB3b24ndCBkbyB0aGF0LAotICAgIC8vIGxpa2UgaWYgeW91J3JlIGFwcGx5aW5nIGEgdmVy
eSBzbWFsbCBvZmZzZXQgdG8gYSBBcmc6OnN0YWNrKCkgdGhhdCB5b3Uga25vdyBoYXMgbm8gb2Zm
c2V0IHRvIGJlZ2luCi0gICAgLy8gd2l0aC4gSXQncyBzYWZlIHRvIGFzc3VtZSB0aGF0IGFsbCB0
YXJnZXRzIGFsbG93IHNtYWxsIG9mZnNldHMgKGxpa2UsIDAuLjcpIGZvciBBZGRyLCBTdGFjaywg
YW5kCi0gICAgLy8gQ2FsbEFyZy4KLSAgICBBcmcgd2l0aE9mZnNldChpbnQ2NF90IGFkZGl0aW9u
YWxPZmZzZXQpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIWhhc09mZnNldCgpKQotICAgICAg
ICAgICAgcmV0dXJuIEFyZygpOwotICAgICAgICBpZiAoc3VtT3ZlcmZsb3dzPGludDY0X3Q+KG9m
ZnNldCgpLCBhZGRpdGlvbmFsT2Zmc2V0KSkKLSAgICAgICAgICAgIHJldHVybiBBcmcoKTsKLSAg
ICAgICAgc3dpdGNoIChraW5kKCkpIHsKLSAgICAgICAgY2FzZSBBZGRyOgotICAgICAgICAgICAg
cmV0dXJuIGFkZHIoYmFzZSgpLCBvZmZzZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAg
ICBjYXNlIFN0YWNrOgotICAgICAgICAgICAgcmV0dXJuIHN0YWNrKHN0YWNrU2xvdCgpLCBvZmZz
ZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAgICBjYXNlIENhbGxBcmc6Ci0gICAgICAg
ICAgICByZXR1cm4gY2FsbEFyZyhvZmZzZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAg
ICBjYXNlIEluZGV4OgotICAgICAgICAgICAgcmV0dXJuIGluZGV4KGJhc2UoKSwgaW5kZXgoKSwg
c2NhbGUoKSwgb2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0KTsKLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gQXJnKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlk
SW1tRm9ybShpbnQ2NF90IHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGlzWDg2KCkpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZ0lubGluZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZ0lubGluZXMuaAkocmV2aXNp
b24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmdJbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDg4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z1RoaW5nSGVscGVyPEFyZz4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ1Ro
aW5nSGVscGVyPFN0YWNrU2xvdCo+IHsKKyAgICBzdGF0aWMgYm9vbCBpcyhjb25zdCBBcmcmIGFy
ZykKKyAgICB7CisgICAgICAgIHJldHVybiBhcmcuaXNTdGFjaygpOworICAgIH0KKyAgICAKKyAg
ICBzdGF0aWMgU3RhY2tTbG90KiBhcyhjb25zdCBBcmcmIGFyZykKKyAgICB7CisgICAgICAgIHJl
dHVybiBhcmcuc3RhY2tTbG90KCk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEZ1bmN0b3I+CisgICAgc3RhdGljIHZvaWQgZm9yRWFjaEZhc3QoQXJnJiBhcmcsIGNvbnN0IEZ1
bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKCkpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBTdGFja1Nsb3QqIHN0YWNrU2xvdCA9
IGFyZy5zdGFja1Nsb3QoKTsKKyAgICAgICAgZnVuY3RvcihzdGFja1Nsb3QpOworICAgICAgICBh
cmcgPSBBcmc6OnN0YWNrKHN0YWNrU2xvdCwgYXJnLm9mZnNldCgpKTsKKyAgICB9CisgICAgCisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEFy
ZyYgYXJnLCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgs
IGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAgICBpZiAoIWFyZy5pc1N0YWNr
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBTdGFja1Nsb3QqIHN0
YWNrU2xvdCA9IGFyZy5zdGFja1Nsb3QoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEZJWE1FOiBU
aGlzIGlzIHdheSB0b28gb3B0aW1pc3RpYyBhYm91dCB0aGUgbWVhbmluZyBvZiAiRGVmIi4gSXQg
Z2V0cyBsdWNreSBmb3IKKyAgICAgICAgLy8gbm93IGJlY2F1c2Ugb3VyIG9ubHkgdXNlIG9mICJB
bm9ueW1vdXMiIHN0YWNrIHNsb3RzIGhhcHBlbnMgdG8gd2FudCB0aGUgb3B0aW1pc3RpYworICAg
ICAgICAvLyBzZW1hbnRpY3MuIFdlIGNvdWxkIGZpeCB0aGlzIGJ5IGp1c3QgY2hhbmdpbmcgdGhl
IGNvbW1lbnRzIHRoYXQgZGVzY3JpYmUgdGhlCisgICAgICAgIC8vIHNlbWFudGljcyBvZiAiQW5v
bnltb3VzIi4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MTEyOAorICAgICAgICAKKyAgICAgICAgZnVuY3RvcihzdGFja1Nsb3QsIHJvbGUsIHR5
cGUsIHdpZHRoKTsKKyAgICAgICAgYXJnID0gQXJnOjpzdGFjayhzdGFja1Nsb3QsIGFyZy5vZmZz
ZXQoKSk7CisgICAgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJnVGhpbmdIZWxwZXI8UmVn
PiB7CisgICAgc3RhdGljIGJvb2wgaXMoY29uc3QgQXJnJiBhcmcpCisgICAgeworICAgICAgICBy
ZXR1cm4gYXJnLmlzUmVnKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBSZWcgYXMoY29uc3Qg
QXJnJiBhcmcpCisgICAgeworICAgICAgICByZXR1cm4gYXJnLnJlZygpOworICAgIH0KKyAgICAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHN0YXRpYyB2b2lkIGZvckVhY2hG
YXN0KEFyZyYgYXJnLCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgYXJn
LmZvckVhY2hUbXBGYXN0KAorICAgICAgICAgICAgWyZdIChUbXAmIHRtcCkgeworICAgICAgICAg
ICAgICAgIGlmICghdG1wLmlzUmVnKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBSZWcgcmVnID0gdG1wLnJlZygpOworICAg
ICAgICAgICAgICAgIGZ1bmN0b3IocmVnKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAocmVn
KTsKKyAgICAgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBG
dW5jdG9yPgorICAgIHN0YXRpYyB2b2lkIGZvckVhY2goQXJnJiBhcmcsIEFyZzo6Um9sZSBhcmdS
b2xlLCBBcmc6OlR5cGUgYXJnVHlwZSwgQXJnOjpXaWR0aCBhcmdXaWR0aCwgY29uc3QgRnVuY3Rv
ciYgZnVuY3RvcikKKyAgICB7CisgICAgICAgIGFyZy5mb3JFYWNoVG1wKAorICAgICAgICAgICAg
YXJnUm9sZSwgYXJnVHlwZSwgYXJnV2lkdGgsCisgICAgICAgICAgICBbJl0gKFRtcCYgdG1wLCBB
cmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoIXRtcC5pc1JlZygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUmVnIHJlZyA9IHRtcC5yZWcoKTsK
KyAgICAgICAgICAgICAgICBmdW5jdG9yKHJlZywgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAg
ICAgICAgICAgIHRtcCA9IFRtcChyZWcpOworICAgICAgICAgICAgfSk7CisgICAgfQorfTsKKwog
dGVtcGxhdGU8dHlwZW5hbWUgVGhpbmc+CiBib29sIEFyZzo6aXMoKSBjb25zdAogewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWlyRHVt
cEFzSlMuaCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJBaXJDb2RlLmgiCisj
aW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7IG5hbWVzcGFjZSBBaXIgeworCituYW1lc3BhY2UgeworCitDU3RyaW5nIHZhck5hbWVGb3JC
bG9ja0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIHRvQ1N0cmluZygiYmIi
LCBpbmRleCk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShCYXNpY0Jsb2NrKiBibG9jaykKK3sKKyAg
ICByZXR1cm4gdmFyTmFtZUZvckJsb2NrQXRJbmRleChibG9jay0+aW5kZXgoKSk7Cit9CisKK0NT
dHJpbmcgdmFyTmFtZUZvclN0YWNrU2xvdEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAg
cmV0dXJuIHRvQ1N0cmluZygic2xvdCIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFN0
YWNrU2xvdCogc2xvdCkKK3sKKyAgICByZXR1cm4gdmFyTmFtZUZvclN0YWNrU2xvdEF0SW5kZXgo
c2xvdC0+aW5kZXgoKSk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShSZWcgcmVnKQoreworICAgIHJl
dHVybiB0b0NTdHJpbmcoIlJlZy4iLCByZWcuZGVidWdOYW1lKCkpOworfQorCitDU3RyaW5nIHZh
ck5hbWVGb3JUbXBXaXRoVHlwZUFuZEluZGV4KEFyZzo6VHlwZSB0eXBlLCB1bnNpZ25lZCBpbmRl
eCkKK3sKKyAgICByZXR1cm4gdG9DU3RyaW5nKHR5cGUgPT0gQXJnOjpGUCA/ICJmIiA6ICIiLCAi
dG1wIiwgaW5kZXgpOworfQorCitDU3RyaW5nIHZhck5hbWUoVG1wIHRtcCkKK3sKKyAgICBpZiAo
dG1wLmlzUmVnKCkpCisgICAgICAgIHJldHVybiB2YXJOYW1lKHRtcC5yZWcoKSk7CisgICAgcmV0
dXJuIHZhck5hbWVGb3JUbXBXaXRoVHlwZUFuZEluZGV4KEFyZyh0bXApLnR5cGUoKSwgdG1wLnRt
cEluZGV4KCkpOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwordm9pZCBkdW1wQXNK
UyhDb2RlJiBjb2RlLCBQcmludFN0cmVhbSYgb3V0KQoreworICAgIG91dC5wcmludGxuKCJsZXQg
Y29kZSA9IG5ldyBDb2RlKCk7Iik7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGNvZGUuc2l6ZSgpOyArK2kpCisgICAgICAgIG91dC5wcmludGxuKCJsZXQgIiwgdmFyTmFtZUZv
ckJsb2NrQXRJbmRleChpKSwgIiA9IGNvZGUuYWRkQmxvY2soKTsiKTsKKyAgICAKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgY29kZS5zdGFja1Nsb3RzKCkuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgU3RhY2tTbG90KiBzbG90ID0gY29kZS5zdGFja1Nsb3RzKClbaV07CisgICAgICAgIGlm
IChzbG90KQorICAgICAgICAgICAgb3V0LnByaW50bG4oImxldCAiLCB2YXJOYW1lKHNsb3QpLCAi
ID0gY29kZS5hZGRTdGFja1Nsb3QoIiwgc2xvdC0+Ynl0ZVNpemUoKSwgIiwgIiwgc2xvdC0+a2lu
ZCgpLCAiKTsiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50bG4oImNvZGUu
YWRkU3RhY2tTbG90KDEsIFNwaWxsKTsiKTsKKyAgICB9CisgICAgCisgICAgQXJnOjpmb3JFYWNo
VHlwZSgKKyAgICAgICAgWyZdIChBcmc6OlR5cGUgdHlwZSkgeworICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gY29kZS5udW1UbXBzKHR5cGUpOyBpLS07KSB7CisgICAgICAgICAgICAgICAg
b3V0LnByaW50bG4oCisgICAgICAgICAgICAgICAgICAgICJsZXQgIiwgdmFyTmFtZUZvclRtcFdp
dGhUeXBlQW5kSW5kZXgodHlwZSwgaSksICIgPSBjb2RlLm5ld1RtcCgiLCB0eXBlLCAiKTsiKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgCisgICAgb3V0LnByaW50bG4oImxldCBp
bnN0OyIpOworICAgIG91dC5wcmludGxuKCJsZXQgYXJnOyIpOworICAgIAorICAgIGZvciAoQmFz
aWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGZvciAoRnJlcXVlbnRlZEJsb2NrIHN1
Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludGxu
KAorICAgICAgICAgICAgICAgIHZhck5hbWUoYmxvY2spLCAiLnN1Y2Nlc3NvcnMucHVzaChuZXcg
RnJlcXVlbnRlZEJsb2NrKCIsCisgICAgICAgICAgICAgICAgdmFyTmFtZShzdWNjZXNzb3IuYmxv
Y2soKSksICIsICIsIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSwgIikpOyIpOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHByZWRlY2Vzc29yIDogYmxvY2stPnBy
ZWRlY2Vzc29ycygpKQorICAgICAgICAgICAgb3V0LnByaW50bG4odmFyTmFtZShibG9jayksICIu
cHJlZGVjZXNzb3JzLnB1c2goIiwgdmFyTmFtZShwcmVkZWNlc3NvciksICIpOyIpOworICAgICAg
ICAKKyAgICAgICAgZm9yIChJbnN0JiBpbnN0IDogKmJsb2NrKSB7CisgICAgICAgICAgICBvdXQu
cHJpbnRsbigiaW5zdCA9IG5ldyBJbnN0KCIsIGluc3Qub3Bjb2RlLCAiKTsiKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKAorICAgICAgICAgICAgICAgIFsmXSAo
QXJnJiBhcmcsIEFyZzo6Um9sZSwgQXJnOjpUeXBlLCBBcmc6OldpZHRoKSB7CisgICAgICAgICAg
ICAgICAgICAgIHN3aXRjaCAoYXJnLmtpbmQoKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNl
IEFyZzo6SW52YWxpZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6VG1wOgorICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVUbXAoIiwgdmFy
TmFtZShhcmcudG1wKCkpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpJ
bW06CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0
ZUltbSgiLCBhcmcudmFsdWUoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFy
Zzo6QmlnSW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFy
Zy5jcmVhdGVCaWdJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBBcmc6OkJpdEltbToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxu
KCJhcmcgPSBBcmcuY3JlYXRlQml0SW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlQml0SW1tNjQoIiwgYXJnLnZhbHVlKCksICIp
OyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkFkZHI6CisgICAgICAgICAgICAg
ICAgICAgICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJn
ID0gQXJnLmNyZWF0ZUFkZHIoIiwgdmFyTmFtZShhcmcuYmFzZSgpKSwgIiwgIiwgYXJnLm9mZnNl
dCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpTdGFjazoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJhcmcgPSBBcmcuY3JlYXRlU3RhY2soIiwgdmFyTmFtZShhcmcuc3RhY2tTbG90KCkpLCAi
LCAiLCBhcmcub2Zmc2V0KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6
OkNhbGxBcmc6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJn
LmNyZWF0ZUNhbGxBcmcoIiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQXJnOjpJbmRleDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxu
KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmcgPSBBcmcuY3JlYXRlSW5kZXgoIiwg
dmFyTmFtZShhcmcuYmFzZSgpKSwgIiwgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
YXJOYW1lKGFyZy5pbmRleCgpKSwgIiwgIiwgYXJnLnNjYWxlKCksICIsICIsIGFyZy5vZmZzZXQo
KSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6UmVsQ29uZDoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZCgi
LCBhcmcuYXNSZWxhdGlvbmFsQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAg
ICAgY2FzZSBBcmc6OlJlc0NvbmQ6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRs
bigiYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoIiwgYXJnLmFzUmVzdWx0Q29uZGl0aW9uKCksICIp
OyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkRvdWJsZUNvbmQ6CisgICAgICAg
ICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQo
IiwgYXJnLmFzRG91YmxlQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBBcmc6OlNwZWNpYWw6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBKUy1BaXIgZG9l
c24ndCBoYXZlIFNwZWNpYWxzLgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OldpZHRo
QXJnOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVh
dGVXaWR0aEFyZygiLCBhcmcud2lkdGgoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuYXJncy5wdXNoKGFyZyk7Iik7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbnN0Lm9w
Y29kZSA9PSBQYXRjaCkgeworICAgICAgICAgICAgICAgIGlmIChpbnN0Lmhhc05vbkFyZ0VmZmVj
dHMoKSkKKyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsiKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBv
dXQucHJpbnRsbigiaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsiKTsK
KyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7Iik7CisgICAgICAgICAgICAgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVn
cygpLmZvckVhY2goCisgICAgICAgICAgICAgICAgICAgIFsmXSAoUmVnIHJlZykgeworICAgICAg
ICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MuYWRkKCIsIHZhck5hbWUocmVnKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzKCkuZm9yRWFjaCgKKyAgICAg
ICAgICAgICAgICAgICAgWyZdIChSZWcgcmVnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBv
dXQucHJpbnRsbigiaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKCIsIHZhck5hbWUocmVnKSwg
Iik7Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOyIpOworICAgICAg
ICAgICAgICAgIGluc3QuZm9yRWFjaEFyZygKKyAgICAgICAgICAgICAgICAgICAgWyZdIChBcmcm
LCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuIiwgcm9sZSwgIiwgdHlw
ZTogIiwgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCB3aWR0aDogIiwgd2lk
dGgsICJ9KTsiKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbnN0Lm9wY29kZSA9PSBDQ2FsbCB8fCBpbnN0Lm9w
Y29kZSA9PSBDb2xkQ0NhbGwpIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5j
Q2FsbFR5cGUgPSAiLCBpbnN0Lm9yaWdpbi0+dHlwZSgpKTsKKyAgICAgICAgICAgICAgICBvdXQu
cHJpbnRsbigiaW5zdC5jQ2FsbEFyZ1R5cGVzID0gW107Iik7CisgICAgICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMTsgaSA8IGluc3Qub3JpZ2luLT5udW1DaGlsZHJlbigpOyArK2kpCisg
ICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmNDYWxsQXJnVHlwZXMucHVzaCgi
LCBpbnN0Lm9yaWdpbi0+Y2hpbGQoaSktPnR5cGUoKSwgIik7Iik7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIG91dC5wcmludGxuKHZhck5hbWUoYmxvY2spLCAiLmFw
cGVuZChpbnN0KTsiKTsKKyAgICAgICAgfQorICAgIH0KK30KKworfSB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6QjM6OkFpcgorCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgQWlyRHVtcEFzSlNfaAorI2RlZmluZSBBaXJEdW1wQXNKU19oCisKKyNp
ZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKKworY2xhc3MgQ29kZTsK
KworLy8gVGhpcyBpcyBhIGpva2UuIFZhcmlvdXMgb3BlcmF0aW9ucyBvbiBBaXIgYXJlIGludGVy
ZXN0aW5nIGZyb20gYSBiZW5jaG1hcmtpbmcgc3RhbmRwb2ludC4gV2UgY2FuCisvLyB3cml0ZSBz
b21lIEFpciBwaGFzZXMgaW4gSlMgYW5kIHRoZW4gdXNlIHRoYXQgdG8gYmVuY2htYXJrIEpTLgor
dm9pZCBkdW1wQXNKUyhDb2RlJiwgUHJpbnRTdHJlYW0mKTsKKworfSB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6QjM6OkFpcgorCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEFp
ckR1bXBBc0pTX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhP
YnZpb3VzU3BpbGxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckZpeE9idmlvdXNTcGlsbHMuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAi
QWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0
SW5saW5lcy5oIgogI2luY2x1ZGUgIkFpclBoYXNlU2NvcGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQWlyQWxsb2NhdGVTdGFjay5oIgog
I2luY2x1ZGUgIkFpckNvZGUuaCIKKyNpbmNsdWRlICJBaXJEdW1wQXNKUy5oIgogI2luY2x1ZGUg
IkFpckVsaW1pbmF0ZURlYWRDb2RlLmgiCiAjaW5jbHVkZSAiQWlyRml4T2J2aW91c1NwaWxscy5o
IgogI2luY2x1ZGUgIkFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5oIgpAQCAtMTAyLDExICsx
MDMsMjEgQEAgdm9pZCBwcmVwYXJlRm9yR2VuZXJhdGlvbihDb2RlJiBjb2RlKQogICAgIC8vIFBy
aW9yIHRvIHRoaXMgcG9pbnQgdGhlIHByb2xvZ3VlIGFuZCBlcGlsb2d1ZSBpcyBpbXBsaWNpdC4g
VGhpcyBtYWtlcyBpdCBleHBsaWNpdC4gSXQgYWxzbwogICAgIC8vIGRvZXMgdGhpbmdzIGxpa2Ug
aWRlbnRpZnkgd2hpY2ggY2FsbGVlLXNhdmVzIHdlJ3JlIHVzaW5nIGFuZCBzYXZlcyB0aGVtLgog
ICAgIGhhbmRsZUNhbGxlZVNhdmVzKGNvZGUpOworICAgIAorICAgIGlmIChPcHRpb25zOjpkdW1w
QWlyQXNKU0JlZm9yZUFsbG9jYXRlU3RhY2soKSkgeworICAgICAgICBkYXRhTG9nKCJEdW1waW5n
IEFpciBhcyBKUyBiZWZvcmUgYWxsb2NhdGVTdGFjazpcbiIpOworICAgICAgICBkdW1wQXNKUyhj
b2RlLCBXVEY6OmRhdGFGaWxlKCkpOworICAgIH0KIAogICAgIC8vIFRoaXMgdHVybnMgYWxsIFN0
YWNrIGFuZCBDYWxsQXJnIEFyZ3MgaW50byBBZGRyIGFyZ3MgdGhhdCB1c2UgdGhlIGZyYW1lIHBv
aW50ZXIuIEl0IGRvZXMKICAgICAvLyB0aGlzIGJ5IGZpcnN0LWZpdCBhbGxvY2F0aW5nIHN0YWNr
IHNsb3RzLiBJdCBzaG91bGQgYmUgcHJldHR5IGRhcm4gY2xvc2UgdG8gb3B0aW1hbCwgc28gd2UK
ICAgICAvLyBzaG91bGRuJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCB0aGlzIHZlcnkgbXVjaC4KICAg
ICBhbGxvY2F0ZVN0YWNrKGNvZGUpOworICAgIAorICAgIGlmIChPcHRpb25zOjpkdW1wQWlyQWZ0
ZXJBbGxvY2F0ZVN0YWNrKCkpIHsKKyAgICAgICAgZGF0YUxvZygiRHVtcGluZyBBaXIgYWZ0ZXIg
YWxsb2NhdGVTdGFjazpcbiIpOworICAgICAgICBkYXRhTG9nKGNvZGUpOworICAgIH0KIAogICAg
IC8vIElmIHdlIGNvYWxlc2NlZCBtb3ZlcyB0aGVuIHdlIGNhbiB1bmJyZWFrIGNyaXRpY2FsIGVk
Z2VzLiBUaGlzIGlzIHRoZSBtYWluIHJlYXNvbiBmb3IgdGhpcwogICAgIC8vIHBoYXNlLgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5saW5lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMuaAkocmV2
aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5s
aW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2NSArMzYsMTMgQEAKIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgRm9yRWFjaDsKLXRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8VG1wPiB7Ci0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEluc3Qm
IGluc3QsIGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAgICAgICBpbnN0LmZvckVh
Y2hUbXAoZnVuY3Rvcik7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxB
cmc+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAgIHN0YXRpYyB2b2lkIGZv
ckVhY2goSW5zdCYgaW5zdCwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKLSAgICB7Ci0gICAgICAg
IGluc3QuZm9yRWFjaEFyZyhmdW5jdG9yKTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBGb3JFYWNoPFN0YWNrU2xvdCo+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgot
ICAgIHN0YXRpYyB2b2lkIGZvckVhY2goSW5zdCYgaW5zdCwgY29uc3QgRnVuY3RvciYgZnVuY3Rv
cikKLSAgICB7Ci0gICAgICAgIGluc3QuZm9yRWFjaEFyZygKLSAgICAgICAgICAgIFsmXSAoQXJn
JiBhcmcsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0aCkg
ewotICAgICAgICAgICAgICAgIGlmICghYXJnLmlzU3RhY2soKSkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIFN0YWNrU2xvdCogc3RhY2tTbG90ID0gYXJnLnN0
YWNrU2xvdCgpOwotCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgd2F5IHRvbyBv
cHRpbWlzdGljIGFib3V0IHRoZSBtZWFuaW5nIG9mICJEZWYiLiBJdCBnZXRzIGx1Y2t5IGZvcgot
ICAgICAgICAgICAgICAgIC8vIG5vdyBiZWNhdXNlIG91ciBvbmx5IHVzZSBvZiAiQW5vbnltb3Vz
IiBzdGFjayBzbG90cyBoYXBwZW5zIHRvIHdhbnQgdGhlIG9wdGltaXN0aWMKLSAgICAgICAgICAg
ICAgICAvLyBzZW1hbnRpY3MuIFdlIGNvdWxkIGZpeCB0aGlzIGJ5IGp1c3QgY2hhbmdpbmcgdGhl
IGNvbW1lbnRzIHRoYXQgZGVzY3JpYmUgdGhlCi0gICAgICAgICAgICAgICAgLy8gc2VtYW50aWNz
IG9mICJBbm9ueW1vdXMiLgotICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExMjgKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICBmdW5jdG9yKHN0YWNrU2xvdCwgcm9sZSwgdHlwZSwgd2lkdGgpOwotICAgICAgICAgICAg
ICAgIGFyZyA9IEFyZzo6c3RhY2soc3RhY2tTbG90LCBhcmcub2Zmc2V0KCkpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxSZWc+IHsKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAgIHN0YXRpYyB2b2lkIGZvckVhY2goSW5z
dCYgaW5zdCwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKLSAgICB7Ci0gICAgICAgIGluc3QuZm9y
RWFjaFRtcCgKLSAgICAgICAgICAgIFsmXSAoVG1wJiB0bXAsIEFyZzo6Um9sZSByb2xlLCBBcmc6
OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0aCkgewotICAgICAgICAgICAgICAgIGlmICghdG1w
LmlzUmVnKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAg
IFJlZyByZWcgPSB0bXAucmVnKCk7Ci0gICAgICAgICAgICAgICAgZnVuY3RvcihyZWcsIHJvbGUs
IHR5cGUsIHdpZHRoKTsKLSAgICAgICAgICAgICAgICB0bXAgPSBUbXAocmVnKTsKLSAgICAgICAg
ICAgIH0pOwotICAgIH0KLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFRoaW5nLCB0eXBlbmFtZSBG
dW5jdG9yPgogdm9pZCBJbnN0Ojpmb3JFYWNoKGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCiB7Ci0g
ICAgRm9yRWFjaDxUaGluZz46OmZvckVhY2goKnRoaXMsIGZ1bmN0b3IpOworICAgIGZvckVhY2hB
cmcoCisgICAgICAgIFsmXSAoQXJnJiBhcmcsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlw
ZSwgQXJnOjpXaWR0aCB3aWR0aCkgeworICAgICAgICAgICAgYXJnLmZvckVhY2g8VGhpbmc+KHJv
bGUsIHR5cGUsIHdpZHRoLCBmdW5jdG9yKTsKKyAgICAgICAgfSk7CiB9CiAKIGlubGluZSBjb25z
dCBSZWdpc3RlclNldCYgSW5zdDo6ZXh0cmFDbG9iYmVyZWRSZWdzKCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyTG9nUmVnaXN0ZXJQcmVzc3VyZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb2dSZWdpc3RlclByZXNzdXJl
LmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJMb2dSZWdpc3RlclByZXNzdXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIKICNp
bmNsdWRlICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKICNpbmNsdWRl
ICJBaXJMaXZlbmVzcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJS
ZXBvcnRVc2VkUmVnaXN0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpclJlcG9ydFVzZWRSZWdpc3RlcnMuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclJlcG9ydFVzZWRSZWdpc3RlcnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQog
CisjaW5jbHVkZSAiQWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNs
dWRlICJBaXJJbnN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckxpdmVuZXNzLmgiCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwaWxsRXZlcnl0aGluZy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhpbmcu
Y3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
clNwaWxsRXZlcnl0aGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUgIkFpckluc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkFp
ckluc3RJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29k
ZV9nZW5lcmF0b3IucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9vcGNvZGVfZ2VuZXJhdG9yLnJiCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIJKHdvcmtpbmcgY29weSkKQEAgLTEw
OTAsMyArMTA5MCw5NiBAQCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICBvdXRwLnB1
dHMgIn0gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIiCiB9CiAKKyMgVGhpcyBpcyBhIGhh
Y2sgZm9yIEpTQWlyLiBJdCdzIGEgam9rZS4KK0ZpbGUub3BlbigiSlNBaXJfb3Bjb2RlLmpzIiwg
InciKSB7CisgICAgfCBvdXRwIHwKKyAgICBvdXRwLnB1dHMgIlwidXNlIHN0cmljdFwiOyIKKyAg
ICBvdXRwLnB1dHMgIi8vIEdlbmVyYXRlZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiIGZyb20gI3sk
ZmlsZU5hbWV9IC0tIGRvIG5vdCBlZGl0ISIKKyAgICAKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFj
aCB7CisgICAgICAgIHwgb3Bjb2RlIHwKKyAgICAgICAgb3V0cC5wdXRzICJjb25zdCAje29wY29k
ZS5uYW1lfSA9IFN5bWJvbCgje29wY29kZS5uYW1lLmluc3BlY3R9KTsiCisgICAgfQorICAgIAor
ICAgIG91dHAucHV0cyAiZnVuY3Rpb24gSW5zdF9mb3JFYWNoQXJnKGluc3QsIGZ1bmMpIgorICAg
IG91dHAucHV0cyAieyIKKyAgICBvdXRwLnB1dHMgImxldCByZXBsYWNlbWVudDsiCisgICAgb3V0
cC5wdXRzICJzd2l0Y2ggKGluc3Qub3Bjb2RlKSB7IgorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNo
IHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUu
bmFtZX06IgorICAgICAgICBpZiBvcGNvZGUuY3VzdG9tCisgICAgICAgICAgICBvdXRwLnB1dHMg
IiN7b3Bjb2RlLm5hbWV9Q3VzdG9tLmZvckVhY2hBcmcoaW5zdCwgZnVuYyk7IgorICAgICAgICBl
bHNlCisgICAgICAgICAgICBuZWVkT3ZlcmxvYWRTd2l0Y2ggPSBvcGNvZGUub3ZlcmxvYWRzLnNp
emUgIT0gMQorICAgICAgICAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgp
IHsiIGlmIG5lZWRPdmVybG9hZFN3aXRjaAorICAgICAgICAgICAgb3Bjb2RlLm92ZXJsb2Fkcy5l
YWNoIHsKKyAgICAgICAgICAgICAgICB8IG92ZXJsb2FkIHwKKyAgICAgICAgICAgICAgICBvdXRw
LnB1dHMgImNhc2UgI3tvdmVybG9hZC5zaWduYXR1cmUubGVuZ3RofToiIGlmIG5lZWRPdmVybG9h
ZFN3aXRjaAorICAgICAgICAgICAgICAgIG92ZXJsb2FkLnNpZ25hdHVyZS5lYWNoX3dpdGhfaW5k
ZXggeworICAgICAgICAgICAgICAgICAgICB8IGFyZywgaW5kZXggfAorICAgICAgICAgICAgICAg
ICAgICByb2xlID0gbmlsCisgICAgICAgICAgICAgICAgICAgIGNhc2UgYXJnLnJvbGUKKyAgICAg
ICAgICAgICAgICAgICAgd2hlbiAiVSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAi
VXNlIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJEIgorICAgICAgICAgICAgICAgICAgICAg
ICAgcm9sZSA9ICJEZWYiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlpEIgorICAgICAgICAg
ICAgICAgICAgICAgICAgcm9sZSA9ICJaRGVmIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJV
RCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNlRGVmIgorICAgICAgICAgICAg
ICAgICAgICB3aGVuICJVWkQiCisgICAgICAgICAgICAgICAgICAgICAgICByb2xlID0gIlVzZVpE
ZWYiCisgICAgICAgICAgICAgICAgICAgIHdoZW4gIlVBIgorICAgICAgICAgICAgICAgICAgICAg
ICAgcm9sZSA9ICJVc2VBZGRyIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJTIgorICAgICAg
ICAgICAgICAgICAgICAgICAgcm9sZSA9ICJTY3JhdGNoIgorICAgICAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgICAgICBl
bmQKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG91dHAucHV0cyAi
aW5zdC52aXNpdEFyZygje2luZGV4fSwgZnVuYywgQXJnLiN7cm9sZX0sICN7YXJnLnR5cGV9UCwg
I3thcmcud2lkdGh9KTsiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dHAu
cHV0cyAiYnJlYWs7IgorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgbmVlZE92ZXJsb2Fk
U3dpdGNoCisgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICAgICAgICAg
ICAgICBvdXRwLnB1dHMgInRocm93IG5ldyBFcnJvcihcIkJhZCBvdmVybG9hZFwiKTsiCisgICAg
ICAgICAgICAgICAgb3V0cC5wdXRzICJicmVhazsiCisgICAgICAgICAgICAgICAgb3V0cC5wdXRz
ICJ9IgorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAorICAgICAgICBvdXRwLnB1dHMgImJy
ZWFrOyIKKyAgICB9CisgICAgb3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInRo
cm93IFwiQmFkIG9wY29kZVwiOyIKKyAgICBvdXRwLnB1dHMgIn0iCisgICAgb3V0cC5wdXRzICJ9
IgorICAgIAorICAgIG91dHAucHV0cyAiZnVuY3Rpb24gSW5zdF9oYXNOb25BcmdFZmZlY3RzKGlu
c3QpIgorICAgIG91dHAucHV0cyAieyIKKyAgICBvdXRwLnB1dHMgInN3aXRjaCAoaW5zdC5vcGNv
ZGUpIHsiCisgICAgZm91bmRUcnVlID0gZmFsc2UKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7
CisgICAgICAgIHwgb3Bjb2RlIHwKKyAgICAgICAgaWYgb3Bjb2RlLmF0dHJpYnV0ZXNbOnRlcm1p
bmFsXSBvciBvcGNvZGUuYXR0cmlidXRlc1s6ZWZmZWN0c10KKyAgICAgICAgICAgIG91dHAucHV0
cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBmb3VuZFRydWUgPSB0cnVlCisg
ICAgICAgIGVuZAorICAgIH0KKyAgICBpZiBmb3VuZFRydWUKKyAgICAgICAgb3V0cC5wdXRzICJy
ZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAg
ICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5jdXN0b20KKyAgICAgICAgICAgIG91dHAu
cHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBvdXRwLnB1dHMgInJldHVy
biAje29wY29kZS5uYW1lfUN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsi
CisgICAgICAgIGVuZAorICAgIH0KKyAgICBvdXRwLnB1dHMgImRlZmF1bHQ6IgorICAgIG91dHAu
cHV0cyAicmV0dXJuIGZhbHNlOyIKKyAgICBvdXRwLnB1dHMgIn0iCisgICAgb3V0cC5wdXRzICJ9
IgorfQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuY3BwCShyZXZpc2lvbiAyMDE3MTYp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMz
LDYgKzMzLDE1IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitjb25zdCBjaGFyKiBSZWc6OmRlYnVn
TmFtZSgpIGNvbnN0Cit7CisgICAgaWYgKCEqdGhpcykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgaWYgKGlzR1BSKCkpCisgICAgICAgIHJldHVybiBHUFJJbmZvOjpkZWJ1Z05hbWUoZ3By
KCkpOworICAgIHJldHVybiBGUFJJbmZvOjpkZWJ1Z05hbWUoZnByKCkpOworfQorCiB2b2lkIFJl
Zzo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIGlmICghKnRoaXMpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvUmVnLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw2ICsxNzIsOCBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBtX2luZGV4OwogICAgIH0KICAgICAKKyAgICBjb25zdCBj
aGFyKiBkZWJ1Z05hbWUoKSBjb25zdDsKKyAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0m
KSBjb25zdDsKIAogICAgIGNsYXNzIEFsbFJlZ3NJdGVyYWJsZSB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJFcnJvci5oCShyZXZpc2lvbiAyMDE3MTYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlckVycm9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyMSw0ICsxMjEsNTEgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKK25h
bWVzcGFjZSBXVEYgeworCitpbmxpbmUgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBv
dXQsIEpTQzo6UGFyc2VyRXJyb3I6OlN5bnRheEVycm9yVHlwZSB0eXBlKQoreworICAgIHN3aXRj
aCAodHlwZSkgeworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3JOb25lOgor
ICAgICAgICBvdXQucHJpbnQoIlN5bnRheEVycm9yTm9uZSIpOworICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBKU0M6OlBhcnNlckVycm9yOjpTeW50YXhFcnJvcklycmVjb3ZlcmFibGU6CisgICAg
ICAgIG91dC5wcmludCgiU3ludGF4RXJyb3JJcnJlY292ZXJhYmxlIik7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6OlN5bnRheEVycm9yVW50ZXJtaW5hdGVkTGl0
ZXJhbDoKKyAgICAgICAgb3V0LnByaW50KCJTeW50YXhFcnJvclVudGVybWluYXRlZExpdGVyYWwi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJy
b3JSZWNvdmVyYWJsZToKKyAgICAgICAgb3V0LnByaW50KCJTeW50YXhFcnJvclJlY292ZXJhYmxl
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKworaW5saW5lIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYg
b3V0LCBKU0M6OlBhcnNlckVycm9yOjpFcnJvclR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5
cGUpIHsKKyAgICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6OkVycm9yTm9uZToKKyAgICAgICAgb3V0
LnByaW50KCJFcnJvck5vbmUiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJz
ZXJFcnJvcjo6U3RhY2tPdmVyZmxvdzoKKyAgICAgICAgb3V0LnByaW50KCJTdGFja092ZXJmbG93
Iik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6OkV2YWxFcnJv
cjoKKyAgICAgICAgb3V0LnByaW50KCJFdmFsRXJyb3IiKTsKKyAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6T3V0T2ZNZW1vcnk6CisgICAgICAgIG91dC5wcmludCgi
T3V0T2ZNZW1vcnkiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJv
cjo6U3ludGF4RXJyb3I6CisgICAgICAgIG91dC5wcmludCgiU3ludGF4RXJyb3IiKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogI2VuZGlmIC8vIFBhcnNlckVycm9yX2gKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHJldmlzaW9uIDIwMTcx
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzY4LDYgKzM2OCw5IEBAIHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5n
OwogICAgIHYoYm9vbCwgZHVtcE1vZHVsZUxvYWRpbmdTdGF0ZSwgZmFsc2UsIE5vcm1hbCwgbnVs
bHB0cikgXAogICAgIHYoYm9vbCwgZXhwb3NlSW50ZXJuYWxNb2R1bGVMb2FkZXIsIGZhbHNlLCBO
b3JtYWwsICJleHBvc2UgdGhlIGludGVybmFsIG1vZHVsZSBsb2FkZXIgb2JqZWN0IHRvIHRoZSBn
bG9iYWwgc3BhY2UgZm9yIGRlYnVnZ2luZyIpIFwKICAgICBcCisgICAgdihib29sLCBkdW1wQWly
QXNKU0JlZm9yZUFsbG9jYXRlU3RhY2ssIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2
KGJvb2wsIGR1bXBBaXJBZnRlckFsbG9jYXRlU3RhY2ssIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIp
IFwKKyAgICBcCiAgICAgdihib29sLCB1c2VTdXBlclNhbXBsZXIsIGZhbHNlLCBOb3JtYWwsIG51
bGxwdHIpCiAKIGVudW0gT3B0aW9uRXF1aXZhbGVuY2UgewpJbmRleDogU291cmNlL1dURi9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTcx
NikKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTYtMDYtMDcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgQWlyOjphbGxvY2F0ZVN0YWNrKCkgaW4gRVM2IHRvIHNlZSBob3cgbXVjaCBv
ZiBhIGJhZCBpZGVhIHRoYXQgaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1ODMxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd3RmL0luc2VydGlvbi5oOgorICAgICAgICAoV1RGOjpleGVjdXRlSW5z
ZXJ0aW9ucyk6IEkgZm91bmQgYSBidWcgd2hpbGUgcmV3cml0aW5nIHRoaXMgY29kZSBpbiBKUy4K
KyAgICAgICAgKiB3dGYvUHJpbnRTdHJlYW0uaDoKKyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06
OnByaW50KToKKyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnByaW50bG4pOiBUaGlzIGlzIHVz
ZWZ1bCB0byBoYXZlLgorCiAyMDE2LTA2LTA0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgR2V0IHJpZCBvZiBXb3JrSXRlbVdpbgpJbmRleDogU291cmNl
L1dURi93dGYvSW5zZXJ0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvSW5zZXJ0
aW9uLmgJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9XVEYvd3RmL0luc2VydGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC02MCwxMiArNjAsMTIgQEAgc2l6ZV90IGV4ZWN1dGVJbnNlcnRpb25z
KFRhcmdldFZlY3RvclR5cAogICAgIHNpemVfdCBudW1JbnNlcnRpb25zID0gaW5zZXJ0aW9ucy5z
aXplKCk7CiAgICAgaWYgKCFudW1JbnNlcnRpb25zKQogICAgICAgICByZXR1cm4gMDsKKyAgICBz
aXplX3Qgb3JpZ2luYWxUYXJnZXRTaXplID0gdGFyZ2V0LnNpemUoKTsKICAgICB0YXJnZXQuZ3Jv
dyh0YXJnZXQuc2l6ZSgpICsgbnVtSW5zZXJ0aW9ucyk7CiAgICAgc2l6ZV90IGxhc3RJbmRleCA9
IHRhcmdldC5zaXplKCk7Ci0gICAgc2l6ZV90IG9yaWdpbmFsVGFyZ2V0U2l6ZSA9IHRhcmdldC5z
aXplKCk7CiAgICAgZm9yIChzaXplX3QgaW5kZXhJbkluc2VydGlvbnMgPSBudW1JbnNlcnRpb25z
OyBpbmRleEluSW5zZXJ0aW9ucy0tOykgewogICAgICAgICBBU1NFUlQoIWluZGV4SW5JbnNlcnRp
b25zIHx8IGluc2VydGlvbnNbaW5kZXhJbkluc2VydGlvbnNdLmluZGV4KCkgPj0gaW5zZXJ0aW9u
c1tpbmRleEluSW5zZXJ0aW9ucyAtIDFdLmluZGV4KCkpOwotICAgICAgICBBU1NFUlRfVU5VU0VE
KG9yaWdpbmFsVGFyZ2V0U2l6ZSwgaW5zZXJ0aW9uc1tpbmRleEluSW5zZXJ0aW9uc10uaW5kZXgo
KSA8IG9yaWdpbmFsVGFyZ2V0U2l6ZSk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQob3JpZ2luYWxU
YXJnZXRTaXplLCBpbnNlcnRpb25zW2luZGV4SW5JbnNlcnRpb25zXS5pbmRleCgpIDw9IG9yaWdp
bmFsVGFyZ2V0U2l6ZSk7CiAgICAgICAgIHNpemVfdCBmaXJzdEluZGV4ID0gaW5zZXJ0aW9uc1tp
bmRleEluSW5zZXJ0aW9uc10uaW5kZXgoKSArIGluZGV4SW5JbnNlcnRpb25zOwogICAgICAgICBz
aXplX3QgaW5kZXhPZmZzZXQgPSBpbmRleEluSW5zZXJ0aW9ucyArIDE7CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSBsYXN0SW5kZXg7IC0taSA+IGZpcnN0SW5kZXg7KQpJbmRleDogU291cmNlL1dU
Ri93dGYvUHJpbnRTdHJlYW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QcmludFN0
cmVhbS5oCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5o
CSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHByaW50
SW50ZXJuYWwoKnRoaXMsIHZhbHVlKTsKICAgICAgICAgcHJpbnQocmVtYWluaW5nVmFsdWVzLi4u
KTsKICAgICB9CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+CisgICAgdm9p
ZCBwcmludGxuKGNvbnN0IFR5cGVzJi4uLiB2YWx1ZXMpCisgICAgeworICAgICAgICBwcmludCh2
YWx1ZXMuLi4pOworICAgICAgICBwcmludCgiXG4iKTsKKyAgICB9CiB9OwogCiBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiwgY29uc3QgY2hhciopOwo=
</data>
<flag name="review"
          id="304627"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280737</attachid>
            <date>2016-06-07 14:19:45 -0700</date>
            <delta_ts>2016-06-07 14:19:45 -0700</delta_ts>
            <desc>almost the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>554696</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDE3NzApCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwMyBAQAorMjAxNi0wNi0wNyAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBBaXI6
OmFsbG9jYXRlU3RhY2soKSBpbiBFUzYgdG8gc2VlIGhvdyBtdWNoIG9mIGEgYmFkIGlkZWEgdGhh
dCBpcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4
MzE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisgICAgICAgIAorICAgICAg
ICBUaGlzIGFkZHMgYSBuZXcgYmVuY2htYXJrIGZvciB1cyB0byBwbGF5IHdpdGggY2FsbGVkIEpT
QWlyLiBJdCdzIGEgY29tcGxldGUgRVM2CisgICAgICAgIGltcGxlbWVudGF0aW9uIG9mIEFpcidz
IGFsbG9jYXRlU3RhY2soKSBwaGFzZSBhbG9uZyB3aXRoIGFsbCBvZiBBaXIgbmVlZGVkIHRvIHJ1
biB0aGF0CisgICAgICAgIHBoYXNlLiBUaGlzIGluY2x1ZGVzIHRoaW5ncyBsaWtlIHN0YWNrIHNs
b3RzLCByZWdpc3RlcnMsIHRlbXBvcmFyaWVzLCBiYXNpYyBibG9ja3MsCisgICAgICAgIGluc3Ry
dWN0aW9ucywgYW5kIGFsbCBvZiB0aGUgY29kZSBmb3IgaXRlcmF0aW5nIG92ZXIsIGluc3BlY3Rp
bmcsIGFuZCBtb2RpZnlpbmcgdGhvc2UKKyAgICAgICAgdGhpbmdzLgorICAgICAgICAKKyAgICAg
ICAgVG8gbWFrZSB0aGlzIHdvcmssIEpTQyBjYW4gbm93IGR1bXAgQWlyIGp1c3QgYmVmb3JlIGFs
bG9jYXRlU3RhY2soKSBpbiB0aGUgZm9ybSBvZiBKUyBjb2RlCisgICAgICAgIHRoYXQgY3JlYXRl
cyBhIENvZGUgb2JqZWN0IHRoYXQgbWF0Y2hlcyBleGFjdGx5IHdoYXQgQysrIEFpciBzYXcuIFRo
aXMgYmVuY2htYXJrIGNvbXByaXNlcworICAgICAgICBmb3VyIEFpciBJUnM6CisgICAgICAgIAor
ICAgICAgICAtIE9jdGFuZS9nYmVtdSdzIGxhcmdlc3QgZnVuY3Rpb24sIGV4ZWN1dGVJdGVyYXRp
b24uCisgICAgICAgIC0gS3Jha2VuL2ltYWdpbmctZ2F1c3NpYW4tYmx1cidzIGxhcmdlc3QgZnVu
Y3Rpb24gaW4gT1NSIGVudHJ5IG1vZGUsIGdhdXNzdWFuQmx1ci4KKyAgICAgICAgLSBPY3RhbmUv
dHlwZXNjcmlwdCdzIGxhcmdlc3QgZnVuY3Rpb24gdGhhdCBpcyBhY3R1YWxseSBob3QsIHNjYW5J
ZGVudGlmaWVyLgorICAgICAgICAtIEpTQWlyJ3MgbGFyZ2VzdCBob3QgZnVuY3Rpb24sIHdoaWNo
IGlzIGFub255bW91cywgc28gd2UgY2FsbCBpdCBieSBpdHMgaGFzaCAoQUNMajhDKS4KKyAgICAg
ICAgCisgICAgICAgIFRoaXMgcnVucyBpbiBhYm91dCAyIHNlY29uZHMgb24gbXkgbWFjaGluZSBp
biBKU0MgdHJ1bmsuIEl0IGluY2x1ZGVzIGJvdGggYSBjb21tYW5kbGluZQorICAgICAgICBoYXJu
ZXNzIGFuZCBhIHdlYiBoYXJuZXNzLgorICAgICAgICAKKyAgICAgICAgSlNBaXIgdXNlcyB0aGUg
Zm9sbG93aW5nIEVTNiBmZWF0dXJlczoKKyAgICAgICAgCisgICAgICAgIC0gU3ltYm9sLgorICAg
ICAgICAtIGZvci1vZi4KKyAgICAgICAgLSBhcnJvdyBmdW5jdGlvbnMuCisgICAgICAgIC0gTWFw
L1NldC4KKyAgICAgICAgLSBsZXQvY29uc3QuCisgICAgICAgIC0gY2xhc3Nlcy4KKyAgICAgICAg
CisgICAgICAgIEFsbCBvZiB0aGVzZSB0aGluZ3MgYXJlIHVzZWQgaW4gYW5nZXIgYW5kIHNob3Vs
ZCBlbmQgdXAgb24gdGhlIGhvdCBwYXRoLiBUaGVyZSBpcyBhbHNvIGNvZGUKKyAgICAgICAgdGhh
dCB1c2VzIFByb3hpZXMsIGJ1dCBpdCBlbmRzIHVwIGJlaW5nIGRlYWQuCisgICAgICAgIAorICAg
ICAgICAqIEpTQWlyOiBBZGRlZC4KKyAgICAgICAgKiBKU0Fpci9hbGwuanM6IEFkZGVkLgorICAg
ICAgICAqIEpTQWlyL2FsbG9jYXRlX3N0YWNrLmpzOiBBZGRlZC4KKyAgICAgICAgKGFsbG9jYXRl
U3RhY2suYXR0ZW1wdEFzc2lnbm1lbnQpOgorICAgICAgICAoYWxsb2NhdGVTdGFjay5hc3NpZ24p
OgorICAgICAgICAoYWxsb2NhdGVTdGFjay5pbnRlcmZlcmUpOgorICAgICAgICAoYWxsb2NhdGVT
dGFjay4pOgorICAgICAgICAoYWxsb2NhdGVTdGFjayk6CisgICAgICAgICogSlNBaXIvYXJnLmpz
OiBBZGRlZC4KKyAgICAgICAgKEFyZyk6CisgICAgICAgIChBcmcuaXNBbnlVc2UpOgorICAgICAg
ICAoQXJnLmlzQ29sZFVzZSk6CisgICAgICAgIChBcmcuaXNXYXJtVXNlKToKKyAgICAgICAgKEFy
Zy5jb29sZWQpOgorICAgICAgICAoQXJnLmlzRWFybHlVc2UpOgorICAgICAgICAoQXJnLmlzTGF0
ZVVzZSk6CisgICAgICAgIChBcmcuaXNBbnlEZWYpOgorICAgICAgICAoQXJnLmlzRWFybHlEZWYp
OgorICAgICAgICAoQXJnLmlzTGF0ZURlZik6CisgICAgICAgIChBcmcuaXNaRGVmKToKKyAgICAg
ICAgKEFyZy50eXBlRm9yQjNUeXBlKToKKyAgICAgICAgKEFyZy53aWR0aEZvckIzVHlwZSk6Cisg
ICAgICAgIChBcmcuY29uc2VydmF0aXZlV2lkdGgpOgorICAgICAgICAoQXJnLm1pbmltdW1XaWR0
aCk6CisgICAgICAgIChBcmcuYnl0ZXMpOgorICAgICAgICAoQXJnLndpZHRoRm9yQnl0ZXMpOgor
ICAgICAgICAoQXJnLmNyZWF0ZVRtcCk6CisgICAgICAgIChBcmcuZnJvbVJlZyk6CisgICAgICAg
IChBcmcuY3JlYXRlSW1tKToKKyAgICAgICAgKEFyZy5jcmVhdGVCaWdJbW0pOgorICAgICAgICAo
QXJnLmNyZWF0ZUJpdEltbSk6CisgICAgICAgIChBcmcuY3JlYXRlQml0SW1tNjQpOgorICAgICAg
ICAoQXJnLmNyZWF0ZUFkZHIpOgorICAgICAgICAoQXJnLmNyZWF0ZVN0YWNrKToKKyAgICAgICAg
KEFyZy5jcmVhdGVDYWxsQXJnKToKKyAgICAgICAgKEFyZy5jcmVhdGVTdGFja0FkZHIpOgorICAg
ICAgICAoQXJnLmlzVmFsaWRTY2FsZSk6CisgICAgICAgIChBcmcubG9nU2NhbGUpOgorICAgICAg
ICAoQXJnLmNyZWF0ZUluZGV4KToKKyAgICAgICAgKEFyZy5jcmVhdGVSZWxDb25kKToKKyAgICAg
ICAgKEFyZy5jcmVhdGVSZXNDb25kKToKKyAgICAgICAgKEFyZy5jcmVhdGVEb3VibGVDb25kKToK
KyAgICAgICAgKEFyZy5jcmVhdGVXaWR0aCk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBr
aW5kKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzVG1wKToKKyAgICAgICAgKEFyZy5w
cm90b3R5cGUuZ2V0IGlzSW1tKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzQmlnSW1t
KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzQml0SW1tKToKKyAgICAgICAgKEFyZy5w
cm90b3R5cGUuZ2V0IGlzQml0SW1tNjQpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgaXNT
b21lSW1tKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzQWRkcik6CisgICAgICAgIChB
cmcucHJvdG90eXBlLmdldCBpc1N0YWNrKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlz
Q2FsbEFyZyk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBpc0luZGV4KToKKyAgICAgICAg
KEFyZy5wcm90b3R5cGUuZ2V0IGlzTWVtb3J5KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0
IGlzU3RhY2tNZW1vcnkpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgaXNSZWxDb25kKToK
KyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzUmVzQ29uZCk6CisgICAgICAgIChBcmcucHJv
dG90eXBlLmdldCBpc0RvdWJsZUNvbmQpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgaXND
b25kaXRpb24pOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgaXNXaWR0aCk6CisgICAgICAg
IChBcmcucHJvdG90eXBlLmdldCBpc0FsaXZlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0
IHRtcCk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAgICAgIChBcmcu
cHJvdG90eXBlLmdldCBiYXNlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGhhc09mZnNl
dCk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBvZmZzZXQpOgorICAgICAgICAoQXJnLnBy
b3RvdHlwZS5nZXQgc3RhY2tTbG90KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGluZGV4
KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IHNjYWxlKToKKyAgICAgICAgKEFyZy5wcm90
b3R5cGUuZ2V0IGxvZ1NjYWxlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IHdpZHRoKToK
KyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzR1BUbXApOgorICAgICAgICAoQXJnLnByb3Rv
dHlwZS5nZXQgaXNGUFRtcCk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBpc0dQKToKKyAg
ICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IGlzRlApOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5n
ZXQgaGFzVHlwZSk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAgICAg
KEFyZy5wcm90b3R5cGUuaXNUeXBlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuaXNDb21wYXRp
YmxlVHlwZSk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBpc0dQUik6CisgICAgICAgIChB
cmcucHJvdG90eXBlLmdldCBncHIpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgaXNGUFIp
OgorICAgICAgICAoQXJnLnByb3RvdHlwZS5nZXQgZnByKToKKyAgICAgICAgKEFyZy5wcm90b3R5
cGUuZ2V0IGlzUmVnKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZ2V0IHJlZyk6CisgICAgICAg
IChBcmcuaXNWYWxpZEltbUZvcm0pOgorICAgICAgICAoQXJnLmlzVmFsaWRCaXRJbW1Gb3JtKToK
KyAgICAgICAgKEFyZy5pc1ZhbGlkQml0SW1tNjRGb3JtKToKKyAgICAgICAgKEFyZy5pc1ZhbGlk
QWRkckZvcm0pOgorICAgICAgICAoQXJnLmlzVmFsaWRJbmRleEZvcm0pOgorICAgICAgICAoQXJn
LnByb3RvdHlwZS5pc1ZhbGlkRm9ybSk6CisgICAgICAgIChBcmcucHJvdG90eXBlLmZvckVhY2hU
bXBGYXN0KToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUudXNlc1RtcCk6CisgICAgICAgIChBcmcu
cHJvdG90eXBlLmZvckVhY2hUbXApOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5pcyk6CisgICAg
ICAgIChBcmcucHJvdG90eXBlLmFzKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUuZm9yRWFjaEZh
c3QpOgorICAgICAgICAoQXJnLnByb3RvdHlwZS5mb3JFYWNoKToKKyAgICAgICAgKEFyZy5leHRy
YWN0KToKKyAgICAgICAgKEFyZy5mb3JFYWNoRmFzdCk6CisgICAgICAgIChBcmcuZm9yRWFjaCk6
CisgICAgICAgIChBcmcucHJvdG90eXBlLmdldCBjb25kaXRpb24pOgorICAgICAgICAoQXJnLnBy
b3RvdHlwZS5nZXQgaXNJbnZlcnRpYmxlKToKKyAgICAgICAgKEFyZy5wcm90b3R5cGUudG9TdHJp
bmcpOgorICAgICAgICAqIEpTQWlyL2Jhc2ljX2Jsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEJh
c2ljQmxvY2spOgorICAgICAgICAoQmFzaWNCbG9jay5wcm90b3R5cGUuZ2V0IGluZGV4KToKKyAg
ICAgICAgKEJhc2ljQmxvY2sucHJvdG90eXBlLmdldCBzaXplKToKKyAgICAgICAgKEJhc2ljQmxv
Y2sucHJvdG90eXBlLlN5bWJvbC5pdGVyYXRvcik6CisgICAgICAgIChCYXNpY0Jsb2NrLnByb3Rv
dHlwZS5hdCk6CisgICAgICAgIChCYXNpY0Jsb2NrLmdldCBsYXN0KToKKyAgICAgICAgKEJhc2lj
QmxvY2suZ2V0IGluc3RzKToKKyAgICAgICAgKEJhc2ljQmxvY2suZ2V0IG51bVN1Y2Nlc3NvcnMp
OgorICAgICAgICAoQmFzaWNCbG9jay5nZXQgc3VjY2Vzc29ycyk6CisgICAgICAgIChCYXNpY0Js
b2NrLmdldCBzdWNjZXNzb3JCbG9ja3MuKToKKyAgICAgICAgKEJhc2ljQmxvY2suZ2V0IHN1Y2Nl
c3NvckJsb2Nrcyk6CisgICAgICAgIChCYXNpY0Jsb2NrLnNldCBnZXQgbnVtUHJlZGVjZXNzb3Jz
KToKKyAgICAgICAgKEJhc2ljQmxvY2suZ2V0IHByZWRlY2Vzc29ycyk6CisgICAgICAgIChCYXNp
Y0Jsb2NrLmdldCBmcmVxdWVuY3kpOgorICAgICAgICAoQmFzaWNCbG9jay5nZXQgaGVhZGVyU3Ry
aW5nKToKKyAgICAgICAgKEJhc2ljQmxvY2suZ2V0IGZvb3RlclN0cmluZyk6CisgICAgICAgICog
SlNBaXIvYmVuY2htYXJrLmpzOiBBZGRlZC4KKyAgICAgICAgKGJlbmNobWFyayk6CisgICAgICAg
ICogSlNBaXIvY29kZS5qczogQWRkZWQuCisgICAgICAgIChDb2RlKToKKyAgICAgICAgKENvZGUu
cHJvdG90eXBlLmFkZEJsb2NrKToKKyAgICAgICAgKENvZGUucHJvdG90eXBlLmFkZFN0YWNrU2xv
dCk6CisgICAgICAgIChDb2RlLnByb3RvdHlwZS5uZXdUbXApOgorICAgICAgICAoQ29kZS5wcm90
b3R5cGUuZ2V0IHNpemUpOgorICAgICAgICAoQ29kZS5wcm90b3R5cGUuYXQpOgorICAgICAgICAo
Q29kZS5wcm90b3R5cGUuU3ltYm9sLml0ZXJhdG9yKToKKyAgICAgICAgKENvZGUucHJvdG90eXBl
LmdldCBibG9ja3MpOgorICAgICAgICAoQ29kZS5wcm90b3R5cGUuZ2V0IHN0YWNrU2xvdHMpOgor
ICAgICAgICAoQ29kZS5wcm90b3R5cGUudG1wcyk6CisgICAgICAgIChDb2RlLnByb3RvdHlwZS5n
ZXQgY2FsbEFyZ0FyZWFTaXplKToKKyAgICAgICAgKENvZGUucHJvdG90eXBlLnJlcXVlc3RDYWxs
QXJnQXJlYVNpemUpOgorICAgICAgICAoQ29kZS5wcm90b3R5cGUuZ2V0IGZyYW1lU2l6ZSk6Cisg
ICAgICAgIChDb2RlLnByb3RvdHlwZS5zZXRGcmFtZVNpemUpOgorICAgICAgICAoQ29kZS5wcm90
b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAqIEpTQWlyL2N1c3RvbS5qczogQWRkZWQuCisgICAg
ICAgIChjb25zdC5TaHVmZmxlQ3VzdG9tLmZvckVhY2hBcmcpOgorICAgICAgICAoY29uc3QuU2h1
ZmZsZUN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyk6CisgICAgICAgIChjb25zdC5Q
YXRjaEN1c3RvbS5mb3JFYWNoQXJnKToKKyAgICAgICAgKGNvbnN0LlBhdGNoQ3VzdG9tLmhhc05v
bkFyZ05vbkNvbnRyb2xFZmZlY3RzKToKKyAgICAgICAgKGNvbnN0LkNDYWxsQ3VzdG9tLmZvckVh
Y2hBcmcpOgorICAgICAgICAoY29uc3QuQ0NhbGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMpOgorICAgICAgICAoY29uc3QuQ29sZENDYWxsQ3VzdG9tLmZvckVhY2hBcmcpOgorICAg
ICAgICAoY29uc3QuQ29sZENDYWxsQ3VzdG9tLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKToK
KyAgICAgICAgKiBKU0Fpci9mcmVxdWVudGVkX2Jsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKEZy
ZXF1ZW50ZWRCbG9jayk6CisgICAgICAgIChGcmVxdWVudGVkQmxvY2sucHJvdG90eXBlLnRvU3Ry
aW5nKToKKyAgICAgICAgKiBKU0Fpci9pbnNlcnRpb25fc2V0LmpzOiBBZGRlZC4KKyAgICAgICAg
KEluc2VydGlvbik6CisgICAgICAgIChJbnNlcnRpb24ucHJvdG90eXBlLmdldCBpbmRleCk6Cisg
ICAgICAgIChJbnNlcnRpb24ucHJvdG90eXBlLmdldCBlbGVtZW50KToKKyAgICAgICAgKEluc2Vy
dGlvbi5wcm90b3R5cGUubGVzc1RoYW4pOgorICAgICAgICAoSW5zZXJ0aW9uU2V0KToKKyAgICAg
ICAgKEluc2VydGlvblNldC5wcm90b3R5cGUuYXBwZW5kSW5zZXJ0aW9uKToKKyAgICAgICAgKElu
c2VydGlvblNldC5wcm90b3R5cGUuYXBwZW5kKToKKyAgICAgICAgKEluc2VydGlvblNldC5wcm90
b3R5cGUuZXhlY3V0ZSk6CisgICAgICAgICogSlNBaXIvaW5zdC5qczogQWRkZWQuCisgICAgICAg
IChJbnN0KToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLmFwcGVuZCk6CisgICAgICAgIChJbnN0
LnByb3RvdHlwZS5jbGVhcik6CisgICAgICAgIChJbnN0LnByb3RvdHlwZS5nZXQgb3Bjb2RlKToK
KyAgICAgICAgKEluc3QucHJvdG90eXBlLmdldCBhcmdzKToKKyAgICAgICAgKEluc3QucHJvdG90
eXBlLnZpc2l0QXJnKToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLmZvckVhY2hUbXBGYXN0KToK
KyAgICAgICAgKEluc3QucHJvdG90eXBlLmZvckVhY2hBcmcpOgorICAgICAgICAoSW5zdC5wcm90
b3R5cGUuZm9yRWFjaFRtcCk6CisgICAgICAgIChJbnN0LnByb3RvdHlwZS5mb3JFYWNoKToKKyAg
ICAgICAgKEluc3QuZm9yRWFjaERlZik6CisgICAgICAgIChJbnN0LmZvckVhY2hEZWZXaXRoRXh0
cmFDbG9iYmVyZWRSZWdzKToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLmdldCBoYXNOb25BcmdF
ZmZlY3RzKToKKyAgICAgICAgKEluc3QucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKiBK
U0Fpci9saXZlbmVzcy5qczogQWRkZWQuCisgICAgICAgIChMaXZlbmVzcyk6CisgICAgICAgIChM
aXZlbmVzcy5wcm90b3R5cGUuZ2V0IHRoaW5nKToKKyAgICAgICAgKExpdmVuZXNzLnByb3RvdHlw
ZS5nZXQgY29kZSk6CisgICAgICAgIChMaXZlbmVzcy5wcm90b3R5cGUuZ2V0IGxpdmVBdEhlYWQp
OgorICAgICAgICAoTGl2ZW5lc3MucHJvdG90eXBlLmdldCBsaXZlQXRUYWlsKToKKyAgICAgICAg
KExpdmVuZXNzLnByb3RvdHlwZS5sb2NhbENhbGMuTG9jYWxDYWxjKToKKyAgICAgICAgKExpdmVu
ZXNzLnByb3RvdHlwZS5sb2NhbENhbGMuTG9jYWxDYWxjLnByb3RvdHlwZS5nZXQgbGl2ZVNldCk6
CisgICAgICAgIChMaXZlbmVzcy5wcm90b3R5cGUubG9jYWxDYWxjLkxvY2FsQ2FsYy5wcm90b3R5
cGUuZXhlY3V0ZSk6CisgICAgICAgIChMaXZlbmVzcy5wcm90b3R5cGUubG9jYWxDYWxjKToKKyAg
ICAgICAgKiBKU0Fpci9vcGNvZGUuanM6IEFkZGVkLgorICAgICAgICAoSW5zdF9mb3JFYWNoQXJn
KToKKyAgICAgICAgKEluc3RfaGFzTm9uQXJnRWZmZWN0cyk6CisgICAgICAgICogSlNBaXIvcGF5
bG9hZC1nYmVtdS1leGVjdXRlSXRlcmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZVBh
eWxvYWRHYmVtdUV4ZWN1dGVJdGVyYXRpb24pOgorICAgICAgICAqIEpTQWlyL3BheWxvYWQtaW1h
Z2luZy1nYXVzc2lhbi1ibHVyLWdhdXNzaWFuQmx1ci5qczogQWRkZWQuCisgICAgICAgIChjcmVh
dGVQYXlsb2FkSW1hZ2luZ0dhdXNzaWFuQmx1ckdhdXNzaWFuQmx1cik6CisgICAgICAgICogSlNB
aXIvcGF5bG9hZC1qc2Fpci1BQ0xqOEMuanM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlUGF5bG9h
ZEpTQWlyQUNMajhDKToKKyAgICAgICAgKiBKU0Fpci9wYXlsb2FkLXR5cGVzY3JpcHQtc2Nhbklk
ZW50aWZpZXIuanM6IEFkZGVkLgorICAgICAgICAoY3JlYXRlUGF5bG9hZFR5cGVzY3JpcHRTY2Fu
SWRlbnRpZmllcik6CisgICAgICAgICogSlNBaXIvcmVnLmpzOiBBZGRlZC4KKyAgICAgICAgKFJl
Zyk6CisgICAgICAgIChSZWcuZnJvbVJlZyk6CisgICAgICAgIChSZWcucHJvdG90eXBlLmdldCBp
bmRleCk6CisgICAgICAgIChSZWcucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAgICAgKFJlZy5w
cm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoUmVnLnByb3RvdHlwZS5nZXQgaXNDYWxsZWVT
YXZlKToKKyAgICAgICAgKFJlZy5wcm90b3R5cGUuZ2V0IGlzUmVnKToKKyAgICAgICAgKFJlZy5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoUmVnLmV4dHJhY3QpOgorICAgICAgICAoUmVn
LmZvckVhY2hGYXN0KToKKyAgICAgICAgKFJlZy5mb3JFYWNoKToKKyAgICAgICAgKG5ld0dQUik6
CisgICAgICAgIChSZWcuZ3Bycy5SZWcuZnBycy5SZWcuY2FsbGVlU2F2ZUdQUnMuUmVnLmNhbGxl
ZVNhdmVGUFJzLlJlZy5jYWxsZWVTYXZlcyk6CisgICAgICAgICogSlNBaXIvc3RhY2tfc2xvdC5q
czogQWRkZWQuCisgICAgICAgIChTdGFja1Nsb3QpOgorICAgICAgICAoU3RhY2tTbG90LnByb3Rv
dHlwZS5nZXQgYnl0ZVNpemUpOgorICAgICAgICAoU3RhY2tTbG90LnByb3RvdHlwZS5nZXQga2lu
ZCk6CisgICAgICAgIChTdGFja1Nsb3QucHJvdG90eXBlLmdldCBpc0xvY2tlZCk6CisgICAgICAg
IChTdGFja1Nsb3QucHJvdG90eXBlLmdldCBpc1NwaWxsKToKKyAgICAgICAgKFN0YWNrU2xvdC5w
cm90b3R5cGUuZ2V0IGluZGV4KToKKyAgICAgICAgKFN0YWNrU2xvdC5wcm90b3R5cGUuZW5zdXJl
U2l6ZSk6CisgICAgICAgIChTdGFja1Nsb3QucHJvdG90eXBlLmdldCBhbGlnbm1lbnQpOgorICAg
ICAgICAoU3RhY2tTbG90LnByb3RvdHlwZS5nZXQgb2Zmc2V0RnJvbUZQKToKKyAgICAgICAgKFN0
YWNrU2xvdC5wcm90b3R5cGUuc2V0T2Zmc2V0RnJvbUZQKToKKyAgICAgICAgKFN0YWNrU2xvdC5w
cm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoU3RhY2tTbG90LmV4dHJhY3QpOgorICAgICAg
ICAoU3RhY2tTbG90LmZvckVhY2hGYXN0KToKKyAgICAgICAgKFN0YWNrU2xvdC5mb3JFYWNoKToK
KyAgICAgICAgKiBKU0Fpci9zeW1ib2xzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBKU0Fpci90ZXN0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIEpTQWlyL3Rlc3QuanM6IEFkZGVkLgorICAgICAgICAq
IEpTQWlyL3RtcC5qczogQWRkZWQuCisgICAgICAgIChUbXApOgorICAgICAgICAoVG1wLmZyb21S
ZWcpOgorICAgICAgICAoVG1wLnByb3RvdHlwZS5nZXQgaW5kZXgpOgorICAgICAgICAoVG1wLnBy
b3RvdHlwZS5nZXQgdHlwZSk6CisgICAgICAgIChUbXAucHJvdG90eXBlLmdldCBpc1JlZyk6Cisg
ICAgICAgIChUbXAucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFRtcC5leHRyYWN0KToK
KyAgICAgICAgKFRtcC5mb3JFYWNoRmFzdCk6CisgICAgICAgIChUbXAuZm9yRWFjaCk6CisgICAg
ICAgICogSlNBaXIvdG1wX2Jhc2UuanM6IEFkZGVkLgorICAgICAgICAoVG1wQmFzZS5wcm90b3R5
cGUuZ2V0IGlzR1ApOgorICAgICAgICAoVG1wQmFzZS5wcm90b3R5cGUuZ2V0IGlzRlApOgorICAg
ICAgICAoVG1wQmFzZS5wcm90b3R5cGUuZ2V0IGlzR1BSKToKKyAgICAgICAgKFRtcEJhc2UucHJv
dG90eXBlLmdldCBpc0ZQUik6CisgICAgICAgIChUbXBCYXNlLnByb3RvdHlwZS5nZXQgcmVnKToK
KyAgICAgICAgKFRtcEJhc2UucHJvdG90eXBlLmdldCBncHIpOgorICAgICAgICAoVG1wQmFzZS5w
cm90b3R5cGUuZ2V0IGZwcik6CisgICAgICAgIChUbXBCYXNlKToKKyAgICAgICAgKiBKU0Fpci91
dGlsLmpzOiBBZGRlZC4KKyAgICAgICAgKGlzUmVwcmVzZW50YWJsZUFzSW50MzIpOgorICAgICAg
ICAoYWRkSW5kZXhlZCk6CisgICAgICAgIChyb3VuZFVwVG9NdWx0aXBsZU9mKToKKyAgICAgICAg
KHN5bWJvbE5hbWUpOgorICAgICAgICAobWVyZ2VJbnRvU2V0KToKKyAgICAgICAgKG5vbkVtcHR5
UmFuZ2VzT3ZlcmxhcCk6CisgICAgICAgIChyYW5nZXNPdmVybGFwKToKKyAgICAgICAgKHJlbW92
ZUFsbE1hdGNoaW5nKToKKyAgICAgICAgKHN3YXApOgorICAgICAgICAoYnViYmxlKToKKyAgICAg
ICAgKGJ1YmJsZVNvcnQpOgorICAgICAgICAoY3VycmVudFRpbWUpOgorICAgICAgICAoZWxzZS5j
dXJyZW50VGltZSk6CisKIDIwMTYtMDUtMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gQWxsb3cgSlNCZW5jaCB0byB1c2UgcHJlY2lzZSB0
aW1lCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FsbC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQ
ZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FsbC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNl
VGVzdHMvSlNBaXIvYWxsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKKyJ1c2Ug
c3RyaWN0IjsKKworbG9hZCgic3ltYm9scy5qcyIpOworbG9hZCgidG1wX2Jhc2UuanMiKTsKK2xv
YWQoImFyZy5qcyIpOworbG9hZCgiYmFzaWNfYmxvY2suanMiKTsKK2xvYWQoImNvZGUuanMiKTsK
K2xvYWQoImZyZXF1ZW50ZWRfYmxvY2suanMiKTsKK2xvYWQoImluc3QuanMiKTsKK2xvYWQoIm9w
Y29kZS5qcyIpOworbG9hZCgicmVnLmpzIik7Citsb2FkKCJzdGFja19zbG90LmpzIik7Citsb2Fk
KCJ0bXAuanMiKTsKK2xvYWQoInV0aWwuanMiKTsKK2xvYWQoImN1c3RvbS5qcyIpOworbG9hZCgi
bGl2ZW5lc3MuanMiKTsKK2xvYWQoImluc2VydGlvbl9zZXQuanMiKTsKK2xvYWQoImFsbG9jYXRl
X3N0YWNrLmpzIik7CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FsbG9jYXRlX3N0YWNr
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYWxsb2NhdGVfc3RhY2su
anMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FsbG9jYXRlX3N0YWNr
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjUzIEBACisidXNlIHN0cmljdCI7CisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2Z1bmN0aW9uIGFsbG9j
YXRlU3RhY2soY29kZSkKK3sKKyAgICBpZiAoY29kZS5mcmFtZVNpemUpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRnJhbWUgc2l6ZSBhbHJlYWR5IGRldGVybWluZWQiKTsKKyAgICAKKyAgICBm
dW5jdGlvbiBhdHRlbXB0QXNzaWdubWVudChzbG90LCBvZmZzZXRGcm9tRlAsIG90aGVyU2xvdHMp
CisgICAgeworICAgICAgICBpZiAob2Zmc2V0RnJvbUZQID4gMCkKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiRXhwZWN0IG5lZ2F0aXZlIG9mZnNldCIpOworICAgICAgICAKKyAgICAgICAg
b2Zmc2V0RnJvbUZQID0gLXJvdW5kVXBUb011bHRpcGxlT2Yoc2xvdC5hbGlnbm1lbnQsIC1vZmZz
ZXRGcm9tRlApOworICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgb3RoZXJTbG90IG9mIG90aGVy
U2xvdHMpIHsKKyAgICAgICAgICAgIGlmICghb3RoZXJTbG90Lm9mZnNldEZyb21GUCkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGxldCBvdmVybGFwID0gcmFuZ2VzT3Zl
cmxhcCgKKyAgICAgICAgICAgICAgICBvZmZzZXRGcm9tRlAsCisgICAgICAgICAgICAgICAgb2Zm
c2V0RnJvbUZQICsgc2xvdC5ieXRlU2l6ZSwKKyAgICAgICAgICAgICAgICBvdGhlclNsb3Qub2Zm
c2V0RnJvbUZQLAorICAgICAgICAgICAgICAgIG90aGVyU2xvdC5vZmZzZXRGcm9tRlAgKyBvdGhl
clNsb3QuYnl0ZVNpemUpOworICAgICAgICAgICAgaWYgKG92ZXJsYXApCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzbG90LnNldE9m
ZnNldEZyb21GUChvZmZzZXRGcm9tRlApOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cisg
ICAgCisgICAgZnVuY3Rpb24gYXNzaWduKHNsb3QsIG90aGVyU2xvdHMpCisgICAgeworICAgICAg
ICBpZiAoYXR0ZW1wdEFzc2lnbm1lbnQoc2xvdCwgLXNsb3QuYnl0ZVNpemUsIG90aGVyU2xvdHMp
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgb3RoZXJT
bG90IG9mIG90aGVyU2xvdHMpIHsKKyAgICAgICAgICAgIGlmICghb3RoZXJTbG90Lm9mZnNldEZy
b21GUCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChhdHRlbXB0
QXNzaWdubWVudChzbG90LCBvdGhlclNsb3Qub2Zmc2V0RnJvbUZQIC0gc2xvdC5ieXRlU2l6ZSwg
b3RoZXJTbG90cykpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFzc2lnbm1lbnQgZmFpbGVkIik7CisgICAgfQor
ICAgIAorICAgIC8vIEFsbG9jYXRlIGFsbCBvZiB0aGUgZXNjYXBlZCBzbG90cyBpbiBvcmRlci4g
VGhpcyBpcyBraW5kIG9mIGEgY3JhenkgYWxnb3JpdGhtIHRvIGFsbG93IGZvcgorICAgIC8vIHRo
ZSBwb3NzaWJpbGl0eSBvZiBzdGFjayBzbG90cyBiZWluZyBhc3NpZ25lZCBmcmFtZSBvZmZzZXRz
IGJlZm9yZSB3ZSBldmVuIGdldCBoZXJlLgorICAgIGxldCBhc3NpZ25lZEVzY2FwZWRTdGFja1Ns
b3RzID0gW107CisgICAgbGV0IGVzY2FwZWRTdGFja1Nsb3RzV29ya2xpc3QgPSBbXTsKKyAgICBm
b3IgKGxldCBzbG90IG9mIGNvZGUuc3RhY2tTbG90cykgeworICAgICAgICBpZiAoc2xvdC5pc0xv
Y2tlZCkgeworICAgICAgICAgICAgaWYgKHNsb3Qub2Zmc2V0RnJvbUZQKQorICAgICAgICAgICAg
ICAgIGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHMucHVzaChzbG90KTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBlc2NhcGVkU3RhY2tTbG90c1dvcmtsaXN0LnB1c2goc2xvdCk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoc2xvdC5vZmZzZXRGcm9tRlApCisg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJPZmZzZXQgYWxyZWFkeSBhc3NpZ25lZCIp
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIFRoaXMgaXMgYSBmYWlybHkgZXNwZW5z
aXZlIGxvb3AsIGJ1dCBpdCdzIE9LIGJlY2F1c2Ugd2UnbGwgdXN1YWxseSBvbmx5IGhhdmUgYSBo
YW5kZnVsIG9mCisgICAgLy8gZXNjYXBlZCBzdGFjayBzbG90cy4KKyAgICB3aGlsZSAoZXNjYXBl
ZFN0YWNrU2xvdHNXb3JrbGlzdC5sZW5ndGgpIHsKKyAgICAgICAgbGV0IHNsb3QgPSBlc2NhcGVk
U3RhY2tTbG90c1dvcmtsaXN0LnBvcCgpOworICAgICAgICBhc3NpZ24oc2xvdCwgYXNzaWduZWRF
c2NhcGVkU3RhY2tTbG90cyk7CisgICAgICAgIGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHMucHVz
aChzbG90KTsKKyAgICB9CisgICAgCisgICAgLy8gTm93IHdlIGhhbmRsZSB0aGUgc3BpbGwgc2xv
dHMuCisgICAgbGV0IGxpdmVuZXNzID0gbmV3IExpdmVuZXNzKFN0YWNrU2xvdCwgY29kZSk7Cisg
ICAgbGV0IGludGVyZmVyZW5jZSA9IG5ldyBNYXAoKTsKKyAgICBmb3IgKGxldCBzbG90IG9mIGNv
ZGUuc3RhY2tTbG90cykKKyAgICAgICAgaW50ZXJmZXJlbmNlLnNldChzbG90LCBuZXcgU2V0KCkp
OworICAgIGxldCBzbG90cyA9IFtdOworICAgIAorICAgIGZvciAobGV0IGJsb2NrIG9mIGNvZGUp
IHsKKyAgICAgICAgbGV0IGxvY2FsQ2FsYyA9IGxpdmVuZXNzLmxvY2FsQ2FsYyhibG9jayk7Cisg
ICAgICAgIAorICAgICAgICBmdW5jdGlvbiBpbnRlcmZlcmUoaW5zdEluZGV4KQorICAgICAgICB7
CisgICAgICAgICAgICBJbnN0LmZvckVhY2hEZWYoCisgICAgICAgICAgICAgICAgU3RhY2tTbG90
LCBibG9jay5nZXQoaW5zdEluZGV4KSwgYmxvY2suZ2V0KGluc3RJbmRleCArIDEpLAorICAgICAg
ICAgICAgICAgIChzbG90LCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAgICAg
ICAgICBpZiAoIXNsb3QuaXNTcGlsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IG90aGVy
U2xvdCBvZiBsb2NhbENhbGMubGl2ZVNldCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50
ZXJmZXJlbmNlLmdldChzbG90KS5hZGQob3RoZXJTbG90KTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGludGVyZmVyZW5jZS5nZXQob3RoZXJTbG90KS5hZGQoc2xvdCk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgZm9yIChsZXQgaW5zdEluZGV4ID0gYmxvY2suc2l6ZTsgaW5zdEluZGV4LS07KSB7CisgICAg
ICAgICAgICAvLyBLaWxsIGRlYWQgc3RvcmVzLiBGb3Igc2ltcGxpY2l0eSB3ZSBzYXkgdGhhdCBh
IHN0b3JlIGlzIGtpbGxhYmxlIGlmIGl0IGhhcyBvbmx5IGxhdGUKKyAgICAgICAgICAgIC8vIGRl
ZnMgYW5kIHRob3NlIGxhdGUgZGVmcyBhcmUgdG8gdGhpbmdzIHRoYXQgYXJlIGRlYWQgcmlnaHQg
bm93LiBXZSBvbmx5IGRvIHRoYXQKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCdzIHRoZSBv
bmx5IGtpbmQgb2YgZGVhZCBzdGFjayBzdG9yZSB3ZSB3aWxsIHNlZSBoZXJlLgorICAgICAgICAg
ICAgbGV0IGluc3QgPSBibG9jay5hdChpbnN0SW5kZXgpOworICAgICAgICAgICAgaWYgKCFpbnN0
Lmhhc05vbkFyZ0VmZmVjdHMpIHsKKyAgICAgICAgICAgICAgICBsZXQgb2sgPSB0cnVlOworICAg
ICAgICAgICAgICAgIGluc3QuZm9yRWFjaEFyZygoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4g
eworICAgICAgICAgICAgICAgICAgICBpZiAoQXJnLmlzRWFybHlEZWYocm9sZSkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFB
cmcuaXNMYXRlRGVmKHJvbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBvayA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICBsZXQgc2xvdCA9IGFyZy5zdGFja1Nsb3Q7CisgICAgICAgICAgICAgICAgICAgIGlmICghc2xv
dC5pc1NwaWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxDYWxjLmxpdmVTZXQu
aGFzKHNsb3QpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgaWYgKG9rKQorICAgICAgICAgICAgICAgICAg
ICBpbnN0LmNsZWFyKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGludGVyZmVyZShpbnN0SW5kZXgpOworICAgICAgICAgICAgbG9jYWxDYWxjLmV4ZWN1dGUoaW5z
dEluZGV4KTsKKyAgICAgICAgfQorICAgICAgICBpbnRlcmZlcmUoLTEpOworICAgICAgICAKKyAg
ICAgICAgcmVtb3ZlQWxsTWF0Y2hpbmcoYmxvY2suaW5zdHMsIGluc3QgPT4gaW5zdC5vcGNvZGUg
PT0gTm9wKTsKKyAgICB9CisgICAgCisgICAgLy8gTm93IHdlIGFzc2lnbiBzdGFjayBsb2NhdGlv
bnMuIEF0IGl0cyBoZWFydCB0aGlzIGFsZ29yaXRobSBpcyBqdXN0IGZpcnN0LWZpdC4gRm9yIGVh
Y2gKKyAgICAvLyBTdGFja1Nsb3Qgd2UganVzdCB3YW50IHRvIGZpbmQgdGhlIG9mZnNldEZyb21G
UCB0aGF0IGlzIGNsb3Nlc3QgdG8gemVybyB3aGlsZSBlbnN1cmluZyBubworICAgIC8vIG92ZXJs
YXAgd2l0aCBvdGhlciBTdGFja1Nsb3RzIHRoYXQgdGhpcyBvdmVybGFwcyB3aXRoLgorICAgIGZv
ciAobGV0IHNsb3Qgb2YgY29kZS5zdGFja1Nsb3RzKSB7CisgICAgICAgIGlmIChzbG90Lm9mZnNl
dEZyb21GUCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgYXNzaWdu
KHNsb3QsIGFzc2lnbmVkRXNjYXBlZFN0YWNrU2xvdHMuY29uY2F0KGludGVyZmVyZW5jZS5nZXQo
c2xvdCkpKTsKKyAgICB9CisgICAgCisgICAgLy8gRmlndXJlIG91dCBob3cgbXVjaCBzdGFjayB3
ZSdyZSB1c2luZyBmb3Igc3RhY2sgc2xvdHMuCisgICAgbGV0IGZyYW1lU2l6ZUZvclN0YWNrU2xv
dHMgPSAwOworICAgIGZvciAobGV0IHNsb3Qgb2YgY29kZS5zdGFja1Nsb3RzKSB7CisgICAgICAg
IGZyYW1lU2l6ZUZvclN0YWNrU2xvdHMgPSBNYXRoLm1heCgKKyAgICAgICAgICAgIGZyYW1lU2l6
ZUZvclN0YWNrU2xvdHMsCisgICAgICAgICAgICAtc2xvdC5vZmZzZXRGcm9tRlApOworICAgIH0K
KyAgICAKKyAgICBmcmFtZVNpemVGb3JTdGFja1Nsb3RzID0gcm91bmRVcFRvTXVsdGlwbGVPZihz
dGFja0FsaWdubWVudEJ5dGVzLCBmcmFtZVNpemVGb3JTdGFja1Nsb3RzKTsKKworICAgIC8vIE5v
IHdlIG5lZWQgdG8gZGVkdWNlIGhvdyBtdWNoIGFyZ3VtZW50IGFyZWEgd2UgbmVlZC4KKyAgICBm
b3IgKGxldCBibG9jayBvZiBjb2RlKSB7CisgICAgICAgIGZvciAobGV0IGluc3Qgb2YgYmxvY2sp
IHsKKyAgICAgICAgICAgIGZvciAobGV0IGFyZyBvZiBpbnN0LmFyZ3MpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYXJnLmlzQ2FsbEFyZykgeworICAgICAgICAgICAgICAgICAgICAvLyBGb3Igbm93
LCB3ZSBhc3N1bWUgdGhhdCB3ZSB1c2UgOCBieXRlcyBvZiB0aGUgY2FsbCBhcmcuIEJ1dCB0aGF0
J3Mgbm90CisgICAgICAgICAgICAgICAgICAgIC8vIHN1Y2ggYW4gYXdlc29tZSBhc3N1bXB0aW9u
LgorICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1MDQ1NAorICAgICAgICAgICAgICAgICAgICBpZiAoYXJnLm9mZnNl
dCA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkRpZCBub3Qg
ZXhwZWN0IG5lZ2F0aXZlIG9mZnNldCBmb3IgY2FsbEFyZyIpOworICAgICAgICAgICAgICAgICAg
ICBjb2RlLnJlcXVlc3RDYWxsQXJnQXJlYVNpemUoYXJnLm9mZnNldCArIDgpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBjb2Rl
LnNldEZyYW1lU2l6ZShmcmFtZVNpemVGb3JTdGFja1Nsb3RzICsgY29kZS5jYWxsQXJnQXJlYVNp
emUpOworICAgIAorICAgIC8vIEZpbmFsbHkgdHJhbnNmb3JtIHRoZSBjb2RlIHRvIHVzZSBBZGRy
cyBpbnN0ZWFkIG9mIFN0YWNrU2xvdHMuIFRoaXMgaXMgYSBsb3NzbGVzcworICAgIC8vIHRyYW5z
Zm9ybWF0aW9uIHNpbmNlIHdlIGNhbiBzZWFyY2ggdGhlIFN0YWNrU2xvdHMgYXJyYXkgdG8gZmln
dXJlIG91dCB3aGljaCBTdGFja1Nsb3QgYW55CisgICAgLy8gb2Zmc2V0LWZyb20tRlAgcmVmZXJz
IHRvLgorCisgICAgLy8gRklYTUU6IFRoaXMgbWF5IHByb2R1Y2UgYWRkcmVzc2VzIHRoYXQgYXJl
bid0IHZhbGlkIGlmIHdlIGVuZCB1cCB3aXRoIGEgZ2lub3Jtb3VzIHN0YWNrIGZyYW1lLgorICAg
IC8vIFdlIHdvdWxkIGhhdmUgdG8gc2NhdmVuZ2UgZm9yIHRlbXBvcmFyaWVzIGlmIHRoaXMgaGFw
cGVuZWQuIEZvcnR1bmF0ZWx5LCB0aGlzIGNhc2Ugd2lsbCBiZQorICAgIC8vIGV4dHJlbWVseSBy
YXJlIHNvIHdlIGNhbiBkbyBjcmF6eSB0aGluZ3Mgd2hlbiBpdCBhcmlzZXMuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjUzMAorICAgIAorICAgIGxl
dCBpbnNlcnRpb25TZXQgPSBuZXcgSW5zZXJ0aW9uU2V0KCk7CisgICAgZm9yIChsZXQgYmxvY2sg
b2YgY29kZSkgeworICAgICAgICBmb3IgKGxldCBpbnN0SW5kZXggPSAwOyBpbnN0SW5kZXggPCBi
bG9jay5zaXplOyArK2luc3RJbmRleCkgeworICAgICAgICAgICAgbGV0IGluc3QgPSBibG9jay5h
dChpbnN0SW5kZXgpOworICAgICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKChhcmcsIHJvbGUsIHR5
cGUsIHdpZHRoKSA9PiB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gc3RhY2tBZGRyKG9mZnNl
dCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBBcmcuY3Jl
YXRlU3RhY2tBZGRyKG9mZnNldCwgY29kZS5mcmFtZVNpemUsIHdpZHRoKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc3dpdGNoIChhcmcua2lu
ZCkgeworICAgICAgICAgICAgICAgIGNhc2UgQXJnLlN0YWNrOiB7CisgICAgICAgICAgICAgICAg
ICAgIGxldCBzbG90ID0gYXJnLnN0YWNrU2xvdDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKEFy
Zy5pc1pEZWYocm9sZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIHNsb3QuaXNTcGlsbAor
ICAgICAgICAgICAgICAgICAgICAgICAgJiYgc2xvdC5ieXRlU2l6ZSA+IEFyZy5ieXRlcyh3aWR0
aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IGhhbmRs
ZSB0aGlzIHNpbXBsZSBjYXNlIGJlY2F1c2UgaXQncyB0aGUgb25seSBvbmUKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHRoYXQgYXJpc2VzOiBaRGVmJ3MgYXJlIG9ubHkgMzItYml0IHJpZ2h0
IG5vdy4gU28sIHdoZW4gd2UgaGl0IHRoZXNlCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBh
c3NlcnRpb25zIGl0IG1lYW5zIHRoYXQgd2UgbmVlZCB0byBpbXBsZW1lbnQgdGhvc2Ugb3RoZXIg
a2luZHMgb2YKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHplcm8gZmlsbHMuCisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoc2xvdC5ieXRlU2l6ZSAhPSA4KSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiQmFkIHNwaWxsIHNsb3Qgc2l6ZSBmb3IgWkRlZjogIiArIHNsb3QuYnl0ZVNpemUg
KyAiLCB3aWR0aCBpcyAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp
ZHRoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh3aWR0aCAhPSAzMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCB3aWR0aCBmb3IgWkRlZiIpOworICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0KAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluc3RJbmRleCArIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3IEluc3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0b3JlWmVybzMy
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhY2tBZGRyKGFyZy5vZmZzZXQg
KyA0ICsgc2xvdC5vZmZzZXRGcm9tRlApXSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBzdGFja0FkZHIoYXJnLm9mZnNldCArIHNsb3Qub2Zmc2V0
RnJvbUZQKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FzZSBBcmcuQ2Fs
bEFyZzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0YWNrQWRkcihhcmcub2Zmc2V0IC0g
Y29kZS5mcmFtZVNpemUpOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisgICAgICAgIGluc2VydGlvblNldC5leGVjdXRlKGJsb2NrLmluc3RzKTsKKyAgICB9Cit9
CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2FyZy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQZXJm
b3JtYW5jZVRlc3RzL0pTQWlyL2FyZy5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVz
dHMvSlNBaXIvYXJnLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTI2IEBACisidXNlIHN0
cmljdCI7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2Ns
YXNzIEFyZyB7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgdGhpcy5fa2luZCA9
IEFyZy5JbnZhbGlkOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgaXNBbnlVc2Uocm9sZSkKKyAg
ICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAg
ICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAg
Y2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2Fz
ZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5a
RGVmOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5FYXJseURl
ZjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgaXNDb2xkVXNlKHJvbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUp
IHsKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRV
c2U6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAg
ICAgICBjYXNlIEFyZy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAg
IGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBB
cmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuU2Ny
YXRjaDoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBy
b2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzV2FybVVzZShyb2xl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIEFyZy5pc0FueVVzZShyb2xlKSAmJiAhQXJnLmlzQ29s
ZFVzZShyb2xlKTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNvb2xlZChyb2xlKQorICAgIHsK
KyAgICAgICAgc3dpdGNoIChyb2xlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgQXJnLkNvbGRV
c2U6CisgICAgICAgIGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VE
ZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAg
ICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAg
Y2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgICAg
ICByZXR1cm4gcm9sZTsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAgICAgICAgcmV0dXJu
IEFyZy5Db2xkVXNlOworICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAgICAgICAgcmV0
dXJuIEFyZy5MYXRlQ29sZFVzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBp
c0Vhcmx5VXNlKHJvbGUpCisgICAgeworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAg
Y2FzZSBBcmcuVXNlOgorICAgICAgICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFy
Zy5Vc2VEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpEZWY6CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVmOgorICAg
ICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBjYXNlIEFyZy5MYXRlVXNlOgorICAgICAg
ICBjYXNlIEFyZy5MYXRlQ29sZFVzZToKKyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAg
ICAgY2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAg
ICAgIH0KKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzTGF0ZVVzZShyb2xlKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAgICAgIGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAg
IGNhc2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNoOgorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNh
c2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5V
c2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlpEZWY6Cisg
ICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0
YXRpYyBpc0FueURlZihyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7CisgICAg
ICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAgICAgY2Fz
ZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAgY2FzZSBB
cmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhc2Ug
QXJnLkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5aRGVm
OgorICAgICAgICBjYXNlIEFyZy5Vc2VaRGVmOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoK
KyAgICAgICAgY2FzZSBBcmcuU2NyYXRjaDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9sZSIpOwor
ICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc0Vhcmx5RGVmKHJvbGUpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKKyAgICAgICAgY2FzZSBBcmcuVXNlOgorICAgICAg
ICBjYXNlIEFyZy5Db2xkVXNlOgorICAgICAgICBjYXNlIEFyZy5Vc2VBZGRyOgorICAgICAgICBj
YXNlIEFyZy5MYXRlVXNlOgorICAgICAgICBjYXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJn
LlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcuWkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRl
ZjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIGNhc2UgQXJnLkVhcmx5RGVmOgorICAgICAgICBjYXNlIEFyZy5TY3JhdGNo
OgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByb2xlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisg
ICAgc3RhdGljIGlzTGF0ZURlZihyb2xlKQorICAgIHsKKyAgICAgICAgc3dpdGNoIChyb2xlKSB7
CisgICAgICAgIGNhc2UgQXJnLlVzZToKKyAgICAgICAgY2FzZSBBcmcuQ29sZFVzZToKKyAgICAg
ICAgY2FzZSBBcmcuVXNlQWRkcjoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZVVzZToKKyAgICAgICAg
Y2FzZSBBcmcuRWFybHlEZWY6CisgICAgICAgIGNhc2UgQXJnLlNjcmF0Y2g6CisgICAgICAgIGNh
c2UgQXJnLkxhdGVDb2xkVXNlOgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBj
YXNlIEFyZy5EZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZURlZjoKKyAgICAgICAgY2FzZSBBcmcu
WkRlZjoKKyAgICAgICAgY2FzZSBBcmcuVXNlWkRlZjoKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgcm9s
ZSIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBpc1pEZWYocm9sZSkKKyAg
ICB7CisgICAgICAgIHN3aXRjaCAocm9sZSkgeworICAgICAgICBjYXNlIEFyZy5Vc2U6CisgICAg
ICAgIGNhc2UgQXJnLkNvbGRVc2U6CisgICAgICAgIGNhc2UgQXJnLlVzZUFkZHI6CisgICAgICAg
IGNhc2UgQXJnLkxhdGVVc2U6CisgICAgICAgIGNhc2UgQXJnLkRlZjoKKyAgICAgICAgY2FzZSBB
cmcuVXNlRGVmOgorICAgICAgICBjYXNlIEFyZy5FYXJseURlZjoKKyAgICAgICAgY2FzZSBBcmcu
U2NyYXRjaDoKKyAgICAgICAgY2FzZSBBcmcuTGF0ZUNvbGRVc2U6CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIGNhc2UgQXJnLlpEZWY6CisgICAgICAgIGNhc2UgQXJnLlVzZVpE
ZWY6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHJvbGUiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgdHlwZUZvckIzVHlwZSh0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0
eXBlKSB7CisgICAgICAgIGNhc2UgSW50MzI6CisgICAgICAgIGNhc2UgSW50NjQ6CisgICAgICAg
ICAgICByZXR1cm4gR1A7CisgICAgICAgIGNhc2UgRmxvYXQ6CisgICAgICAgIGNhc2UgRG91Ymxl
OgorICAgICAgICAgICAgcmV0dXJuIEZQOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJCYWQgQjMgdHlwZSIpOworICAgICAgICB9CisgICAgfQorICAgIAor
ICAgIHN0YXRpYyB3aWR0aEZvckIzVHlwZSh0eXBlKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0
eXBlKSB7CisgICAgICAgIGNhc2UgSW50MzI6CisgICAgICAgIGNhc2UgRmxvYXQ6CisgICAgICAg
ICAgICByZXR1cm4gMzI7CisgICAgICAgIGNhc2UgSW50NjQ6CisgICAgICAgIGNhc2UgRG91Ymxl
OgorICAgICAgICAgICAgcmV0dXJuIDY0OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJCYWQgQjMgdHlwZSIpOworICAgICAgICB9CisgICAgfQorICAgIAor
ICAgIHN0YXRpYyBjb25zZXJ2YXRpdmVXaWR0aCh0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHR5cGUgPT0gR1AgPyBQdHIgOiA2NDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIG1pbmltdW1X
aWR0aCh0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gR1AgPyA4IDogMzI7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBieXRlcyh3aWR0aCkKKyAgICB7CisgICAgICAgIHJldHVy
biB3aWR0aCAvIDg7CisgICAgfQorICAgIAorICAgIHN0YXRpYyB3aWR0aEZvckJ5dGVzKGJ5dGVz
KQorICAgIHsKKyAgICAgICAgc3dpdGNoIChieXRlcykgeworICAgICAgICBjYXNlIDA6CisgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJldHVybiA4OworICAgICAgICBjYXNlIDI6CisgICAg
ICAgICAgICByZXR1cm4gMTY7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgY2FzZSA0OgorICAg
ICAgICAgICAgcmV0dXJuIDMyOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKGJ5
dGVzID4gOCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBudW1iZXIgb2Yg
Ynl0ZXMiKTsKKyAgICAgICAgICAgIHJldHVybiA2NDsKKyAgICAgICAgfQorICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgY3JlYXRlVG1wKHRtcCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBu
ZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5UbXA7CisgICAgICAgIHJlc3Vs
dC5fdG1wID0gdG1wOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBz
dGF0aWMgZnJvbVJlZyhyZWcpCisgICAgeworICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVRtcChy
ZWcpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlSW1tKHZhbHVlKQorICAgIHsKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJn
LkltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQmlnSW1tKHZhbHVlKQorICAgIHsK
KyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0g
QXJnLkJpZ0ltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAgICByZXR1
cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQml0SW1tKHZhbHVlKQor
ICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9r
aW5kID0gQXJnLkJpdEltbTsKKyAgICAgICAgcmVzdWx0Ll92YWx1ZSA9IHZhbHVlOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlQml0SW1tNjQo
dmFsdWUpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICBy
ZXN1bHQuX2tpbmQgPSBBcmcuQml0SW1tNjQ7CisgICAgICAgIHJlc3VsdC5fdmFsdWUgPSB2YWx1
ZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0
ZUFkZHIoYmFzZSwgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQor
ICAgICAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsK
KyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkFkZHI7CisgICAgICAgIHJlc3VsdC5fYmFzZSA9
IGJhc2U7CisgICAgICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlU3RhY2soc2xvdCwgb2Zmc2V0
KQorICAgIHsKKyAgICAgICAgaWYgKG9mZnNldCA9PSBudWxsKQorICAgICAgICAgICAgb2Zmc2V0
ID0gMDsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9r
aW5kID0gQXJnLlN0YWNrOworICAgICAgICByZXN1bHQuX3Nsb3QgPSBzbG90OworICAgICAgICBy
ZXN1bHQuX29mZnNldCA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cisg
ICAgCisgICAgc3RhdGljIGNyZWF0ZUNhbGxBcmcob2Zmc2V0KQorICAgIHsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJnLkNhbGxBcmc7
CisgICAgICAgIHJlc3VsdC5fb2Zmc2V0ID0gb2Zmc2V0OworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlU3RhY2tBZGRyKG9mZnNldEZyb21GUCwg
ZnJhbWVTaXplLCB3aWR0aCkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBBcmcuY3JlYXRl
QWRkcihSZWcuY2FsbEZyYW1lUmVnaXN0ZXIsIG9mZnNldEZyb21GUCk7CisgICAgICAgIGlmICgh
cmVzdWx0LmlzVmFsaWRGb3JtKHdpZHRoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9IEFyZy5jcmVh
dGVBZGRyKFJlZy5zdGFja1BvaW50ZXJSZWdpc3Rlciwgb2Zmc2V0RnJvbUZQICsgZnJhbWVTaXpl
KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzVmFs
aWRTY2FsZShzY2FsZSwgd2lkdGgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHNjYWxlKSB7Cisg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgY2FzZSAyOgorICAgICAgICBjYXNlIDQ6CisgICAgICAg
IGNhc2UgODoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBsb2dTY2FsZShzY2FsZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoc2NhbGUpIHsKKyAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICByZXR1cm4gMjsK
KyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmV0dXJuIDM7CisgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBzY2FsZSIpOworICAgICAgICB9Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBjcmVhdGVJbmRleChiYXNlLCBpbmRleCwgc2NhbGUsIG9m
ZnNldCkKKyAgICB7CisgICAgICAgIGlmIChzY2FsZSA9PSBudWxsKQorICAgICAgICAgICAgc2Nh
bGUgPSAxOworICAgICAgICBpZiAob2Zmc2V0ID09IG51bGwpCisgICAgICAgICAgICBvZmZzZXQg
PSAwOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAgICByZXN1bHQuX2tp
bmQgPSBBcmcuSW5kZXg7CisgICAgICAgIHJlc3VsdC5fYmFzZSA9IGJhc2U7CisgICAgICAgIHJl
c3VsdC5faW5kZXggPSBpbmRleDsKKyAgICAgICAgcmVzdWx0Ll9zY2FsZSA9IHNjYWxlOworICAg
ICAgICByZXN1bHQuX29mZnNldCA9IG9mZnNldDsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVJlbENvbmQoY29uZGl0aW9uKQorICAgIHsKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0gQXJn
LlJlbENvbmQ7CisgICAgICAgIHJlc3VsdC5fY29uZGl0aW9uID0gY29uZGl0aW9uOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgY3JlYXRlUmVzQ29uZChj
b25kaXRpb24pCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEFyZygpOworICAgICAg
ICByZXN1bHQuX2tpbmQgPSBBcmcuUmVzQ29uZDsKKyAgICAgICAgcmVzdWx0Ll9jb25kaXRpb24g
PSBjb25kaXRpb247CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0
YXRpYyBjcmVhdGVEb3VibGVDb25kKGNvbmRpdGlvbikKKyAgICB7CisgICAgICAgIGxldCByZXN1
bHQgPSBuZXcgQXJnKCk7CisgICAgICAgIHJlc3VsdC5fa2luZCA9IEFyZy5Eb3VibGVDb25kOwor
ICAgICAgICByZXN1bHQuX2NvbmRpdGlvbiA9IGNvbmRpdGlvbjsKKyAgICAgICAgcmV0dXJuIHJl
c3VsdDsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGNyZWF0ZVdpZHRoKHdpZHRoKQorICAgIHsK
KyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBcmcoKTsKKyAgICAgICAgcmVzdWx0Ll9raW5kID0g
QXJnLldpZHRoOworICAgICAgICByZXN1bHQuX3dpZHRoID0gd2lkdGg7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgfQorICAgIAorICAgIGdldCBraW5kKCkgeyByZXR1cm4gdGhpcy5fa2lu
ZDsgfQorICAgIGdldCBpc1RtcCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLlRtcDsgfQor
ICAgIGdldCBpc0ltbSgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkltbTsgfQorICAgIGdl
dCBpc0JpZ0ltbSgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkJpZ0ltbTsgfQorICAgIGdl
dCBpc0JpdEltbSgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkJpdEltbTsgfQorICAgIGdl
dCBpc0JpdEltbTY0KCkgeyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuQml0SW1tNjQ7IH0KKyAg
ICBnZXQgaXNTb21lSW1tKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGhpcy5fa2luZCkgewor
ICAgICAgICBjYXNlIEFyZy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpZ0ltbToKKyAgICAgICAg
Y2FzZSBBcmcuQml0SW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICB9CisgICAgfQorICAgIGdldCBpc0FkZHIoKSB7IHJldHVybiB0aGlzLl9raW5k
ID09IEFyZy5BZGRyOyB9CisgICAgZ2V0IGlzU3RhY2soKSB7IHJldHVybiB0aGlzLl9raW5kID09
IEFyZy5TdGFjazsgfQorICAgIGdldCBpc0NhbGxBcmcoKSB7IHJldHVybiB0aGlzLl9raW5kID09
IEFyZy5DYWxsQXJnOyB9CisgICAgZ2V0IGlzSW5kZXgoKSB7IHJldHVybiB0aGlzLl9raW5kID09
IEFyZy5JbmRleDsgfQorICAgIGdldCBpc01lbW9yeSgpCisgICAgeworICAgICAgICBzd2l0Y2gg
KHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgY2FzZSBBcmcu
U3RhY2s6CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgIGNhc2UgQXJnLkluZGV4
OgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgZ2V0IGlzU3RhY2tNZW1vcnko
KQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJn
LkFkZHI6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYmFzZSA9PSBSZWcuY2FsbEZyYW1lUmVn
aXN0ZXIKKyAgICAgICAgICAgICAgICB8fCB0aGlzLl9iYXNlID09IFJlZy5zdGFja1BvaW50ZXJS
ZWdpc3RlcjsKKyAgICAgICAgY2FzZSBBcmcuU3RhY2s6CisgICAgICAgIGNhc2UgQXJnLkNhbGxB
cmc6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBnZXQgaXNSZWxDb25kKCkg
eyByZXR1cm4gdGhpcy5fa2luZCA9PSBBcmcuUmVsQ29uZDsgfQorICAgIGdldCBpc1Jlc0NvbmQo
KSB7IHJldHVybiB0aGlzLl9raW5kID09IEFyZy5SZXNDb25kOyB9CisgICAgZ2V0IGlzRG91Ymxl
Q29uZCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLkRvdWJsZUNvbmQ7IH0KKyAgICBnZXQg
aXNDb25kaXRpb24oKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7CisgICAg
ICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAgICAg
IGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBnZXQgaXNXaWR0aCgpIHsgcmV0dXJuIHRoaXMuX2tpbmQgPT0gQXJnLldpZHRoOyB9CisgICAg
Z2V0IGlzQWxpdmUoKSB7IHJldHVybiB0aGlzLmlzVG1wIHx8IHRoaXMuaXNTdGFjazsgfQorICAg
IAorICAgIGdldCB0bXAoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2tpbmQgIT0gQXJnLlRt
cCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC50bXAgZm9yIG5vbi10bXAi
KTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3RtcDsKKyAgICB9CisgICAgCisgICAgZ2V0IHZhbHVl
KCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc1NvbWVJbW0pCisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkNhbGxlZCAudmFsdWUgZm9yIG5vbi1pbW0iKTsKKyAgICAgICAgcmV0dXJu
IHRoaXMuX3ZhbHVlOworICAgIH0KKyAgICAKKyAgICBnZXQgYmFzZSgpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAg
Y2FzZSBBcmcuSW5kZXg6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYmFzZTsKKyAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5iYXNlIGZvciBu
b24tYWRkcmVzcyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIGdldCBoYXNPZmZzZXQo
KSB7IHJldHVybiB0aGlzLmlzTWVtb3J5OyB9CisgICAgCisgICAgZ2V0IG9mZnNldCgpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoK
KyAgICAgICAgY2FzZSBBcmcuSW5kZXg6CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAgICAg
ICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29mZnNldDsKKyAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5vZmZz
ZXQgZm9yIG5vbi1hZGRyZXNzIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgZ2V0IHN0
YWNrU2xvdCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBBcmcuU3RhY2spCisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAuc3RhY2tTbG90IGZvciBub24tYWRk
cmVzcyIpOworICAgICAgICByZXR1cm4gdGhpcy5fc2xvdDsKKyAgICB9CisgICAgCisgICAgZ2V0
IGluZGV4KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5kICE9IEFyZy5JbmRleCkKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5pbmRleCBmb3Igbm9uLUluZGV4Iik7
CisgICAgICAgIHJldHVybiB0aGlzLl9pbmRleDsKKyAgICB9CisgICAgCisgICAgZ2V0IHNjYWxl
KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9raW5kICE9IEFyZy5JbmRleCkKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5zY2FsZSBmb3Igbm9uLUluZGV4Iik7CisgICAg
ICAgIHJldHVybiB0aGlzLl9zY2FsZTsKKyAgICB9CisgICAgCisgICAgZ2V0IGxvZ1NjYWxlKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBBcmcubG9nU2NhbGUodGhpcy5zY2FsZSk7CisgICAgfQor
ICAgIAorICAgIGdldCB3aWR0aCgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fa2luZCAhPSBB
cmcuV2lkdGgpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbGxlZCAud2lkdGggZm9y
IG5vbi1XaWR0aCIpOworICAgICAgICByZXR1cm4gdGhpcy5fd2lkdGg7CisgICAgfQorICAgIAor
ICAgIGdldCBpc0dQVG1wKCkgeyByZXR1cm4gdGhpcy5pc1RtcCAmJiB0aGlzLnRtcC5pc0dQOyB9
CisgICAgZ2V0IGlzRlBUbXAoKSB7IHJldHVybiB0aGlzLmlzVG1wICYmIHRoaXMudG1wLmlzRlA7
IH0KKyAgICAKKyAgICBnZXQgaXNHUCgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tp
bmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAgICBjYXNlIEFyZy5CaWdJbW06Cisg
ICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAgY2FzZSBBcmcuQml0SW1tNjQ6CisgICAg
ICAgIGNhc2UgQXJnLkFkZHI6CisgICAgICAgIGNhc2UgQXJnLkluZGV4OgorICAgICAgICBjYXNl
IEFyZy5TdGFjazoKKyAgICAgICAgY2FzZSBBcmcuQ2FsbEFyZzoKKyAgICAgICAgY2FzZSBBcmcu
UmVsQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuRG91
YmxlQ29uZDoKKyAgICAgICAgY2FzZSBBcmcuV2lkdGg6CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgY2FzZSBBcmcuVG1wOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNHUFRt
cDsKKyAgICAgICAgY2FzZSBBcmcuSW52YWxpZDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGtpbmQi
KTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgaXNGUCgpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW1tOgorICAgICAgICBj
YXNlIEFyZy5CaXRJbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbTY0OgorICAgICAgICBjYXNl
IEFyZy5SZWxDb25kOgorICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFy
Zy5Eb3VibGVDb25kOgorICAgICAgICBjYXNlIEFyZy5XaWR0aDoKKyAgICAgICAgY2FzZSBBcmcu
SW52YWxpZDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcuQWRk
cjoKKyAgICAgICAgY2FzZSBBcmcuSW5kZXg6CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgorICAg
ICAgICBjYXNlIEFyZy5DYWxsQXJnOgorICAgICAgICBjYXNlIEFyZy5CaWdJbW06CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuVG1wOgorICAgICAgICAgICAgcmV0
dXJuIHRoaXMuaXNGUFRtcDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiQmFkIGtpbmQiKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgaGFz
VHlwZSgpCisgICAgeworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2Fz
ZSBBcmcuSW1tOgorICAgICAgICBjYXNlIEFyZy5CaXRJbW06CisgICAgICAgIGNhc2UgQXJnLkJp
dEltbTY0OgorICAgICAgICBjYXNlIEFyZy5UbXA6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor
ICAgIH0KKyAgICAKKyAgICBnZXQgdHlwZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5p
c0dQID8gR1AgOiBGUDsKKyAgICB9CisgICAgCisgICAgaXNUeXBlKHR5cGUpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSBBcmcuR1A6CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5pc0dQOworICAgICAgICBjYXNlIEFyZy5GUDoKKyAgICAgICAgICAgIHJldHVy
biB0aGlzLmlzRlA7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkJhZCB0eXBlIik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaXNDb21wYXRpYmxl
VHlwZShvdGhlcikKKyAgICB7CisgICAgICAgIGlmICh0aGlzLmhhc1R5cGUpCisgICAgICAgICAg
ICByZXR1cm4gb3RoZXIuaXNUeXBlKHRoaXMudHlwZSk7CisgICAgICAgIGlmIChvdGhlci5oYXNU
eXBlKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNUeXBlKG90aGVyLnR5cGUpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgZ2V0IGlzR1BSKCkgeyByZXR1cm4gdGhp
cy5pc1RtcCAmJiB0aGlzLnRtcC5pc0dQUjsgfQorICAgIGdldCBncHIoKSB7IHJldHVybiB0aGlz
LnRtcC5ncHI7IH0KKyAgICBnZXQgaXNGUFIoKSB7IHJldHVybiB0aGlzLmlzVG1wICYmIHRoaXMu
dG1wLmlzRlBSOyB9CisgICAgZ2V0IGZwcigpIHsgcmV0dXJuIHRoaXMudG1wLmZwcjsgfQorICAg
IGdldCBpc1JlZygpIHsgcmV0dXJuIHRoaXMuaXNUbXAgJiYgdGhpcy50bXAuaXNSZWc7IH0KKyAg
ICBnZXQgcmVnKCkgeyByZXR1cm4gdGhpcy50bXAucmVnOyB9CisgICAgCisgICAgc3RhdGljIGlz
VmFsaWRJbW1Gb3JtKHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzUmVwcmVzZW50YWJs
ZUFzSW50MzIodmFsdWUpOworICAgIH0KKyAgICBzdGF0aWMgaXNWYWxpZEJpdEltbUZvcm0odmFs
dWUpCisgICAgeworICAgICAgICByZXR1cm4gaXNSZXByZXNlbnRhYmxlQXNJbnQzMih2YWx1ZSk7
CisgICAgfQorICAgIHN0YXRpYyBpc1ZhbGlkQml0SW1tNjRGb3JtKHZhbHVlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGlzUmVwcmVzZW50YWJsZUFzSW50MzIodmFsdWUpOworICAgIH0KKyAgICAK
KyAgICBzdGF0aWMgaXNWYWxpZEFkZHJGb3JtKG9mZnNldCwgd2lkdGgpCisgICAgeworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGlzVmFsaWRJbmRleEZvcm0o
c2NhbGUsIG9mZnNldCwgd2lkdGgpCisgICAgeworICAgICAgICBpZiAoIWlzVmFsaWRTY2FsZShz
Y2FsZSwgd2lkdGgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisgICAgCisgICAgaXNWYWxpZEZvcm0od2lkdGgpCisgICAgeworICAgICAg
ICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW52YWxpZDoKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY2FzZSBBcmcuVG1wOgorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGNhc2UgQXJnLkltbToKKyAgICAgICAgICAgIHJldHVybiBB
cmcuaXNWYWxpZEltbUZvcm0odGhpcy52YWx1ZSk7CisgICAgICAgIGNhc2UgQXJnLkJpZ0ltbToK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIEFyZy5CaXRJbW06CisgICAg
ICAgICAgICByZXR1cm4gQXJnLmlzVmFsaWRCaXRJbW1Gb3JtKHRoaXMudmFsdWUpOworICAgICAg
ICBjYXNlIEFyZy5CaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiBBcmcuaXNWYWxpZEJpdElt
bTY0Rm9ybSh0aGlzLnZhbHVlKTsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgY2Fz
ZSBBcmcuU3RhY2s6CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6CisgICAgICAgICAgICByZXR1
cm4gQXJnLmlzVmFsaWRBZGRyRm9ybSh0aGlzLm9mZnNldCwgd2lkdGgpOworICAgICAgICBjYXNl
IEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiBBcmcuaXNWYWxpZEluZGV4Rm9ybSh0aGlz
LnNjYWxlLCB0aGlzLm9mZnNldCwgd2lkdGgpOworICAgICAgICBjYXNlIEFyZy5SZWxDb25kOgor
ICAgICAgICBjYXNlIEFyZy5SZXNDb25kOgorICAgICAgICBjYXNlIEFyZy5Eb3VibGVDb25kOgor
ICAgICAgICBjYXNlIEFyZy5XaWR0aDoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQga2luZCIpOworICAg
ICAgICB9CisgICAgfQorICAgIAorICAgIGZvckVhY2hUbXBGYXN0KGZ1bmMpCisgICAgeworICAg
ICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuVG1wOiB7CisgICAg
ICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBm
dW5jKHRoaXMuX3RtcCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIEFyZy5jcmVhdGVUbXAocmVw
bGFjZW1lbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBB
cmcuQWRkcjogeworICAgICAgICAgICAgbGV0IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYg
KHJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9iYXNlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
QXJnLmNyZWF0ZUFkZHIocmVwbGFjZW1lbnQsIHRoaXMuX29mZnNldCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEFyZy5JbmRleDogeworICAgICAgICAgICAg
bGV0IGJhc2VSZXBsYWNlbWVudCA9IGZ1bmModGhpcy5fYmFzZSk7CisgICAgICAgICAgICBsZXQg
aW5kZXhSZXBsYWNlbWVudCA9IGZ1bmModGhpcy5faW5kZXgpOworICAgICAgICAgICAgaWYgKGJh
c2VSZXBsYWNlbWVudCB8fCBpbmRleFJlcGxhY2VtZW50KSB7CisgICAgICAgICAgICAgICAgcmV0
dXJuIEFyZy5jcmVhdGVJbmRleCgKKyAgICAgICAgICAgICAgICAgICAgYmFzZVJlcGxhY2VtZW50
ID8gYmFzZVJlcGxhY2VtZW50IDogdGhpcy5fYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgaW5k
ZXhSZXBsYWNlbWVudCA/IGluZGV4UmVwbGFjZW1lbnQgOiB0aGlzLl9pbmRleCwKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fc2NhbGUsIHRoaXMuX29mZnNldCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdXNlc1RtcChleHBlY3RlZFRt
cCkKKyAgICB7CisgICAgICAgIGxldCB1c2VzVG1wID0gZmFsc2U7CisgICAgICAgIGZvckVhY2hU
bXBGYXN0KHRtcCA9PiB7CisgICAgICAgICAgICB1c2VzVG1wIHw9IHRtcCA9PSBleHBlY3RlZFRt
cDsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybiB1c2VzVG1wOworICAgIH0KKyAgICAKKyAg
ICBmb3JFYWNoVG1wKHJvbGUsIHR5cGUsIHdpZHRoLCBmdW5jKQorICAgIHsKKyAgICAgICAgc3dp
dGNoICh0aGlzLl9raW5kKSB7CisgICAgICAgIGNhc2UgQXJnLlRtcDogeworICAgICAgICAgICAg
bGV0IHJlcGxhY2VtZW50OworICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID0gZnVuYyh0aGlz
Ll90bXAsIHJvbGUsIHR5cGUsIHdpZHRoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJnLmNy
ZWF0ZVRtcChyZXBsYWNlbWVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBjYXNlIEFyZy5BZGRyOiB7CisgICAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAg
ICAgICAgICBpZiAocmVwbGFjZW1lbnQgPSBmdW5jKHRoaXMuX2Jhc2UsIEFyZy5Vc2UsIEdQLCBy
b2xlID09IEFyZy5Vc2VBZGRyID8gd2lkdGggOiBQdHIpKQorICAgICAgICAgICAgICAgIHJldHVy
biBBcmcuY3JlYXRlQWRkcihyZXBsYWNlbWVudCwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJnLkluZGV4OiB7CisgICAgICAgICAg
ICBsZXQgYmFzZVJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9iYXNlLCBBcmcuVXNlLCBHUCwgcm9s
ZSA9PSBBcmcuVXNlQWRkciA/IHdpZHRoIDogUHRyKTsKKyAgICAgICAgICAgIGxldCBpbmRleFJl
cGxhY2VtZW50ID0gZnVuYyh0aGlzLl9pbmRleCwgQXJnLlVzZSwgR1AsIHJvbGUgPT0gQXJnLlVz
ZUFkZHIgPyB3aWR0aCA6IFB0cik7CisgICAgICAgICAgICBpZiAoYmFzZVJlcGxhY2VtZW50IHx8
IGluZGV4UmVwbGFjZW1lbnQpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZUlu
ZGV4KAorICAgICAgICAgICAgICAgICAgICBiYXNlUmVwbGFjZW1lbnQgPyBiYXNlUmVwbGFjZW1l
bnQgOiB0aGlzLl9iYXNlLAorICAgICAgICAgICAgICAgICAgICBpbmRleFJlcGxhY2VtZW50ID8g
aW5kZXhSZXBsYWNlbWVudCA6IHRoaXMuX2luZGV4LAorICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9zY2FsZSwgdGhpcy5fb2Zmc2V0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICBpcyh0aGluZykgeyByZXR1cm4gISF0aGluZy5leHRyYWN0
KHRoaXMpOyB9CisgICAgYXModGhpbmcpIHsgcmV0dXJuIHRoaW5nLmV4dHJhY3QodGhpcyk7IH0K
KyAgICAKKyAgICAvLyBUaGlzIGxldHMgeW91IHNheSB0aGluZ3MgbGlrZToKKyAgICAvLyBhcmcu
Zm9yRWFjaChUbXAgfCBSZWcgfCBBcmcgfCBTdGFja1Nsb3QsIC4uLikKKyAgICAvLworICAgIC8v
IEl0J3MgdXNlZCBmb3IgYWJzdHJhY3QgbGl2ZW5lc3MgYW5hbHlzaXMuCisgICAgZm9yRWFjaEZh
c3QodGhpbmcsIGZ1bmMpCisgICAgeworICAgICAgICByZXR1cm4gdGhpbmcuZm9yRWFjaEZhc3Qo
dGhpcywgZnVuYyk7CisgICAgfQorICAgIGZvckVhY2godGhpbmcsIHJvbGUsIHR5cGUsIHdpZHRo
LCBmdW5jKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaW5nLmZvckVhY2godGhpcywgcm9sZSwg
dHlwZSwgd2lkdGgsIGZ1bmMpOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZXh0cmFjdChhcmcp
IHsgcmV0dXJuIGFyZzsgfQorICAgIHN0YXRpYyBmb3JFYWNoRmFzdChhcmcsIGZ1bmMpIHsgcmV0
dXJuIGZ1bmMoYXJnKTsgfQorICAgIHN0YXRpYyBmb3JFYWNoKGFyZywgcm9sZSwgdHlwZSwgd2lk
dGgsIGZ1bmMpIHsgcmV0dXJuIGZ1bmMoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCk7IH0KKworICAg
IGdldCBjb25kaXRpb24oKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9raW5kKSB7Cisg
ICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLlJlc0NvbmQ6CisgICAg
ICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY29uZGl0
aW9uOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxs
ZWQgLmNvbmRpdGlvbiBmb3Igbm9uLWNvbmRpdGlvbiIpOworICAgICAgICB9CisgICAgfQorICAg
IAorICAgIGdldCBpc0ludmVydGlibGUoKQorICAgIHsKKyAgICAgICAgc3dpdGNoICh0aGlzLl9r
aW5kKSB7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJs
ZUNvbGQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBBcmcuUmVzQ29u
ZDoKKyAgICAgICAgICAgIHN3aXRjaCAodGhpcy5fY29uZGl0aW9uKSB7CisgICAgICAgICAgICBj
YXNlIFplcm86CisgICAgICAgICAgICBjYXNlIE5vblplcm86CisgICAgICAgICAgICBjYXNlIFNp
Z25lZDoKKyAgICAgICAgICAgIGNhc2UgUG9zaXRpdmVPclplcm86CisgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB0b1N0cmluZygpCisgICAg
eworICAgICAgICBzd2l0Y2ggKHRoaXMuX2tpbmQpIHsKKyAgICAgICAgY2FzZSBBcmcuSW52YWxp
ZDoKKyAgICAgICAgICAgIHJldHVybiAiPGludmFsaWQ+IjsKKyAgICAgICAgY2FzZSBBcmcuVG1w
OgorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RtcC50b1N0cmluZygpOworICAgICAgICBjYXNl
IEFyZy5JbW06CisgICAgICAgIGNhc2UgQXJnLkJpdEltbToKKyAgICAgICAgICAgIHJldHVybiAi
JCIgKyB0aGlzLl92YWx1ZTsKKyAgICAgICAgY2FzZSBBcmcuQmlnSW1tOgorICAgICAgICBjYXNl
IEFyZy5CaXRJbW02NDoKKyAgICAgICAgICAgIHJldHVybiAiJDB4IiArIHRoaXMuX3ZhbHVlLnRv
U3RyaW5nKDE2KTsKKyAgICAgICAgY2FzZSBBcmcuQWRkcjoKKyAgICAgICAgICAgIHJldHVybiAi
IiArICh0aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikgKyAiKCIgKyB0aGlzLl9iYXNl
ICsgIikiOworICAgICAgICBjYXNlIEFyZy5JbmRleDoKKyAgICAgICAgICAgIHJldHVybiAiIiAr
ICh0aGlzLl9vZmZzZXQgPyB0aGlzLl9vZmZzZXQgOiAiIikgKyAiKCIgKyB0aGlzLl9iYXNlICsK
KyAgICAgICAgICAgICAgICAiLCIgKyB0aGlzLl9pbmRleCArICh0aGlzLl9zY2FsZSA9PSAxID8g
IiIgOiAiLCIgKyB0aGlzLl9zY2FsZSkgKyAiKSI7CisgICAgICAgIGNhc2UgQXJnLlN0YWNrOgor
ICAgICAgICAgICAgcmV0dXJuICIiICsgKHRoaXMuX29mZnNldCA/IHRoaXMuX29mZnNldCA6ICIi
KSArICIoIiArIHRoaXMuX3Nsb3QgKyAiKSI7CisgICAgICAgIGNhc2UgQXJnLkNhbGxBcmc6Cisg
ICAgICAgICAgICByZXR1cm4gIiIgKyAodGhpcy5fb2Zmc2V0ID8gdGhpcy5fb2Zmc2V0IDogIiIp
ICsgIihjYWxsQXJnKSI7CisgICAgICAgIGNhc2UgQXJnLlJlbENvbmQ6CisgICAgICAgIGNhc2Ug
QXJnLlJlc0NvbmQ6CisgICAgICAgIGNhc2UgQXJnLkRvdWJsZUNvbmQ6CisgICAgICAgIGNhc2Ug
QXJnLldpZHRoOgorICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE5hbWUodGhpcy5fY29uZGl0aW9u
KTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIGtp
bmQiKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQXJnIGtpbmRzCitBcmcuSW52YWxpZCA9
IFN5bWJvbCgiSW52YWxpZCIpOworQXJnLlRtcCA9IFN5bWJvbCgiVG1wIik7CitBcmcuSW1tID0g
U3ltYm9sKCJJbW0iKTsKK0FyZy5CaWdJbW0gPSBTeW1ib2woIkJpZ0ltbSIpOworQXJnLkJpdElt
bSA9IFN5bWJvbCgiQml0SW1tIik7CitBcmcuQml0SW1tNjQgPSBTeW1ib2woIkJpdEltbTY0Iik7
CitBcmcuQWRkciA9IFN5bWJvbCgiQWRkciIpOworQXJnLlN0YWNrID0gU3ltYm9sKCJTdGFjayIp
OworQXJnLkNhbGxBcmcgPSBTeW1ib2woIkNhbGxBcmciKTsKK0FyZy5JbmRleCA9IFN5bWJvbCgi
SW5kZXgiKTsKK0FyZy5SZWxDb25kID0gU3ltYm9sKCJSZWxDb25kIik7CitBcmcuUmVzQ29uZCA9
IFN5bWJvbCgiUmVzQ29uZCIpOworQXJnLkRvdWJsZUNvbmQgPSBTeW1ib2woIkRvdWJsZUNvbmQi
KTsKK0FyZy5XaWR0aCA9IFN5bWJvbCgiV2lkdGgiKTsKKworLy8gQXJnIHJvbGVzCitBcmcuVXNl
ID0gU3ltYm9sKCJVc2UiKTsKK0FyZy5Db2xkVXNlID0gU3ltYm9sKCJDb2xkVXNlIik7CitBcmcu
TGF0ZVVzZSA9IFN5bWJvbCgiTGF0ZVVzZSIpOworQXJnLkxhdGVDb2xkVXNlID0gU3ltYm9sKCJM
YXRlQ29sZFVzZSIpOworQXJnLkRlZiA9IFN5bWJvbCgiRGVmIik7CitBcmcuWkRlZiA9IFN5bWJv
bCgiWkRlZiIpOworQXJnLlVzZURlZiA9IFN5bWJvbCgiVXNlRGVmIik7CitBcmcuVXNlWkRlZiA9
IFN5bWJvbCgiVXNlWkRlZiIpOworQXJnLkVhcmx5RGVmID0gU3ltYm9sKCJFYXJseURlZiIpOwor
QXJnLlNjcmF0Y2ggPSBTeW1ib2woIlNjcmF0Y2giKTsKK0FyZy5Vc2VBZGRyID0gU3ltYm9sKCJV
c2VBZGRyIik7CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYmFzaWNfYmxvY2suanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9iYXNpY19ibG9jay5qcwkocmV2
aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYmFzaWNfYmxvY2suanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMzMgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgQmFzaWNCbG9jayB7CisgICAg
Y29uc3RydWN0b3IoaW5kZXgsIGZyZXF1ZW5jeSkKKyAgICB7CisgICAgICAgIHRoaXMuX2luZGV4
ID0gaW5kZXg7CisgICAgICAgIHRoaXMuX2ZyZXF1ZW5jeSA9IGZyZXF1ZW5jeTsKKyAgICAgICAg
dGhpcy5faW5zdHMgPSBbXTsKKyAgICAgICAgdGhpcy5fc3VjY2Vzc29ycyA9IFtdOworICAgICAg
ICB0aGlzLl9wcmVkZWNlc3NvcnMgPSBbXTsKKyAgICB9CisgICAgCisgICAgZ2V0IGluZGV4KCkg
eyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2lu
c3RzLmxlbmd0aDsgfQorICAgIAorICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLl9pbnN0c1tTeW1ib2wuaXRlcmF0b3JdKCk7CisgICAgfQorICAgIAor
ICAgIGF0KGluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuX2luc3RzLmxl
bmd0aCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3V0IG9mIGJvdW5kcyBhY2Nlc3Mi
KTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RzW2luZGV4XTsKKyAgICB9CisgICAgCisgICAg
Z2V0KGluZGV4KQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuX2luc3RzLmxlbmd0
aCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICByZXR1cm4gdGhpcy5faW5zdHNb
aW5kZXhdOworICAgIH0KKyAgICAKKyAgICBnZXQgbGFzdCgpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5faW5zdHNbdGhpcy5faW5zdHMubGVuZ3RoIC0gMV07CisgICAgfQorICAgIAorICAg
IGdldCBpbnN0cygpIHsgcmV0dXJuIHRoaXMuX2luc3RzOyB9CisgICAgCisgICAgYXBwZW5kKGlu
c3QpIHsgdGhpcy5faW5zdHMucHVzaChpbnN0KTsgfQorICAgIAorICAgIGdldCBudW1TdWNjZXNz
b3JzKCkgeyByZXR1cm4gdGhpcy5fc3VjY2Vzc29ycy5sZW5ndGg7IH0KKyAgICBzdWNjZXNzb3Io
aW5kZXgpIHsgcmV0dXJuIHRoaXMuX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgZ2V0IHN1Y2Nl
c3NvcnMoKSB7IHJldHVybiB0aGlzLl9zdWNjZXNzb3JzOyB9CisgICAgCisgICAgc3VjY2Vzc29y
QmxvY2soaW5kZXgpIHsgcmV0dXJuIHRoaXMuX3N1Y2Nlc3NvcnNbaW5kZXhdLmJsb2NrOyB9Cisg
ICAgZ2V0IHN1Y2Nlc3NvckJsb2NrcygpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFByb3h5
KHRoaXMuX3N1Y2Nlc3NvcnMsIHsKKyAgICAgICAgICAgIGdldDogZnVuY3Rpb24odGFyZ2V0LCBw
cm9wZXJ0eSkgeworICAgICAgICAgICAgICAgIGlmICgocHJvcGVydHkgfCAwKSA9PSBwcm9wZXJ0
eSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV0uYmxvY2s7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV07CisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgCisgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHRhcmdldCwgcHJvcGVydHks
IHZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKChwcm9wZXJ0eSB8IDApID09IHByb3BlcnR5
KSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBvbGRWYWx1ZSA9IHRhcmdldFtwcm9wZXJ0eV07
CisgICAgICAgICAgICAgICAgICAgIHRhcmdldFtwcm9wZXJ0eV0gPSBuZXcgRnJlcXVlbnRlZEJs
b2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsIG9sZFZhbHVlID8gb2xkVmFsdWUu
ZnJlcXVlbmN5IDogTm9ybWFsKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0YXJnZXRbcHJv
cGVydHldID0gdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKyAgICAK
KyAgICBnZXQgbnVtUHJlZGVjZXNzb3JzKCkgeyByZXR1cm4gdGhpcy5fcHJlZGVjZXNzb3JzLmxl
bmd0aDsgfQorICAgIHByZWRlY2Vzc29yKGluZGV4KSB7IHJldHVybiB0aGlzLl9wcmVkZWNlc3Nv
cnNbaW5kZXhdOyB9CisgICAgZ2V0IHByZWRlY2Vzc29ycygpIHsgcmV0dXJuIHRoaXMuX3ByZWRl
Y2Vzc29yczsgfQorICAgIAorICAgIGdldCBmcmVxdWVuY3koKSB7IHJldHVybiB0aGlzLl9mcmVx
dWVuY3k7IH0KKworICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiIyIgKyB0
aGlzLl9pbmRleDsKKyAgICB9CisgICAgCisgICAgZ2V0IGhlYWRlclN0cmluZygpCisgICAgewor
ICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIHJlc3VsdCArPSAiQkIiICsgdGhpcyAr
ICI6IDsgZnJlcXVlbmN5ID0gIiArIHRoaXMuX2ZyZXF1ZW5jeSArICJcbiI7CisgICAgICAgIGlm
ICh0aGlzLl9wcmVkZWNlc3NvcnMubGVuZ3RoKQorICAgICAgICAgICAgcmVzdWx0ICs9ICIgIFBy
ZWRlY2Vzc29yczogIiArIHRoaXMuX3ByZWRlY2Vzc29ycy5qb2luKCIsICIpICsgIlxuIjsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisgICAgZ2V0IGZvb3RlclN0cmluZygp
CisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAgIGlmICh0aGlzLl9zdWNj
ZXNzb3JzLmxlbmd0aCkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiICBTdWNjZXNzb3JzOiAiICsg
dGhpcy5fc3VjY2Vzc29ycy5qb2luKCIsICIpICsgIlxuIjsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9CisgICAgCisgICAgdG9TdHJpbmdEZWVwKCkKKyAgICB7CisgICAgICAgIGxldCBy
ZXN1bHQgPSAiIjsKKyAgICAgICAgcmVzdWx0ICs9IHRoaXMuaGVhZGVyU3RyaW5nOworICAgICAg
ICBmb3IgKGxldCBpbnN0IG9mIHRoaXMpCisgICAgICAgICAgICByZXN1bHQgKz0gIiAgICAiICsg
aW5zdCArICJcbiI7CisgICAgICAgIHJlc3VsdCArPSB0aGlzLmZvb3RlclN0cmluZzsKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNB
aXIvYmVuY2htYXJrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvYmVu
Y2htYXJrLmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9iZW5jaG1h
cmsuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MSBAQAorInVzZSBzdHJpY3QiOworLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitmdW5jdGlvbiBiZW5j
aG1hcmsoKQoreworICAgIGNvbnN0IHZlcmJvc2UgPSAwOworICAgIGNvbnN0IG51bUl0ZXJhdGlv
bnMgPSAyMDA7CisgICAgCisgICAgbGV0IGJlZm9yZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgCisg
ICAgdmFyIGNvZGVHZW5lcmF0b3JzID0gWworICAgICAgICBjcmVhdGVQYXlsb2FkR2JlbXVFeGVj
dXRlSXRlcmF0aW9uLAorICAgICAgICBjcmVhdGVQYXlsb2FkSW1hZ2luZ0dhdXNzaWFuQmx1ckdh
dXNzaWFuQmx1ciwKKyAgICAgICAgY3JlYXRlUGF5bG9hZFR5cGVzY3JpcHRTY2FuSWRlbnRpZmll
ciwKKyAgICAgICAgY3JlYXRlUGF5bG9hZEpTQWlyQUNMajhDCisgICAgXTsKKyAgICAKKyAgICBm
b3IgKGxldCBpdGVyYXRpb24gPSAwOyBpdGVyYXRpb24gPCBudW1JdGVyYXRpb25zOyArK2l0ZXJh
dGlvbikgeworICAgICAgICBmb3IgKGxldCBnZW5lcmF0ZUNvZGUgb2YgY29kZUdlbmVyYXRvcnMp
IHsKKyAgICAgICAgICAgIGxldCBjb2RlID0gZ2VuZXJhdGVDb2RlKCk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgcHJpbnQoIkJlZm9y
ZSBhbGxvY2F0ZVN0YWNrOiIpOworICAgICAgICAgICAgICAgIHByaW50KGNvZGUpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBhbGxvY2F0ZVN0YWNrKGNvZGUpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAg
IHByaW50KCJBZnRlciBhbGxvY2F0ZVN0YWNrOiIpOworICAgICAgICAgICAgICAgIHByaW50KGNv
ZGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAorICAgIGxldCBhZnRl
ciA9IGN1cnJlbnRUaW1lKCk7CisgICAgcmV0dXJuIGFmdGVyIC0gYmVmb3JlOworfQpJbmRleDog
UGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9jb2RlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNl
VGVzdHMvSlNBaXIvY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNB
aXIvY29kZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk5IEBACisidXNlIHN0cmljdCI7
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKK2NsYXNzIENv
ZGUgeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2Jsb2NrcyA9IFtd
OworICAgICAgICB0aGlzLl9zdGFja1Nsb3RzID0gW107CisgICAgICAgIHRoaXMuX2dwVG1wcyA9
IFtdOworICAgICAgICB0aGlzLl9mcFRtcHMgPSBbXTsKKyAgICAgICAgdGhpcy5fY2FsbEFyZ0Fy
ZWFTaXplID0gMDsKKyAgICAgICAgdGhpcy5fZnJhbWVTaXplID0gMDsKKyAgICB9CisgICAgCisg
ICAgYWRkQmxvY2soZnJlcXVlbmN5KQorICAgIHsKKyAgICAgICAgaWYgKGZyZXF1ZW5jeSA9PSBu
dWxsKQorICAgICAgICAgICAgZnJlcXVlbmN5ID0gMTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGFk
ZEluZGV4ZWQodGhpcy5fYmxvY2tzLCBCYXNpY0Jsb2NrLCBmcmVxdWVuY3kpOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBhZGRTdGFja1Nsb3QoYnl0ZVNpemUsIGtp
bmQpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gYWRkSW5kZXhlZCh0aGlzLl9zdGFja1Ns
b3RzLCBTdGFja1Nsb3QsIGJ5dGVTaXplLCBraW5kKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisgICAgCisgICAgbmV3VG1wKHR5cGUpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0
ID0gYWRkSW5kZXhlZCh0aGlzWyJfIiArIHN5bWJvbE5hbWUodHlwZSkudG9Mb3dlckNhc2UoKSAr
ICJUbXBzIl0sIFRtcCwgdHlwZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAg
IAorICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5fYmxvY2tzLmxlbmd0aDsgfQorICAgIGF0
KGluZGV4KSB7IHJldHVybiB0aGlzLl9ibG9ja3NbaW5kZXhdOyB9CisgICAgCisgICAgW1N5bWJv
bC5pdGVyYXRvcl0oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Jsb2Nrc1tTeW1ib2wu
aXRlcmF0b3JdKCk7CisgICAgfQorICAgIAorICAgIGdldCBibG9ja3MoKSB7IHJldHVybiB0aGlz
Ll9ibG9ja3M7IH0KKyAgICBnZXQgc3RhY2tTbG90cygpIHsgcmV0dXJuIHRoaXMuX3N0YWNrU2xv
dHM7IH0KKyAgICAKKyAgICB0bXBzKHR5cGUpIHsgcmV0dXJuIHRoaXNbIl8iICsgc3ltYm9sTmFt
ZSh0eXBlKS50b0xvd2VyQ2FzZSgpICsgIlRtcHMiXTsgfQorICAgIAorICAgIGdldCBjYWxsQXJn
QXJlYVNpemUoKSB7IHJldHVybiB0aGlzLl9jYWxsQXJnQXJlYVNpemU7IH0KKyAgICAKKyAgICBy
ZXF1ZXN0Q2FsbEFyZ0FyZWFTaXplKHNpemUpCisgICAgeworICAgICAgICB0aGlzLl9jYWxsQXJn
QXJlYVNpemUgPSBNYXRoLm1heCh0aGlzLl9jYWxsQXJnQXJlYVNpemUsIHJvdW5kVXBUb011bHRp
cGxlT2Yoc3RhY2tBbGlnbm1lbnRCeXRlcywgc2l6ZSkpOworICAgIH0KKyAgICAKKyAgICBnZXQg
ZnJhbWVTaXplKCkgeyByZXR1cm4gdGhpcy5fZnJhbWVTaXplOyB9CisgICAgCisgICAgc2V0RnJh
bWVTaXplKGZyYW1lU2l6ZSkgeyB0aGlzLl9mcmFtZVNpemUgPSBmcmFtZVNpemU7IH0KKyAgICAK
KyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CisgICAgICAg
IGZvciAobGV0IGJsb2NrIG9mIHRoaXMpIHsKKyAgICAgICAgICAgIHJlc3VsdCArPSBibG9jay50
b1N0cmluZ0RlZXAoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5zdGFja1Nsb3RzLmxl
bmd0aCkgeworICAgICAgICAgICAgcmVzdWx0ICs9ICJTdGFjayBzbG90czpcbiI7CisgICAgICAg
ICAgICBmb3IgKGxldCBzbG90IG9mIHRoaXMuc3RhY2tTbG90cykKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgKz0gIiAgICAiICsgc2xvdCArICJcbiI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRo
aXMuX2ZyYW1lU2l6ZSkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiRnJhbWUgc2l6ZTogIiArIHRo
aXMuX2ZyYW1lU2l6ZSArICJcbiI7CisgICAgICAgIGlmICh0aGlzLl9jYWxsQXJnQXJlYVNpemUp
CisgICAgICAgICAgICByZXN1bHQgKz0gIkNhbGwgYXJnIGFyZWEgc2l6ZTogIiArIHRoaXMuX2Nh
bGxBcmdBcmVhU2l6ZSArICJcbiI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfQpJ
bmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9jdXN0b20uanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVy
Zm9ybWFuY2VUZXN0cy9KU0Fpci9jdXN0b20uanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5j
ZVRlc3RzL0pTQWlyL2N1c3RvbS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwNCBAQAor
InVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCitjb25zdCBTaHVmZmxlQ3VzdG9tID0geworICAgIGZvckVhY2hBcmcoaW5zdCwgZnVuYykK
KyAgICB7CisgICAgICAgIHZhciBsaW1pdCA9IGluc3QuYXJncy5sZW5ndGggLyAzICogMzsKKyAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW1pdDsgaSArPSAzKSB7CisgICAgICAgICAgICBs
ZXQgc3JjID0gaW5zdC5hcmdzW2kgKyAwXTsKKyAgICAgICAgICAgIGxldCBkc3QgPSBpbnN0LmFy
Z3NbaSArIDFdOworICAgICAgICAgICAgbGV0IHdpZHRoQXJnID0gaW5zdC5hcmdzW2kgKyAyXTsK
KyAgICAgICAgICAgIGxldCB3aWR0aCA9IHdpZHRoQXJnLndpZHRoOworICAgICAgICAgICAgbGV0
IHR5cGUgPSBzcmMuaXNHUCAmJiBkc3QuaXNHUCA/IEdQIDogRlA7CisgICAgICAgICAgICBpbnN0
LnZpc2l0QXJnKGkgKyAwLCBmdW5jLCBBcmcuVXNlLCB0eXBlLCB3aWR0aCk7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKGkgKyAxLCBmdW5jLCBBcmcuRGVmLCB0eXBlLCB3aWR0aCk7CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKGkgKyAyLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7CisgICAg
ICAgIH0KKyAgICB9LAorICAgIAorICAgIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3Qp
CisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfTsKKworY29uc3QgUGF0Y2hD
dXN0b20gPSB7CisgICAgZm9yRWFjaEFyZyhpbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCBpbnN0LmFyZ3MubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlu
c3QudmlzaXRBcmcoCisgICAgICAgICAgICAgICAgaSwgZnVuYywgaW5zdC5wYXRjaEFyZ0RhdGFb
aV0ucm9sZSwgaW5zdC5wYXRjaEFyZ0RhdGFbaV0udHlwZSwKKyAgICAgICAgICAgICAgICBpbnN0
LnBhdGNoQXJnRGF0YVtpXS53aWR0aCk7CisgICAgICAgIH0KKyAgICB9LAorICAgIAorICAgIGhh
c05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpCisgICAgeworICAgICAgICByZXR1cm4gaW5z
dC5wYXRjaEhhc05vbkFyZ0VmZmVjdHM7CisgICAgfQorfTsKKworY29uc3QgQ0NhbGxDdXN0b20g
PSB7CisgICAgZm9yRWFjaEFyZyhpbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgbGV0IGluZGV4
ID0gMDsKKyAgICAgICAgaW5zdC52aXNpdEFyZyhpbmRleCsrLCBmdW5jLCBBcmcuVXNlLCBHUCwg
UHRyKTsgLy8gY2FsbGVlCisgICAgICAgIAorICAgICAgICBpZiAoaW5zdC5jQ2FsbFR5cGUgIT0g
Vm9pZCkgeworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygKKyAgICAgICAgICAgICAgICBpbmRl
eCsrLCBmdW5jLCBBcmcuRGVmLCBBcmcudHlwZUZvckIzVHlwZShpbnN0LmNDYWxsVHlwZSksCisg
ICAgICAgICAgICAgICAgQXJnLndpZHRoRm9yQjNUeXBlKGluc3QuY0NhbGxUeXBlKSk7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGZvciAobGV0IHR5cGUgb2YgaW5zdC5jQ2FsbEFyZ1R5
cGVzKSB7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKAorICAgICAgICAgICAgICAgIGluZGV4
KyssIGZ1bmMsIEFyZy5Vc2UsIEFyZy50eXBlRm9yQjNUeXBlKHR5cGUpLCBBcmcud2lkdGhGb3JC
M1R5cGUodHlwZSkpOworICAgICAgICB9CisgICAgfSwKKyAgICAKKyAgICBoYXNOb25BcmdOb25D
b250cm9sRWZmZWN0cyhpbnN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
fTsKKworY29uc3QgQ29sZENDYWxsQ3VzdG9tID0geworICAgIGZvckVhY2hBcmcoaW5zdCwgZnVu
YykKKyAgICB7CisgICAgICAgIENDYWxsQ3VzdG9tLmZvckVhY2hBcmcoCisgICAgICAgICAgICBp
bnN0LAorICAgICAgICAgICAgKGFyZywgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZnVuYyhhcmcsIEFyZy5jb29sZWQocm9sZSksIHR5cGUsIHdpZHRoKTsK
KyAgICAgICAgICAgIH0pOworICAgIH0sCisgICAgCisgICAgaGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoaW5zdCkKKyAgICB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK307CisKSW5k
ZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvZnJlcXVlbnRlZF9ibG9jay5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2ZyZXF1ZW50ZWRfYmxvY2suanMJKHJldmlzaW9u
IDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2ZyZXF1ZW50ZWRfYmxvY2suanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBGcmVxdWVudGVkQmxvY2sgewor
ICAgIGNvbnN0cnVjdG9yKGJsb2NrLCBmcmVxdWVuY3kpCisgICAgeworICAgICAgICB0aGlzLmJs
b2NrID0gYmxvY2s7CisgICAgICAgIHRoaXMuZnJlcXVlbmN5ID0gZnJlcXVlbmN5OworICAgIH0K
KyAgICAKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gKHRoaXMuZnJlcXVl
bmN5ID09IE5vcm1hbCA/ICIiIDogIlJhcmU6IikgKyB0aGlzLmJsb2NrOworICAgIH0KK30KSW5k
ZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvaW5zZXJ0aW9uX3NldC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2luc2VydGlvbl9zZXQuanMJKHJldmlzaW9uIDApCisr
KyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL2luc2VydGlvbl9zZXQuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw4OSBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCitjbGFzcyBJbnNlcnRpb24geworICAgIGNvbnN0cnVjdG9y
KGluZGV4LCBlbGVtZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKKyAg
ICAgICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnQ7CisgICAgfQorICAgIAorICAgIGdldCBpbmRl
eCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9CisgICAgZ2V0IGVsZW1lbnQoKSB7IHJldHVybiB0
aGlzLl9lbGVtZW50OyB9CisgICAgCisgICAgbGVzc1RoYW4ob3RoZXIpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5faW5kZXggPCBvdGhlci5faW5kZXg7CisgICAgfQorfQorCitjbGFzcyBJ
bnNlcnRpb25TZXQgeworICAgIGNvbnN0cnVjdG9yKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2lu
c2VydGlvbnMgPSBbXQorICAgIH0KKyAgICAKKyAgICBhcHBlbmRJbnNlcnRpb24oaW5zZXJ0aW9u
KQorICAgIHsKKyAgICAgICAgdGhpcy5faW5zZXJ0aW9ucy5wdXNoKGluc2VydGlvbik7CisgICAg
fQorICAgIAorICAgIGFwcGVuZChpbmRleCwgZWxlbWVudCkKKyAgICB7CisgICAgICAgIHRoaXMu
YXBwZW5kSW5zZXJ0aW9uKG5ldyBJbnNlcnRpb24oaW5kZXgsIGVsZW1lbnQpKTsKKyAgICB9Cisg
ICAgCisgICAgZXhlY3V0ZSh0YXJnZXQpCisgICAgeworICAgICAgICAvLyBXZSBidWJibGUtc29y
dCBiZWNhdXNlIHRoYXQncyB3aGF0IHRoZSBDKysgY29kZSwgYW5kIGZvciB0aGUgc2FtZSByZWFz
b24gYXMgd2UgZG8gaXQ6CisgICAgICAgIC8vIHRoZSBzdGRsaWIgZG9lc24ndCBoYXZlIGEgc3Rh
YmxlIHNvcnQgYW5kIG1lcmdlc29ydCBpcyBzbG93ZXIgaW4gdGhlIGNvbW1vbiBjYXNlIG9mIHRo
ZQorICAgICAgICAvLyBhcnJheSB1c3VhbGx5IGJlaW5nIHNvcnRlZC4gVGhpcyBhcnJheSBpcyB1
c3VhbGx5IHNvcnRlZC4KKyAgICAgICAgYnViYmxlU29ydCh0aGlzLl9pbnNlcnRpb25zLCAoYSwg
YikgPT4gKGEubGVzc1RoYW4oYikpKTsKKyAgICAgICAgCisgICAgICAgIGxldCBudW1JbnNlcnRp
b25zID0gdGhpcy5faW5zZXJ0aW9ucy5sZW5ndGg7CisgICAgICAgIGlmICghbnVtSW5zZXJ0aW9u
cykKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBsZXQgb3JpZ2luYWxUYXJnZXRTaXpl
ID0gdGFyZ2V0Lmxlbmd0aDsKKyAgICAgICAgdGFyZ2V0Lmxlbmd0aCArPSBudW1JbnNlcnRpb25z
OworICAgICAgICBsZXQgbGFzdEluZGV4ID0gdGFyZ2V0Lmxlbmd0aDsKKyAgICAgICAgZm9yIChs
ZXQgaW5kZXhJbkluc2VydGlvbnMgPSBudW1JbnNlcnRpb25zOyBpbmRleEluSW5zZXJ0aW9ucy0t
OykgeworICAgICAgICAgICAgbGV0IGluc2VydGlvbiA9IHRoaXMuX2luc2VydGlvbnNbaW5kZXhJ
bkluc2VydGlvbnNdOworICAgICAgICAgICAgaWYgKGluZGV4SW5JbnNlcnRpb25zICYmIGluc2Vy
dGlvbi5pbmRleCA8IHRoaXMuX2luc2VydGlvbnNbaW5kZXhJbkluc2VydGlvbnMgLSAxXS5pbmRl
eCkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkluc2VydGlvbnMgb3V0IG9mIG9y
ZGVyIik7CisgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uLmluZGV4ID4gb3JpZ2luYWxUYXJnZXRT
aXplKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiT3V0LW9mLWJvdW5kcyBpbnNl
cnRpb24iKTsKKyAgICAgICAgICAgIGxldCBmaXJzdEluZGV4ID0gaW5zZXJ0aW9uLmluZGV4ICsg
aW5kZXhJbkluc2VydGlvbnM7CisgICAgICAgICAgICBsZXQgaW5kZXhPZmZzZXQgPSBpbmRleElu
SW5zZXJ0aW9ucyArIDE7CisgICAgICAgICAgICBmb3IgKGxldCBpID0gbGFzdEluZGV4OyAtLWkg
PiBmaXJzdEluZGV4OykKKyAgICAgICAgICAgICAgICB0YXJnZXRbaV0gPSB0YXJnZXRbaSAtIGlu
ZGV4T2Zmc2V0XTsKKyAgICAgICAgICAgIHRhcmdldFtmaXJzdEluZGV4XSA9IGluc2VydGlvbi5l
bGVtZW50OworICAgICAgICAgICAgbGFzdEluZGV4ID0gZmlyc3RJbmRleDsKKyAgICAgICAgfQor
ICAgICAgICB0aGlzLl9pbnNlcnRpb25zID0gW107CisgICAgICAgIHJldHVybiBudW1JbnNlcnRp
b25zOworICAgIH0KK30KKwpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9pbnN0LmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvaW5zdC5qcwkocmV2aXNpb24gMCkK
KysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvaW5zdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDEzMyBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCitjbGFzcyBJbnN0IHsKKyAgICBjb25zdHJ1Y3RvcihvcGNvZGUsIGFy
Z3MpCisgICAgeworICAgICAgICB0aGlzLl9vcGNvZGUgPSBvcGNvZGU7CisgICAgICAgIHRoaXMu
X2FyZ3MgPSBhcmdzID09IG51bGwgPyBbXSA6IGFyZ3M7CisgICAgfQorICAgIAorICAgIGFwcGVu
ZCguLi5hcmdzKQorICAgIHsKKyAgICAgICAgdGhpcy5fYXJncy5wdXNoKC4uLmFyZ3MpOworICAg
IH0KKyAgICAKKyAgICBjbGVhcigpCisgICAgeworICAgICAgICB0aGlzLl9vcGNvZGUgPSBOb3A7
CisgICAgICAgIHRoaXMuX2FyZ3MgPSBbXTsKKyAgICB9CisgICAgCisgICAgZ2V0IG9wY29kZSgp
IHsgcmV0dXJuIHRoaXMuX29wY29kZTsgfQorICAgIGdldCBhcmdzKCkgeyByZXR1cm4gdGhpcy5f
YXJnczsgfQorICAgIAorICAgIHZpc2l0QXJnKGluZGV4LCBmdW5jLCAuLi5hcmdzKQorICAgIHsK
KyAgICAgICAgbGV0IHJlcGxhY2VtZW50ID0gZnVuYyh0aGlzLl9hcmdzW2luZGV4XSwgLi4uYXJn
cyk7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCkKKyAgICAgICAgICAgIHRoaXMuX2FyZ3NbaW5k
ZXhdID0gcmVwbGFjZW1lbnQ7CisgICAgfQorICAgIAorICAgIGZvckVhY2hUbXBGYXN0KGZ1bmMp
CisgICAgeworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2FyZ3MubGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgICAgIGlmIChyZXBs
YWNlbWVudCA9IHRoaXMuX2FyZ3NbaV0uZm9yRWFjaFRtcEZhc3QoZnVuYykpCisgICAgICAgICAg
ICAgICAgdGhpcy5fYXJnc1tpXSA9IHJlcGxhY2VtZW50OworICAgICAgICB9CisgICAgfQorICAg
IAorICAgIGZvckVhY2hBcmcoZnVuYykKKyAgICB7CisgICAgICAgIEluc3RfZm9yRWFjaEFyZyh0
aGlzLCBmdW5jKTsKKyAgICB9CisgICAgCisgICAgZm9yRWFjaFRtcChmdW5jKQorICAgIHsKKyAg
ICAgICAgdGhpcy5mb3JFYWNoQXJnKChhcmcsIHJvbGUsIHR5cGUsIHdpZHRoKSA9PiB7CisgICAg
ICAgICAgICByZXR1cm4gYXJnLmZvckVhY2hUbXAocm9sZSwgdHlwZSwgd2lkdGgsIGZ1bmMpOwor
ICAgICAgICB9KTsKKyAgICB9CisgICAgCisgICAgZm9yRWFjaCh0aGluZywgZnVuYykKKyAgICB7
CisgICAgICAgIHRoaXMuZm9yRWFjaEFyZygoYXJnLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4gewor
ICAgICAgICAgICAgcmV0dXJuIGFyZy5mb3JFYWNoKHRoaW5nLCByb2xlLCB0eXBlLCB3aWR0aCwg
ZnVuYyk7CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaERlZih0
aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKHByZXZJ
bnN0KSB7CisgICAgICAgICAgICBwcmV2SW5zdC5mb3JFYWNoKAorICAgICAgICAgICAgICAgIHRo
aW5nLAorICAgICAgICAgICAgICAgICh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKEFyZy5pc0xhdGVEZWYocm9sZSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZnVuYyh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobmV4dEluc3Qp
IHsKKyAgICAgICAgICAgIG5leHRJbnN0LmZvckVhY2goCisgICAgICAgICAgICAgICAgdGhpbmcs
CisgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAg
ICAgICAgICAgICAgICBpZiAoQXJnLmlzRWFybHlEZWYocm9sZSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZnVuYyh2YWx1ZSwgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0YXRpYyBmb3JFYWNoRGVm
V2l0aEV4dHJhQ2xvYmJlcmVkUmVncyh0aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5jKQor
ICAgIHsKKyAgICAgICAgZm9yRWFjaERlZih0aGluZywgcHJldkluc3QsIG5leHRJbnN0LCBmdW5j
KTsKKyAgICAgICAgCisgICAgICAgIGxldCByZWdEZWZSb2xlOworICAgICAgICAKKyAgICAgICAg
bGV0IHJlcG9ydFJlZyA9IHJlZyA9PiB7CisgICAgICAgICAgICBsZXQgdHlwZSA9IHJlZy5pc0dQ
UiA/IEdQIDogRlA7CisgICAgICAgICAgICBmdW5jKHRoaW5nLmZyb21SZWcocmVnKSwgcmVnRGVm
Um9sZSwgdHlwZSwgQXJnLmNvbnNlcnZhdGl2ZVdpZHRoKHR5cGUpKTsKKyAgICAgICAgfTsKKyAg
ICAgICAgCisgICAgICAgIGlmIChwcmV2SW5zdCAmJiBwcmV2SW5zdC5vcGNvZGUgPT0gUGF0Y2gp
IHsKKyAgICAgICAgICAgIHJlZ0RlZlJvbGUgPSBBcmcuRGVmOworICAgICAgICAgICAgcHJldklu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmZvckVhY2gocmVwb3J0UmVnKTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgaWYgKG5leHRJbnN0ICYmIG5leHRJbnN0Lm9wY29kZSA9PSBQYXRjaCkg
eworICAgICAgICAgICAgcmVnRGVmUm9sZSA9IEFyZy5FYXJseURlZjsKKyAgICAgICAgICAgIG5l
eHRJbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmZvckVhY2gocmVwb3J0UmVnKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICAKKyAgICBnZXQgaGFzTm9uQXJnRWZmZWN0cygpIHsgcmV0dXJuIElu
c3RfaGFzTm9uQXJnRWZmZWN0cyh0aGlzKTsgfQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7
CisgICAgICAgIHJldHVybiAiIiArIHN5bWJvbE5hbWUodGhpcy5fb3Bjb2RlKSArICIgIiArIHRo
aXMuX2FyZ3Muam9pbigiLCAiKTsKKyAgICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvbGl2ZW5lc3MuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9s
aXZlbmVzcy5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvbGl2ZW5l
c3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNTIgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgTGl2ZW5l
c3MgeworICAgIGNvbnN0cnVjdG9yKHRoaW5nLCBjb2RlKQorICAgIHsKKyAgICAgICAgdGhpcy5f
dGhpbmcgPSB0aGluZzsKKyAgICAgICAgdGhpcy5fY29kZSA9IGNvZGU7CisgICAgICAgIAorICAg
ICAgICB0aGlzLl9saXZlQXRIZWFkID0gbmV3IE1hcCgpOworICAgICAgICB0aGlzLl9saXZlQXRU
YWlsID0gbmV3IE1hcCgpOworICAgICAgICAKKyAgICAgICAgZm9yIChsZXQgYmxvY2sgb2YgY29k
ZSkgeworICAgICAgICAgICAgdGhpcy5fbGl2ZUF0SGVhZC5zZXQoYmxvY2ssIG5ldyBTZXQoKSk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGxldCBsaXZlQXRUYWlsID0gbmV3IFNldCgpOwor
ICAgICAgICAgICAgdGhpcy5fbGl2ZUF0VGFpbC5zZXQoYmxvY2ssIGxpdmVBdFRhaWwpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBibG9jay5sYXN0LmZvckVhY2goCisgICAgICAgICAgICAg
ICAgdGhpbmcsCisgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4g
eworICAgICAgICAgICAgICAgICAgICBpZiAoQXJnLmlzTGF0ZVVzZShyb2xlKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGxpdmVBdFRhaWwuYWRkKHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbGV0IGRpcnR5QmxvY2tzID0gbmV3IFNl
dChjb2RlKTsKKyAgICAgICAgCisgICAgICAgIGxldCBjaGFuZ2VkOworICAgICAgICBkbyB7Cisg
ICAgICAgICAgICBjaGFuZ2VkID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZv
ciAobGV0IGJsb2NrSW5kZXggPSBjb2RlLnNpemU7IGJsb2NrSW5kZXgtLTspIHsKKyAgICAgICAg
ICAgICAgICBsZXQgYmxvY2sgPSBjb2RlLmF0KGJsb2NrSW5kZXgpOworICAgICAgICAgICAgICAg
IGlmICghYmxvY2spCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIGlmICghZGlydHlCbG9ja3MuZGVsZXRlKGJsb2NrKSkKKyAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgbGV0IGxvY2FsQ2FsYyA9IHRoaXMubG9jYWxDYWxjKGJsb2NrKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpbnN0SW5kZXggPSBibG9jay5zaXplOyBpbnN0SW5kZXgtLTspCisgICAg
ICAgICAgICAgICAgICAgIGxvY2FsQ2FsYy5leGVjdXRlKGluc3RJbmRleCk7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSBlYXJseSBkZWYncyBvZiB0aGUg
Zmlyc3QgaW5zdHJ1Y3Rpb24uCisgICAgICAgICAgICAgICAgYmxvY2suYXQoMCkuZm9yRWFjaCgK
KyAgICAgICAgICAgICAgICAgICAgdGhpbmcsCisgICAgICAgICAgICAgICAgICAgICh2YWx1ZSwg
cm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcmcu
aXNFYXJseURlZihyb2xlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbENhbGMu
bGl2ZVNldC5yZW1vdmUodmFsdWUpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBsZXQgbGl2ZUF0SGVhZCA9IHRoaXMuX2xpdmVBdEhl
YWQuZ2V0KGJsb2NrKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIW1l
cmdlSW50b1NldChsaXZlQXRIZWFkLCBsb2NhbENhbGMubGl2ZVNldCkpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciAo
bGV0IHByZWRlY2Vzc29yIG9mIGJsb2NrLnByZWRlY2Vzc29ycykgeworICAgICAgICAgICAgICAg
ICAgICBpZiAobWVyZ2VJbnRvU2V0KHRoaXMuX2xpdmVBdFRhaWwuZ2V0KHByZWRlY2Vzc29yKSwg
bGl2ZUF0SGVhZCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpcnR5QmxvY2tzLmFkZChw
cmVkZWNlc3Nvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSB3aGlsZSAoY2hhbmdlZCk7CisgICAgfQorICAgIAorICAgIGdldCB0aGluZygpIHsg
cmV0dXJuIHRoaXMuX3RoaW5nOyB9CisgICAgZ2V0IGNvZGUoKSB7IHJldHVybiB0aGlzLl9jb2Rl
OyB9CisgICAgZ2V0IGxpdmVBdEhlYWQoKSB7IHJldHVybiB0aGlzLl9saXZlQXRIZWFkOyB9Cisg
ICAgZ2V0IGxpdmVBdFRhaWwoKSB7IHJldHVybiB0aGlzLl9saXZlQXRUYWlsOyB9CisgICAgCisg
ICAgbG9jYWxDYWxjKGJsb2NrKQorICAgIHsKKyAgICAgICAgbGV0IGxpdmVuZXNzID0gdGhpczsK
KyAgICAgICAgY2xhc3MgTG9jYWxDYWxjIHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9saXZlU2V0ID0gbmV3IFNldChsaXZl
bmVzcy5saXZlQXRUYWlsLmdldChibG9jaykpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgICAgICBnZXQgbGl2ZVNldCgpIHsgcmV0dXJuIHRoaXMuX2xpdmVTZXQ7IH0KKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgZXhlY3V0ZShpbnN0SW5kZXgpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgbGV0IGluc3QgPSBibG9jay5hdChpbnN0SW5kZXgpOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEZpcnN0IGhhbmRsZSB0aGUgZWFybHkgZGVm
cyBvZiB0aGUgbmV4dCBpbnN0cnVjdGlvbi4KKyAgICAgICAgICAgICAgICBpZiAoaW5zdEluZGV4
ICsgMSA8IGJsb2NrLnNpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2suYXQoaW5zdElu
ZGV4ICsgMSkuZm9yRWFjaCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVuZXNzLnRoaW5n
LAorICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNFYXJseURlZihyb2xlKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGl2ZVNldC5kZWxldGUodmFs
dWUpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIFRoZW4gaGFuZGxlIGRlZnMuCisgICAg
ICAgICAgICAgICAgaW5zdC5mb3JFYWNoKAorICAgICAgICAgICAgICAgICAgICBsaXZlbmVzcy50
aGluZywKKyAgICAgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4g
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFyZy5pc0xhdGVEZWYocm9sZSkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGl2ZVNldC5kZWxldGUodmFsdWUpOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAv
LyBUaGVuIGhhbmRsZSB1c2VzLgorICAgICAgICAgICAgICAgIGluc3QuZm9yRWFjaCgKKyAgICAg
ICAgICAgICAgICAgICAgbGl2ZW5lc3MudGhpbmcsCisgICAgICAgICAgICAgICAgICAgICh2YWx1
ZSwgcm9sZSwgdHlwZSwgd2lkdGgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChB
cmcuaXNFYXJseVVzZShyb2xlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9s
aXZlU2V0LmFkZCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIC8vIEZpbmFsbHkgaGFuZGxlIHRoZSBsYXRlIHVzZXMgb2Yg
dGhlIHByZXZpb3VzIGluc3RydWN0aW9uLgorICAgICAgICAgICAgICAgIGlmIChpbnN0SW5kZXgg
LSAxID49IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2suYXQoaW5zdEluZGV4IC0gMSku
Zm9yRWFjaCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpdmVuZXNzLnRoaW5nLAorICAgICAg
ICAgICAgICAgICAgICAgICAgKHZhbHVlLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChBcmcuaXNMYXRlVXNlKHJvbGUpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9saXZlU2V0LmFkZCh2YWx1ZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXcgTG9jYWxDYWxjKCk7CisgICAg
fQorfQorCkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL29wY29kZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL29wY29kZS5qcwkocmV2aXNpb24gMCkKKysrIFBl
cmZvcm1hbmNlVGVzdHMvSlNBaXIvb3Bjb2RlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTM4MCBAQAorInVzZSBzdHJpY3QiOworLy8gR2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3Iu
cmIgZnJvbSBKYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMgLS0gZG8gbm90
IGVkaXQhCitjb25zdCBOb3AgPSBTeW1ib2woIk5vcCIpOworY29uc3QgQWRkMzIgPSBTeW1ib2wo
IkFkZDMyIik7Citjb25zdCBBZGQ4ID0gU3ltYm9sKCJBZGQ4Iik7Citjb25zdCBBZGQxNiA9IFN5
bWJvbCgiQWRkMTYiKTsKK2NvbnN0IEFkZDY0ID0gU3ltYm9sKCJBZGQ2NCIpOworY29uc3QgQWRk
RG91YmxlID0gU3ltYm9sKCJBZGREb3VibGUiKTsKK2NvbnN0IEFkZEZsb2F0ID0gU3ltYm9sKCJB
ZGRGbG9hdCIpOworY29uc3QgU3ViMzIgPSBTeW1ib2woIlN1YjMyIik7Citjb25zdCBTdWI2NCA9
IFN5bWJvbCgiU3ViNjQiKTsKK2NvbnN0IFN1YkRvdWJsZSA9IFN5bWJvbCgiU3ViRG91YmxlIik7
Citjb25zdCBTdWJGbG9hdCA9IFN5bWJvbCgiU3ViRmxvYXQiKTsKK2NvbnN0IE5lZzMyID0gU3lt
Ym9sKCJOZWczMiIpOworY29uc3QgTmVnNjQgPSBTeW1ib2woIk5lZzY0Iik7Citjb25zdCBOZWdh
dGVEb3VibGUgPSBTeW1ib2woIk5lZ2F0ZURvdWJsZSIpOworY29uc3QgTXVsMzIgPSBTeW1ib2wo
Ik11bDMyIik7Citjb25zdCBNdWw2NCA9IFN5bWJvbCgiTXVsNjQiKTsKK2NvbnN0IE11bHRpcGx5
QWRkMzIgPSBTeW1ib2woIk11bHRpcGx5QWRkMzIiKTsKK2NvbnN0IE11bHRpcGx5QWRkNjQgPSBT
eW1ib2woIk11bHRpcGx5QWRkNjQiKTsKK2NvbnN0IE11bHRpcGx5U3ViMzIgPSBTeW1ib2woIk11
bHRpcGx5U3ViMzIiKTsKK2NvbnN0IE11bHRpcGx5U3ViNjQgPSBTeW1ib2woIk11bHRpcGx5U3Vi
NjQiKTsKK2NvbnN0IE11bHRpcGx5TmVnMzIgPSBTeW1ib2woIk11bHRpcGx5TmVnMzIiKTsKK2Nv
bnN0IE11bHRpcGx5TmVnNjQgPSBTeW1ib2woIk11bHRpcGx5TmVnNjQiKTsKK2NvbnN0IERpdjMy
ID0gU3ltYm9sKCJEaXYzMiIpOworY29uc3QgRGl2NjQgPSBTeW1ib2woIkRpdjY0Iik7Citjb25z
dCBNdWxEb3VibGUgPSBTeW1ib2woIk11bERvdWJsZSIpOworY29uc3QgTXVsRmxvYXQgPSBTeW1i
b2woIk11bEZsb2F0Iik7Citjb25zdCBEaXZEb3VibGUgPSBTeW1ib2woIkRpdkRvdWJsZSIpOwor
Y29uc3QgRGl2RmxvYXQgPSBTeW1ib2woIkRpdkZsb2F0Iik7Citjb25zdCBYODZDb252ZXJ0VG9E
b3VibGVXb3JkMzIgPSBTeW1ib2woIlg4NkNvbnZlcnRUb0RvdWJsZVdvcmQzMiIpOworY29uc3Qg
WDg2Q29udmVydFRvUXVhZFdvcmQ2NCA9IFN5bWJvbCgiWDg2Q29udmVydFRvUXVhZFdvcmQ2NCIp
OworY29uc3QgWDg2RGl2MzIgPSBTeW1ib2woIlg4NkRpdjMyIik7Citjb25zdCBYODZEaXY2NCA9
IFN5bWJvbCgiWDg2RGl2NjQiKTsKK2NvbnN0IExlYSA9IFN5bWJvbCgiTGVhIik7Citjb25zdCBB
bmQzMiA9IFN5bWJvbCgiQW5kMzIiKTsKK2NvbnN0IEFuZDY0ID0gU3ltYm9sKCJBbmQ2NCIpOwor
Y29uc3QgQW5kRG91YmxlID0gU3ltYm9sKCJBbmREb3VibGUiKTsKK2NvbnN0IEFuZEZsb2F0ID0g
U3ltYm9sKCJBbmRGbG9hdCIpOworY29uc3QgWG9yRG91YmxlID0gU3ltYm9sKCJYb3JEb3VibGUi
KTsKK2NvbnN0IFhvckZsb2F0ID0gU3ltYm9sKCJYb3JGbG9hdCIpOworY29uc3QgTHNoaWZ0MzIg
PSBTeW1ib2woIkxzaGlmdDMyIik7Citjb25zdCBMc2hpZnQ2NCA9IFN5bWJvbCgiTHNoaWZ0NjQi
KTsKK2NvbnN0IFJzaGlmdDMyID0gU3ltYm9sKCJSc2hpZnQzMiIpOworY29uc3QgUnNoaWZ0NjQg
PSBTeW1ib2woIlJzaGlmdDY0Iik7Citjb25zdCBVcnNoaWZ0MzIgPSBTeW1ib2woIlVyc2hpZnQz
MiIpOworY29uc3QgVXJzaGlmdDY0ID0gU3ltYm9sKCJVcnNoaWZ0NjQiKTsKK2NvbnN0IE9yMzIg
PSBTeW1ib2woIk9yMzIiKTsKK2NvbnN0IE9yNjQgPSBTeW1ib2woIk9yNjQiKTsKK2NvbnN0IFhv
cjMyID0gU3ltYm9sKCJYb3IzMiIpOworY29uc3QgWG9yNjQgPSBTeW1ib2woIlhvcjY0Iik7Citj
b25zdCBOb3QzMiA9IFN5bWJvbCgiTm90MzIiKTsKK2NvbnN0IE5vdDY0ID0gU3ltYm9sKCJOb3Q2
NCIpOworY29uc3QgQWJzRG91YmxlID0gU3ltYm9sKCJBYnNEb3VibGUiKTsKK2NvbnN0IEFic0Zs
b2F0ID0gU3ltYm9sKCJBYnNGbG9hdCIpOworY29uc3QgQ2VpbERvdWJsZSA9IFN5bWJvbCgiQ2Vp
bERvdWJsZSIpOworY29uc3QgQ2VpbEZsb2F0ID0gU3ltYm9sKCJDZWlsRmxvYXQiKTsKK2NvbnN0
IEZsb29yRG91YmxlID0gU3ltYm9sKCJGbG9vckRvdWJsZSIpOworY29uc3QgRmxvb3JGbG9hdCA9
IFN5bWJvbCgiRmxvb3JGbG9hdCIpOworY29uc3QgU3FydERvdWJsZSA9IFN5bWJvbCgiU3FydERv
dWJsZSIpOworY29uc3QgU3FydEZsb2F0ID0gU3ltYm9sKCJTcXJ0RmxvYXQiKTsKK2NvbnN0IENv
bnZlcnRJbnQzMlRvRG91YmxlID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0RvdWJsZSIpOworY29u
c3QgQ29udmVydEludDY0VG9Eb3VibGUgPSBTeW1ib2woIkNvbnZlcnRJbnQ2NFRvRG91YmxlIik7
Citjb25zdCBDb252ZXJ0SW50MzJUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50MzJUb0Zsb2F0
Iik7Citjb25zdCBDb252ZXJ0SW50NjRUb0Zsb2F0ID0gU3ltYm9sKCJDb252ZXJ0SW50NjRUb0Zs
b2F0Iik7Citjb25zdCBDb3VudExlYWRpbmdaZXJvczMyID0gU3ltYm9sKCJDb3VudExlYWRpbmda
ZXJvczMyIik7Citjb25zdCBDb3VudExlYWRpbmdaZXJvczY0ID0gU3ltYm9sKCJDb3VudExlYWRp
bmdaZXJvczY0Iik7Citjb25zdCBDb252ZXJ0RG91YmxlVG9GbG9hdCA9IFN5bWJvbCgiQ29udmVy
dERvdWJsZVRvRmxvYXQiKTsKK2NvbnN0IENvbnZlcnRGbG9hdFRvRG91YmxlID0gU3ltYm9sKCJD
b252ZXJ0RmxvYXRUb0RvdWJsZSIpOworY29uc3QgTW92ZSA9IFN5bWJvbCgiTW92ZSIpOworY29u
c3QgU3dhcDMyID0gU3ltYm9sKCJTd2FwMzIiKTsKK2NvbnN0IFN3YXA2NCA9IFN5bWJvbCgiU3dh
cDY0Iik7Citjb25zdCBNb3ZlMzIgPSBTeW1ib2woIk1vdmUzMiIpOworY29uc3QgU3RvcmVaZXJv
MzIgPSBTeW1ib2woIlN0b3JlWmVybzMyIik7Citjb25zdCBTaWduRXh0ZW5kMzJUb1B0ciA9IFN5
bWJvbCgiU2lnbkV4dGVuZDMyVG9QdHIiKTsKK2NvbnN0IFplcm9FeHRlbmQ4VG8zMiA9IFN5bWJv
bCgiWmVyb0V4dGVuZDhUbzMyIik7Citjb25zdCBTaWduRXh0ZW5kOFRvMzIgPSBTeW1ib2woIlNp
Z25FeHRlbmQ4VG8zMiIpOworY29uc3QgWmVyb0V4dGVuZDE2VG8zMiA9IFN5bWJvbCgiWmVyb0V4
dGVuZDE2VG8zMiIpOworY29uc3QgU2lnbkV4dGVuZDE2VG8zMiA9IFN5bWJvbCgiU2lnbkV4dGVu
ZDE2VG8zMiIpOworY29uc3QgTW92ZUZsb2F0ID0gU3ltYm9sKCJNb3ZlRmxvYXQiKTsKK2NvbnN0
IE1vdmVEb3VibGUgPSBTeW1ib2woIk1vdmVEb3VibGUiKTsKK2NvbnN0IE1vdmVaZXJvVG9Eb3Vi
bGUgPSBTeW1ib2woIk1vdmVaZXJvVG9Eb3VibGUiKTsKK2NvbnN0IE1vdmU2NFRvRG91YmxlID0g
U3ltYm9sKCJNb3ZlNjRUb0RvdWJsZSIpOworY29uc3QgTW92ZTMyVG9GbG9hdCA9IFN5bWJvbCgi
TW92ZTMyVG9GbG9hdCIpOworY29uc3QgTW92ZURvdWJsZVRvNjQgPSBTeW1ib2woIk1vdmVEb3Vi
bGVUbzY0Iik7Citjb25zdCBNb3ZlRmxvYXRUbzMyID0gU3ltYm9sKCJNb3ZlRmxvYXRUbzMyIik7
Citjb25zdCBMb2FkOCA9IFN5bWJvbCgiTG9hZDgiKTsKK2NvbnN0IFN0b3JlOCA9IFN5bWJvbCgi
U3RvcmU4Iik7Citjb25zdCBMb2FkOFNpZ25lZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQ4U2ln
bmVkRXh0ZW5kVG8zMiIpOworY29uc3QgTG9hZDE2ID0gU3ltYm9sKCJMb2FkMTYiKTsKK2NvbnN0
IExvYWQxNlNpZ25lZEV4dGVuZFRvMzIgPSBTeW1ib2woIkxvYWQxNlNpZ25lZEV4dGVuZFRvMzIi
KTsKK2NvbnN0IFN0b3JlMTYgPSBTeW1ib2woIlN0b3JlMTYiKTsKK2NvbnN0IENvbXBhcmUzMiA9
IFN5bWJvbCgiQ29tcGFyZTMyIik7Citjb25zdCBDb21wYXJlNjQgPSBTeW1ib2woIkNvbXBhcmU2
NCIpOworY29uc3QgVGVzdDMyID0gU3ltYm9sKCJUZXN0MzIiKTsKK2NvbnN0IFRlc3Q2NCA9IFN5
bWJvbCgiVGVzdDY0Iik7Citjb25zdCBDb21wYXJlRG91YmxlID0gU3ltYm9sKCJDb21wYXJlRG91
YmxlIik7Citjb25zdCBDb21wYXJlRmxvYXQgPSBTeW1ib2woIkNvbXBhcmVGbG9hdCIpOworY29u
c3QgQnJhbmNoOCA9IFN5bWJvbCgiQnJhbmNoOCIpOworY29uc3QgQnJhbmNoMzIgPSBTeW1ib2wo
IkJyYW5jaDMyIik7Citjb25zdCBCcmFuY2g2NCA9IFN5bWJvbCgiQnJhbmNoNjQiKTsKK2NvbnN0
IEJyYW5jaFRlc3Q4ID0gU3ltYm9sKCJCcmFuY2hUZXN0OCIpOworY29uc3QgQnJhbmNoVGVzdDMy
ID0gU3ltYm9sKCJCcmFuY2hUZXN0MzIiKTsKK2NvbnN0IEJyYW5jaFRlc3Q2NCA9IFN5bWJvbCgi
QnJhbmNoVGVzdDY0Iik7Citjb25zdCBCcmFuY2hEb3VibGUgPSBTeW1ib2woIkJyYW5jaERvdWJs
ZSIpOworY29uc3QgQnJhbmNoRmxvYXQgPSBTeW1ib2woIkJyYW5jaEZsb2F0Iik7Citjb25zdCBC
cmFuY2hBZGQzMiA9IFN5bWJvbCgiQnJhbmNoQWRkMzIiKTsKK2NvbnN0IEJyYW5jaEFkZDY0ID0g
U3ltYm9sKCJCcmFuY2hBZGQ2NCIpOworY29uc3QgQnJhbmNoTXVsMzIgPSBTeW1ib2woIkJyYW5j
aE11bDMyIik7Citjb25zdCBCcmFuY2hNdWw2NCA9IFN5bWJvbCgiQnJhbmNoTXVsNjQiKTsKK2Nv
bnN0IEJyYW5jaFN1YjMyID0gU3ltYm9sKCJCcmFuY2hTdWIzMiIpOworY29uc3QgQnJhbmNoU3Vi
NjQgPSBTeW1ib2woIkJyYW5jaFN1YjY0Iik7Citjb25zdCBCcmFuY2hOZWczMiA9IFN5bWJvbCgi
QnJhbmNoTmVnMzIiKTsKK2NvbnN0IEJyYW5jaE5lZzY0ID0gU3ltYm9sKCJCcmFuY2hOZWc2NCIp
OworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHkzMiA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHkz
MiIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFs
bHk2NCIpOworY29uc3QgTW92ZUNvbmRpdGlvbmFsbHlUZXN0MzIgPSBTeW1ib2woIk1vdmVDb25k
aXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2NCA9IFN5bWJv
bCgiTW92ZUNvbmRpdGlvbmFsbHlUZXN0NjQiKTsKK2NvbnN0IE1vdmVDb25kaXRpb25hbGx5RG91
YmxlID0gU3ltYm9sKCJNb3ZlQ29uZGl0aW9uYWxseURvdWJsZSIpOworY29uc3QgTW92ZUNvbmRp
dGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgiTW92ZUNvbmRpdGlvbmFsbHlGbG9hdCIpOworY29uc3Qg
TW92ZURvdWJsZUNvbmRpdGlvbmFsbHkzMiA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFs
bHkzMiIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHk2NCA9IFN5bWJvbCgiTW92ZURv
dWJsZUNvbmRpdGlvbmFsbHk2NCIpOworY29uc3QgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlUZXN0
MzIgPSBTeW1ib2woIk1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDMyIik7Citjb25zdCBNb3Zl
RG91YmxlQ29uZGl0aW9uYWxseVRlc3Q2NCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFs
bHlUZXN0NjQiKTsKK2NvbnN0IE1vdmVEb3VibGVDb25kaXRpb25hbGx5RG91YmxlID0gU3ltYm9s
KCJNb3ZlRG91YmxlQ29uZGl0aW9uYWxseURvdWJsZSIpOworY29uc3QgTW92ZURvdWJsZUNvbmRp
dGlvbmFsbHlGbG9hdCA9IFN5bWJvbCgiTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCIpOwor
Y29uc3QgSnVtcCA9IFN5bWJvbCgiSnVtcCIpOworY29uc3QgUmV0MzIgPSBTeW1ib2woIlJldDMy
Iik7Citjb25zdCBSZXQ2NCA9IFN5bWJvbCgiUmV0NjQiKTsKK2NvbnN0IFJldEZsb2F0ID0gU3lt
Ym9sKCJSZXRGbG9hdCIpOworY29uc3QgUmV0RG91YmxlID0gU3ltYm9sKCJSZXREb3VibGUiKTsK
K2NvbnN0IE9vcHMgPSBTeW1ib2woIk9vcHMiKTsKK2NvbnN0IFNodWZmbGUgPSBTeW1ib2woIlNo
dWZmbGUiKTsKK2NvbnN0IFBhdGNoID0gU3ltYm9sKCJQYXRjaCIpOworY29uc3QgQ0NhbGwgPSBT
eW1ib2woIkNDYWxsIik7Citjb25zdCBDb2xkQ0NhbGwgPSBTeW1ib2woIkNvbGRDQ2FsbCIpOwor
ZnVuY3Rpb24gSW5zdF9mb3JFYWNoQXJnKGluc3QsIGZ1bmMpCit7CisgICAgbGV0IHJlcGxhY2Vt
ZW50OworICAgIHN3aXRjaCAoaW5zdC5vcGNvZGUpIHsKKyAgICBjYXNlIE5vcDoKKyAgICAgICAg
YnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWRkMzI6CisgICAgICAgIHN3aXRjaCAo
aW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQ
LCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZDg6CisgICAgICAgIGluc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDgpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA4KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQWRkMTY6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDE2KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBH
UCwgMTYpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBZGQ2NDoK
KyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5EZWYsIEdQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZERvdWJs
ZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEFkZEZs
b2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOwor
ICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworICAg
ICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmco
MCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3Vi
MzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3ViNjQ6CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTdWJEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxl
bmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFy
Zy5EZWYsIEZQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAg
ICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTdWJGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3Mu
bGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywg
QXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCAzMik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE5lZzMyOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBOZWc2NDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
RGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBO
ZWdhdGVEb3VibGU6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAs
IDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOwor
ICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWwzMjoKKyAgICAgICAg
c3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGlu
c3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcu
WkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsNjQ6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcu
RGVmLCBHUCwgNjQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNdWx0aXBseUFkZDMyOgor
ICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
IGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52
aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJn
KDMsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBNdWx0aXBseUFkZDY0OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBH
UCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7
CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bHRpcGx5U3ViMzI6
CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRB
cmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE11bHRpcGx5U3ViNjQ6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBB
cmcuVXNlLCBHUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLkRlZiwgR1AsIDY0
KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTXVsdGlwbHlOZWcz
MjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAg
ICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGlu
c3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE11bHRpcGx5TmVnNjQ6CisgICAgICAgIGluc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygx
LCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMs
IEFyZy5aRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBEaXYzMjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAg
IGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpdjY0OgorICAgICAgICBpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmco
MSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5j
LCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBNdWxEb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAg
ICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQ
LCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2
NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAgaW5zdC52
aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVy
bG9hZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBNdWxGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwg
RlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwgRlAs
IDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCAzMik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92
ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICBjYXNlIERpdkRvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7
CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVz
ZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRlZiwg
RlAsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICBjYXNlIERpdkZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgp
IHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcu
VXNlLCBGUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVm
LCBGUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJC
YWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgWDg2Q29udmVydFRvRG91YmxlV29yZDMyOgorICAgICAgICBpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmco
MSwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFg4NkNvbnZlcnRUb1F1YWRXb3JkNjQ6CisgICAgICAgIGluc3QudmlzaXRB
cmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBm
dW5jLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBYODZEaXYzMjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
WkRlZiwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRl
ZiwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwg
MzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYODZEaXY2NDoK
KyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBicmVh
azsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMZWE6CisgICAgICAgIGluc3QudmlzaXRBcmco
MCwgZnVuYywgQXJnLlVzZUFkZHIsIEdQLCBQdHIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBbmQzMjoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQ
LCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5z
dC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQg
b3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQW5kNjQ6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgewor
ICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5V
c2UsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYsIEdQ
LCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5z
dC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBv
dmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBbmREb3VibGU6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkg
eworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFy
Zy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5V
c2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5EZWYs
IEZQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBGUCwgNjQpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBBbmRGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3Ro
KSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlVzZSwgRlAsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLkRl
ZiwgRlAsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCAzMik7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
QmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFhvckRvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVu
Z3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJn
LkRlZiwgRlAsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEZQLCA2NCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFhvckZsb2F0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5s
ZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBm
dW5jLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBB
cmcuRGVmLCBGUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZURlZiwgRlAsIDMyKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTHNoaWZ0MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdz
Lmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMs
IEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoK
KyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIExzaGlmdDY0OgorICAgICAgICBzd2l0Y2ggKGluc3Qu
YXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFy
ZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygx
LCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBm
dW5jLCBBcmcuWkRlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDI6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7
CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFJzaGlmdDMyOgorICAgICAgICBzd2l0Y2ggKGlu
c3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNp
dEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygy
LCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAz
Mik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwg
MzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSc2hpZnQ2NDoKKyAgICAgICAgc3dpdGNo
IChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGluc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3Qudmlz
aXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRB
cmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAyOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBH
UCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBH
UCwgNjQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBVcnNoaWZ0MzI6CisgICAgICAgIHN3
aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0
LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZp
c2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZVpE
ZWYsIEdQLCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFVyc2hpZnQ2NDoKKyAgICAg
ICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGlu
c3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlpEZWYsIEdQLCA2NCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcu
VXNlRGVmLCBHUCwgNjQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcjMyOgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5z
dC52aXNpdEFyZygyLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5V
c2VaRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPcjY0OgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5z
dC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVz
ZURlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWG9yMzI6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVz
ZVpEZWYsIEdQLCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFhvcjY0OgorICAgICAg
ICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5z
dC52aXNpdEFyZygyLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVz
ZURlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTm90MzI6CisgICAgICAg
IHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5vdDY0Ogor
ICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2FzZSAyOgorICAg
ICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAg
ICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwgNjQpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwg
ZnVuYywgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWJz
RG91YmxlOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7
CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQWJzRmxvYXQ6CisgICAgICAgIGlu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDZWlsRG91YmxlOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1
bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
Q2VpbEZsb2F0OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAz
Mik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRmxvb3JEb3VibGU6CisgICAg
ICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgaW5z
dC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBGbG9vckZsb2F0OgorICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU3FydERvdWJsZToKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
LCBGUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2
NCk7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNxcnRGbG9hdDoK
KyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFr
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnRJbnQzMlRvRG91YmxlOgorICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ29udmVydEludDY0VG9Eb3VibGU6CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFy
ZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb252ZXJ0SW50MzJUb0Zsb2F0OgorICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ29udmVydEludDY0VG9GbG9hdDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5E
ZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENv
dW50TGVhZGluZ1plcm9zMzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ291bnRMZWFk
aW5nWmVyb3M2NDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwg
NjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCA2NCk7Cisg
ICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnZlcnREb3VibGVUb0Zs
b2F0OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgRlAsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29udmVydEZsb2F0VG9Eb3VibGU6Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVhazsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5EZWYsIEdQLCBQdHIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBTd2FwMzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZURlZiwg
R1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwg
MzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTd2FwNjQ6Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIDY0KTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgNjQpOworICAgICAgICBi
cmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlMzI6CisgICAgICAgIGluc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygx
LCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgU3RvcmVaZXJvMzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU2lnbkV4dGVuZDMyVG9QdHI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBH
UCwgUHRyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWmVyb0V4
dGVuZDhUbzMyOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA4
KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2lnbkV4dGVuZDhUbzMyOgor
ICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWmVyb0V4dGVuZDE2VG8zMjoKKyAgICAgICAgaW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMTYpOworICAgICAgICBpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTaWduRXh0ZW5kMTZUbzMyOgorICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVu
YywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE1vdmVGbG9hdDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
LCBGUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEZQLCAz
Mik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGU6
CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBGUCwgNjQpOworICAgICAgICBicmVh
azsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlWmVyb1RvRG91YmxlOgorICAgICAgICBp
bnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmU2NFRvRG91YmxlOgorICAgICAgICBpbnN0LnZp
c2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmco
MSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgTW92ZTMyVG9GbG9hdDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5E
ZWYsIEZQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1v
dmVEb3VibGVUbzY0OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEZQ
LCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLkRlZiwgR1AsIDY0KTsK
KyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUZsb2F0VG8zMjoK
KyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBGUCwgMzIpOworICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5EZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFr
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQ4OgorICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5j
LCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU3RvcmU4OgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCA4KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwgOCk7Cisg
ICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQ4U2lnbmVkRXh0ZW5k
VG8zMjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgOCk7Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAg
IGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvYWQxNjoKKyAgICAgICAgaW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMTYpOworICAgICAgICBpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBMb2FkMTZTaWduZWRFeHRlbmRUbzMyOgorICAgICAgICBpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAxNik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwg
ZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFN0b3JlMTY6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVz
ZSwgR1AsIDE2KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuRGVmLCBHUCwg
MTYpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wYXJlMzI6
CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRB
cmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENvbXBhcmU2NDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5V
c2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1As
IDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsK
KyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGVzdDMyOgorICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFy
ZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1
bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBUZXN0NjQ6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQp
OworICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAg
ICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJy
ZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBhcmVEb3VibGU6CisgICAgICAgIGlu
c3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNp
dEFyZygxLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywg
QXJnLlpEZWYsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENvbXBhcmVGbG9hdDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNl
LCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAz
Mik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRlZiwgR1AsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoODoKKyAgICAgICAgaW5zdC52
aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA4KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5j
LCBBcmcuVXNlLCBHUCwgOCk7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEJyYW5jaDMyOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAg
ICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2g2NDoKKyAgICAgICAgaW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwg
ZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQnJhbmNoVGVzdDg6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBH
UCwgOCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDgpOwor
ICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hUZXN0MzI6Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZp
c2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGJyZWFrOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEJyYW5jaFRlc3Q2NDoKKyAgICAgICAgaW5zdC52aXNpdEFyZygw
LCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVz
ZSwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJh
bmNoRG91YmxlOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAz
Mik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBi
cmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hGbG9hdDoKKyAgICAgICAgaW5z
dC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0
QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwg
ZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQnJhbmNoQWRkMzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkg
eworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFy
Zy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5V
c2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5aRGVmLCBH
UCwgMzIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGlu
c3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3Qu
dmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZVpEZWYsIEdQLCAzMik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92
ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICBjYXNlIEJyYW5jaEFkZDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgp
IHsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcu
VXNlLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNl
LCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuWkRlZiwg
R1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0
LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCA2NCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92
ZXJsb2FkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsK
KyAgICBjYXNlIEJyYW5jaE11bDMyOgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgp
IHsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBB
cmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNl
WkRlZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5aRGVmLCBHUCwgMzIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVz
ZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlNjcmF0
Y2gsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5TY3Jh
dGNoLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuWkRl
ZiwgR1AsIDMyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTXVsNjQ6CisgICAg
ICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgNjQpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlNj
cmF0Y2gsIEdQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5T
Y3JhdGNoLCBHUCwgNjQpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcu
WkRlZiwgR1AsIDY0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoU3ViMzI6Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
aW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZp
c2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2VaRGVmLCBHUCwgMzIpOworICAgICAgICBicmVhazsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBCcmFuY2hTdWI2NDoKKyAgICAgICAgaW5zdC52aXNpdEFy
ZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJn
LlVzZURlZiwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQnJhbmNoTmVnMzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1As
IDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnJhbmNoTmVn
NjQ6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAg
ICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlWkRlZiwgR1AsIDY0KTsKKyAgICAg
ICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHkzMjoK
KyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNToKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVz
ZSwgR1AsIFB0cik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBH
UCwgUHRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHk2NDoK
KyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAgIGNhc2UgNToKKyAg
ICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAg
ICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAg
IGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBp
bnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2VEZWYsIEdQLCBQdHIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywg
QXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJn
LlVzZSwgR1AsIDY0KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVz
ZSwgR1AsIFB0cik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2Us
IEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBH
UCwgUHRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRpdGlvbmFsbHlUZXN0
MzI6CisgICAgICAgIHN3aXRjaCAoaW5zdC5hcmdzLmxlbmd0aCkgeworICAgICAgICBjYXNlIDU6
CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7Cisg
ICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAg
ICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAg
ICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAg
ICAgaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDAs
IGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMsIEFy
Zy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcu
VXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoNSwgZnVuYywgQXJnLkRl
ZiwgR1AsIFB0cik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG92ZXJsb2FkIik7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVDb25kaXRpb25hbGx5
VGVzdDY0OgorICAgICAgICBzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsKKyAgICAgICAgY2Fz
ZSA1OgorICAgICAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIp
OworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOwor
ICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAg
ICAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAg
ICAgICAgIGluc3QudmlzaXRBcmcoNCwgZnVuYywgQXJnLlVzZURlZiwgR1AsIFB0cik7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgaW5zdC52aXNpdEFy
ZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygx
LCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygyLCBm
dW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5j
LCBBcmcuVXNlLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoNCwgZnVuYywg
QXJnLlVzZSwgR1AsIFB0cik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDUsIGZ1bmMsIEFy
Zy5EZWYsIEdQLCBQdHIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvdmVybG9hZCIpOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3ZlQ29uZGl0aW9u
YWxseURvdWJsZToKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAgICAg
IGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1As
IDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAsIDY0
KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsK
KyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7Cisg
ICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworICAg
ICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDEs
IGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1
bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1bmMs
IEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBB
cmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZUNvbmRp
dGlvbmFsbHlGbG9hdDoKKyAgICAgICAgc3dpdGNoIChpbnN0LmFyZ3MubGVuZ3RoKSB7CisgICAg
ICAgIGNhc2UgNjoKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwg
R1AsIDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgRlAs
IDMyKTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDMy
KTsKKyAgICAgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgR1AsIFB0cik7
CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOwor
ICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVmLCBHUCwgUHRyKTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBpbnN0LnZpc2l0
QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJn
KDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDIs
IGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgICAgICBpbnN0LnZpc2l0QXJnKDMsIGZ1
bmMsIEFyZy5Vc2UsIEdQLCBQdHIpOworICAgICAgICAgICAgaW5zdC52aXNpdEFyZyg0LCBmdW5j
LCBBcmcuVXNlRGVmLCBHUCwgUHRyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3ZlcmxvYWQiKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURv
dWJsZUNvbmRpdGlvbmFsbHkzMjoKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcu
VXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQ
LCAzMik7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsK
KyAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAg
ICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoNSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHk2NDoKKyAgICAgICAg
aW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZp
c2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEdQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmco
MiwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5j
LCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5V
c2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoNSwgZnVuYywgQXJnLkRlZiwgRlAs
IDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJs
ZUNvbmRpdGlvbmFsbHlUZXN0MzI6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJn
LlVzZSwgR1AsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygxLCBmdW5jLCBBcmcuVXNlLCBH
UCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDIsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7
CisgICAgICAgIGluc3QudmlzaXRBcmcoMywgZnVuYywgQXJnLlVzZSwgRlAsIDY0KTsKKyAgICAg
ICAgaW5zdC52aXNpdEFyZyg0LCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBpbnN0
LnZpc2l0QXJnKDUsIGZ1bmMsIEFyZy5EZWYsIEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE1vdmVEb3VibGVDb25kaXRpb25hbGx5VGVzdDY0OgorICAg
ICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2UsIEdQLCAzMik7CisgICAgICAgIGlu
c3QudmlzaXRBcmcoMSwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgaW5zdC52aXNp
dEFyZygyLCBmdW5jLCBBcmcuVXNlLCBHUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDMs
IGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoNCwgZnVuYywg
QXJnLlVzZSwgRlAsIDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZyg1LCBmdW5jLCBBcmcuRGVm
LCBGUCwgNjQpOworICAgICAgICBicmVhazsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb3Zl
RG91YmxlQ29uZGl0aW9uYWxseURvdWJsZToKKyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5j
LCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5V
c2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAs
IDY0KTsKKyAgICAgICAgaW5zdC52aXNpdEFyZygzLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOwor
ICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAg
IGluc3QudmlzaXRBcmcoNSwgZnVuYywgQXJnLkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdDoK
KyAgICAgICAgaW5zdC52aXNpdEFyZygwLCBmdW5jLCBBcmcuVXNlLCBHUCwgMzIpOworICAgICAg
ICBpbnN0LnZpc2l0QXJnKDEsIGZ1bmMsIEFyZy5Vc2UsIEZQLCAzMik7CisgICAgICAgIGluc3Qu
dmlzaXRBcmcoMiwgZnVuYywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgaW5zdC52aXNpdEFy
ZygzLCBmdW5jLCBBcmcuVXNlLCBGUCwgNjQpOworICAgICAgICBpbnN0LnZpc2l0QXJnKDQsIGZ1
bmMsIEFyZy5Vc2UsIEZQLCA2NCk7CisgICAgICAgIGluc3QudmlzaXRBcmcoNSwgZnVuYywgQXJn
LkRlZiwgRlAsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SnVtcDoKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0MzI6Cisg
ICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDMyKTsKKyAgICAgICAg
YnJlYWs7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmV0NjQ6CisgICAgICAgIGluc3Qudmlz
aXRBcmcoMCwgZnVuYywgQXJnLlVzZSwgR1AsIDY0KTsKKyAgICAgICAgYnJlYWs7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUmV0RmxvYXQ6CisgICAgICAgIGluc3QudmlzaXRBcmcoMCwgZnVu
YywgQXJnLlVzZSwgRlAsIDMyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUmV0RG91YmxlOgorICAgICAgICBpbnN0LnZpc2l0QXJnKDAsIGZ1bmMsIEFyZy5Vc2Us
IEZQLCA2NCk7CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE9vcHM6
CisgICAgICAgIGJyZWFrOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNodWZmbGU6CisgICAg
ICAgIFNodWZmbGVDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBQYXRjaDoKKyAgICAgICAgUGF0Y2hDdXN0b20uZm9yRWFjaEFyZyhpbnN0LCBm
dW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDQ2FsbDoKKyAgICAgICAgQ0NhbGxDdXN0
b20uZm9yRWFjaEFyZyhpbnN0LCBmdW5jKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xk
Q0NhbGw6CisgICAgICAgIENvbGRDQ2FsbEN1c3RvbS5mb3JFYWNoQXJnKGluc3QsIGZ1bmMpOwor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICB0aHJvdyAiQmFkIG9wY29kZSI7
CisgICAgfQorfQorZnVuY3Rpb24gSW5zdF9oYXNOb25BcmdFZmZlY3RzKGluc3QpCit7CisgICAg
c3dpdGNoIChpbnN0Lm9wY29kZSkgeworICAgIGNhc2UgQnJhbmNoODoKKyAgICBjYXNlIEJyYW5j
aDMyOgorICAgIGNhc2UgQnJhbmNoNjQ6CisgICAgY2FzZSBCcmFuY2hUZXN0ODoKKyAgICBjYXNl
IEJyYW5jaFRlc3QzMjoKKyAgICBjYXNlIEJyYW5jaFRlc3Q2NDoKKyAgICBjYXNlIEJyYW5jaERv
dWJsZToKKyAgICBjYXNlIEJyYW5jaEZsb2F0OgorICAgIGNhc2UgQnJhbmNoQWRkMzI6CisgICAg
Y2FzZSBCcmFuY2hBZGQ2NDoKKyAgICBjYXNlIEJyYW5jaE11bDMyOgorICAgIGNhc2UgQnJhbmNo
TXVsNjQ6CisgICAgY2FzZSBCcmFuY2hTdWIzMjoKKyAgICBjYXNlIEJyYW5jaFN1YjY0OgorICAg
IGNhc2UgQnJhbmNoTmVnMzI6CisgICAgY2FzZSBCcmFuY2hOZWc2NDoKKyAgICBjYXNlIEp1bXA6
CisgICAgY2FzZSBSZXQzMjoKKyAgICBjYXNlIFJldDY0OgorICAgIGNhc2UgUmV0RmxvYXQ6Cisg
ICAgY2FzZSBSZXREb3VibGU6CisgICAgY2FzZSBPb3BzOgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBjYXNlIFNodWZmbGU6CisgICAgICAgIHJldHVybiBTaHVmZmxlQ3VzdG9tLmhhc05vbkFy
Z05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOworICAgIGNhc2UgUGF0Y2g6CisgICAgICAgIHJldHVy
biBQYXRjaEN1c3RvbS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKKyAgICBjYXNl
IENDYWxsOgorICAgICAgICByZXR1cm4gQ0NhbGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoaW5zdCk7CisgICAgY2FzZSBDb2xkQ0NhbGw6CisgICAgICAgIHJldHVybiBDb2xkQ0Nh
bGxDdXN0b20uaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMv
SlNBaXIvcGF5bG9hZC1nYmVtdS1leGVjdXRlSXRlcmF0aW9uLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBl
cmZvcm1hbmNlVGVzdHMvSlNBaXIvcGF5bG9hZC1nYmVtdS1leGVjdXRlSXRlcmF0aW9uLmpzCShy
ZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9wYXlsb2FkLWdiZW11LWV4ZWN1
dGVJdGVyYXRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMTgyIEBACisidXNlIHN0
cmljdCI7CisvLyBHZW5lcmF0ZWQgYnkgQWlyOjpkdW1wQXNKUyBmcm9tIGV4ZWN1dGVJdGVyYXRp
b24jRVZ4OHBKIGluIE9jdGFuZS9nYmVtdQorZnVuY3Rpb24gY3JlYXRlUGF5bG9hZEdiZW11RXhl
Y3V0ZUl0ZXJhdGlvbigpCit7CisgICAgbGV0IGNvZGUgPSBuZXcgQ29kZSgpOworICAgIGxldCBi
YjAgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMSA9IGNvZGUuYWRkQmxvY2soKTsKKyAg
ICBsZXQgYmIyID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjMgPSBjb2RlLmFkZEJsb2Nr
KCk7CisgICAgbGV0IGJiNCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI1ID0gY29kZS5h
ZGRCbG9jaygpOworICAgIGxldCBiYjYgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiNyA9
IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI4ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxl
dCBiYjkgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTAgPSBjb2RlLmFkZEJsb2NrKCk7
CisgICAgbGV0IGJiMTEgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTIgPSBjb2RlLmFk
ZEJsb2NrKCk7CisgICAgbGV0IGJiMTMgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTQg
PSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTUgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAg
bGV0IGJiMTYgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTcgPSBjb2RlLmFkZEJsb2Nr
KCk7CisgICAgbGV0IGJiMTggPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMTkgPSBjb2Rl
LmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjAgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJi
MjEgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjIgPSBjb2RlLmFkZEJsb2NrKCk7Cisg
ICAgbGV0IGJiMjMgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjQgPSBjb2RlLmFkZEJs
b2NrKCk7CisgICAgbGV0IGJiMjUgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjYgPSBj
b2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjcgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0
IGJiMjggPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMjkgPSBjb2RlLmFkZEJsb2NrKCk7
CisgICAgbGV0IGJiMzAgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzEgPSBjb2RlLmFk
ZEJsb2NrKCk7CisgICAgbGV0IGJiMzIgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzMg
PSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzQgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAg
bGV0IGJiMzUgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzYgPSBjb2RlLmFkZEJsb2Nr
KCk7CisgICAgbGV0IGJiMzcgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzggPSBjb2Rl
LmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMzkgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJi
NDAgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiNDEgPSBjb2RlLmFkZEJsb2NrKCk7Cisg
ICAgbGV0IGJiNDIgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IHNsb3QwID0gY29kZS5hZGRT
dGFja1Nsb3QoNjQsIExvY2tlZCk7CisgICAgbGV0IHNsb3QxID0gY29kZS5hZGRTdGFja1Nsb3Qo
OCwgU3BpbGwpOworICAgIGxldCBzbG90MiA9IGNvZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsK
KyAgICBsZXQgc2xvdDMgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CisgICAgbGV0IHNs
b3Q0ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworICAgIGxldCBzbG90NSA9IGNvZGUu
YWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDYgPSBjb2RlLmFkZFN0YWNrU2xv
dCg4LCBTcGlsbCk7CisgICAgbGV0IHNsb3Q3ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwp
OworICAgIGxldCBzbG90OCA9IGNvZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBsZXQg
c2xvdDkgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CisgICAgbGV0IHNsb3QxMCA9IGNv
ZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDExID0gY29kZS5hZGRTdGFj
a1Nsb3QoOCwgU3BpbGwpOworICAgIGxldCBzbG90MTIgPSBjb2RlLmFkZFN0YWNrU2xvdCg0MCwg
TG9ja2VkKTsKKyAgICBsZXQgdG1wMTkwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAx
ODkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE4OCA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wMTg3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxODYgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE4NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMTg0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxODMgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDE4MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTgxID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxODAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDE3OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTc4ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXAxNzcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE3
NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTc1ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXAxNzQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE3MyA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTcyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAxNzEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE3MCA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMTY5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNjggPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE2NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMTY2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNjUgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDE2NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTYz
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNjIgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDE2MSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTYwID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAxNTkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDE1OCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTU3ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAxNTYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE1NSA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTU0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAxNTMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE1MiA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wMTUxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNTAg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE0OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wMTQ4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNDcgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDE0NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
MTQ1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNDQgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDE0MyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTQyID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNDEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDE0MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTM5ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXAxMzggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzNyA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTM2ID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXAxMzUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzNCA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wMTMzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAx
MzIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzMSA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wMTMwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjkgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEyOCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMTI3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjYgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDEyNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTI0ID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDEyMiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTIxID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXAxMjAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEx
OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTE4ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXAxMTcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExNiA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTE1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAxMTQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExMyA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMTEyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMTEgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMTA5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMDggPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDEwNyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTA2
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMDUgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDEwNCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTAzID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAxMDIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDEwMSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTAwID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXA5OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTggPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDk3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXA5NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTUgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDk0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5MyA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDkxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5MCA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wODkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDg4ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXA4NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
ODYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDg1ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXA4NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODMgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDgyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4
MSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODAgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDc5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3OCA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wNzcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDc2
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wNzQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDczID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXA3MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzEg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDcwID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXA2OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNjggPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDY3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2NiA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNjUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDY0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2MyA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wNjIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYxID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wNTkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDU4ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXA1NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTYgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDU1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXA1NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTMgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDUyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1MSA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDQ5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0OCA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wNDcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ2ID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wNDQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQzID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXA0MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDEgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAzOSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzggPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDM3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzNiA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDM0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzMyA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wMzIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMxID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAzMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
MjkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDI4ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXAyNyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjYgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDI1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAy
NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjMgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDIyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyMSA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wMjAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE5
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxOCA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wMTcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE2ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXAxNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTQg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXAxMiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTEgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDEwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5ID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXA3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXA1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAy
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXAwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCBmdG1wNyA9IGNvZGUubmV3VG1w
KEZQKTsKKyAgICBsZXQgZnRtcDYgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA1ID0g
Y29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNCA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBs
ZXQgZnRtcDMgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAyID0gY29kZS5uZXdUbXAo
RlApOworICAgIGxldCBmdG1wMSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDAgPSBj
b2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGluc3Q7CisgICAgbGV0IGFyZzsKKyAgICBiYjAuc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyLCBOb3JtYWwpKTsKKyAgICBiYjAu
c3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxLCBOb3JtYWwpKTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDQ5NzUx
NjgwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFk
ZHIoUmVnLnJicCwgMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJwKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7Cisg
ICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnIxMSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5TY3JhdGNoLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgNDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oLTI4MTQ3NDk3NjcxMDY1
NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVx
dWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRy
KFJlZy5yYngsIDUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUltbSgyMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRj
aEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogOH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogOH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0
NDkzNTMyNjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDcsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUJpZ0ltbSg0NDQ5OTU5NDQwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q0LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ0OTk1OTQ0OCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MTEsIDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDMsIDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDQ5MzUyOTEyKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q4LCAw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDAp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NDUwMDU2
NDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0
YWNrKHNsb3QxMCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
QmlnSW1tKC0yODE0NzQ5NzY3MTA2NTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ0OTMwMTg4OCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NiwgMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDI4MTQ3NDk3NjcxMDY1Nik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90OSwg
MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0NDkz
MjEzMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
U3RhY2soc2xvdDIsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUJpZ0ltbSg0NDQ5OTc4MDY0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg4NjIpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBiYjEuc3VjY2Vzc29ycy5wdXNoKG5l
dyBGcmVxdWVudGVkQmxvY2soYmI0MSwgTm9ybWFsKSk7CisgICAgYmIxLnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMywgTm9ybWFsKSk7CisgICAgYmIxLnByZWRlY2Vzc29y
cy5wdXNoKGJiMCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDg4MSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjEuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4
LCAyMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMS5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3QzMik7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMS5hcHBlbmQoaW5zdCk7CisgICAgYmIyLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVl
bnRlZEJsb2NrKGJiNDEsIE5vcm1hbCkpOworICAgIGJiMi5zdWNjZXNzb3JzLnB1c2gobmV3IEZy
ZXF1ZW50ZWRCbG9jayhiYjMsIE5vcm1hbCkpOworICAgIGJiMi5wcmVkZWNlc3NvcnMucHVzaChi
YjApOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRk
cihSZWcucmJ4LCAyMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMi5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3QzMik7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMi5hcHBlbmQoaW5zdCk7CisgICAgYmIzLnN1Y2Nlc3NvcnMucHVzaChu
ZXcgRnJlcXVlbnRlZEJsb2NrKGJiNSwgTm9ybWFsKSk7CisgICAgYmIzLnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiNCwgTm9ybWFsKSk7CisgICAgYmIzLnByZWRlY2Vzc29y
cy5wdXNoKGJiMSk7CisgICAgYmIzLnByZWRlY2Vzc29ycy5wdXNoKGJiNDApOworICAgIGJiMy5w
cmVkZWNlc3NvcnMucHVzaChiYjM5KTsKKyAgICBiYjMucHJlZGVjZXNzb3JzLnB1c2goYmIyKTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVn
LnJieCwgOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzLmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFk
ZHIoUmVnLnJzaSwgLTExNDQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
My5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlUmVsQ29uZChFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMy5hcHBlbmQoaW5zdCk7CisgICAgYmI0LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVl
bnRlZEJsb2NrKGJiNiwgTm9ybWFsKSk7CisgICAgYmI0LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJl
cXVlbnRlZEJsb2NrKGJiNywgTm9ybWFsKSk7CisgICAgYmI0LnByZWRlY2Vzc29ycy5wdXNoKGJi
Myk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
UmVsQ29uZChFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNC5hcHBl
bmQoaW5zdCk7CisgICAgYmI1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJi
NiwgTm9ybWFsKSk7CisgICAgYmI1LnByZWRlY2Vzc29ycy5wdXNoKGJiMyk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNyk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyMzIpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjU2
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcu
cmJ4LCAyNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNS5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFuZDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjUu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBbmQzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUltbSgzMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI1LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyNDApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7Cisg
ICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBiYjYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVu
dGVkQmxvY2soYmI3LCBOb3JtYWwpKTsKKyAgICBiYjYucHJlZGVjZXNzb3JzLnB1c2goYmI0KTsK
KyAgICBiYjYucHJlZGVjZXNzb3JzLnB1c2goYmI1KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRk
MzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTEpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChB
ZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yc2ksIC0xMTQ0
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiNi5hcHBlbmQoaW5zdCk7CisgICAgYmI3LnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiOCwgTm9ybWFsKSk7CisgICAgYmI3
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiOSwgTm9ybWFsKSk7CisgICAg
YmI3LnByZWRlY2Vzc29ycy5wdXNoKGJiNCk7CisgICAgYmI3LnByZWRlY2Vzc29ycy5wdXNoKGJi
Nik7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRy
KFJlZy5yYngsIDI0MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI3LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVSZWxDb25kKEdyZWF0ZXJUaGFuKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBiYjguc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVx
dWVudGVkQmxvY2soYmI5LCBOb3JtYWwpKTsKKyAgICBiYjgucHJlZGVjZXNzb3JzLnB1c2goYmI3
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0lt
bSg0NDQ5MzAxODg4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjguYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQmlnSW1tKDQ0NDkzMDE4ODgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQ2FsbEFyZyg4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
OC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMTYp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmco
MjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFz
Tm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucnNp
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTAp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54
bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTMpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNyk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1t
MTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTIpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBiYjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRj
aCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjguYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjguYXBwZW5kKGlu
c3QpOworICAgIGJiOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEyLCBO
b3JtYWwpKTsKKyAgICBiYjkuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIx
MCwgTm9ybWFsKSk7CisgICAgYmI5LnByZWRlY2Vzc29ycy5wdXNoKGJiNyk7CisgICAgYmI5LnBy
ZWRlY2Vzc29ycy5wdXNoKGJiOCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDMwNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAxMjgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVS
ZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVBZGRyKFJlZy5yOCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlSW1tKDgwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjkuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcu
cjgsIDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgLTgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFz
Tm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBi
YjkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmI5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yYXgsIFJlZy5yc2ksIDgsIDApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMTApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmVDb25kaXRpb25hbGx5VGVzdDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChO
b25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlSW1tKC0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
OS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIx
NSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlD
bG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJi
OS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yY3gs
IDUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgy
Myk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlD
bG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjku
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQWRkcihSZWcucmN4LCAyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmI5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoNjQpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDgsIDApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmI5LmFwcGVuZChpbnN0KTsKKyAgICBiYjEwLnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTEsIE5vcm1hbCkpOworICAgIGJiMTAuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxMywgTm9ybWFsKSk7CisgICAgYmIxMC5w
cmVkZWNlc3NvcnMucHVzaChiYjkpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2g2NCk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NywgMCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBiYjExLnN1Y2Nlc3Nv
cnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTQsIE5vcm1hbCkpOworICAgIGJiMTEucHJl
ZGVjZXNzb3JzLnB1c2goYmIxMCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDAsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDM0NCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVS
ZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVBZGRyKFJlZy5yZGksIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUltbSg1MDIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0
cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjExLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVn
LnJkaSwgMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92ZU9yRXF1YWwpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGks
IDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJs
eUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mg
PSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
YmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KExvYWQ4KTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlSW5kZXgoUmVnLnJzaSwgUmVnLnJheCwgMSwgMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KEp1bXApOworICAgIGJiMTEuYXBwZW5kKGluc3QpOworICAgIGJiMTIuc3VjY2Vzc29ycy5w
dXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNCwgTm9ybWFsKSk7CisgICAgYmIxMi5wcmVkZWNl
c3NvcnMucHVzaChiYjkpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QwLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMTIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAzMzYpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMTIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCA0NTYpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJz
aSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZm
ZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg1MDIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBiYjEyLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMTIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRj
aCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29u
ZChBYm92ZU9yRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3Rz
ID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hB
cmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxMi5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KExvYWQ4KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW5k
ZXgoUmVnLnJzaSwgUmVnLnJheCwgMSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIxMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAg
IGJiMTIuYXBwZW5kKGluc3QpOworICAgIGJiMTMucHJlZGVjZXNzb3JzLnB1c2goYmIxMCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7Cisg
ICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtd
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIxMy5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KE9vcHMpOworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGJiMTQuc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNSwgTm9ybWFsKSk7CisgICAgYmIx
NC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE2LCBOb3JtYWwpKTsKKyAg
ICBiYjE0LnByZWRlY2Vzc29ycy5wdXNoKGJiMTEpOworICAgIGJiMTQucHJlZGVjZXNzb3JzLnB1
c2goYmIxMik7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZDMyKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoWmVyb0V4dGVuZDE2VG8zMik7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjE0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMTI4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChCcmFuY2hUZXN0MzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblpl
cm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIo
UmVnLnJieCwgMjE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVJbW0oMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0LmFwcGVuZChp
bnN0KTsKKyAgICBiYjE1LnByZWRlY2Vzc29ycy5wdXNoKGJiMTQpOworICAgIGluc3QgPSBuZXcg
SW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBp
bnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE1LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoT29wcyk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7CisgICAg
YmIxNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE4LCBOb3JtYWwpKTsK
KyAgICBiYjE2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTcsIE5vcm1h
bCkpOworICAgIGJiMTYucHJlZGVjZXNzb3JzLnB1c2goYmIxNCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAtMTc1
Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJl
Zy5yZHgsIDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJvdmVPckVxdWFsKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmR4
LCAyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5z
dC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoTG9hZDgpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucmF4LCBSZWcucmN4
LCAxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjcyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0NDk5NTk0NDApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRj
aCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29u
ZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQWRkcihSZWcucmF4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVJbW0oODApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUJpZ0ltbSg0NDQ5OTU5NDQwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ0OTk1OTQ0OCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgs
IDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92ZU9yRXF1YWwpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgsIC04KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJi
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGJiMTYuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVn
LnJheCwgUmVnLnJjeCwgOCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVJbW0oMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlQ29uZGl0aW9uYWxseVRl
c3Q2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJn
KDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQ0NDk5
NTk0NDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZyg4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDI0KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDMyKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIx
NSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy5yY3gpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcucmR4KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJzaSk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yZGkpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcucjgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcucjkpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjEwKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0wKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMik7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0zKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tNSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54
bW02KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTcpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW05KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTEwKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTExKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEyKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEzKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncy5hZGQoUmVnLnhtbTE0KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnhtbTE1KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhh
c05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3Mg
PSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBi
YjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZHgsIC0xMDg4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjcyKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjgwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJj
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoUnNoaWZ0MzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFz
Tm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVBZGRyKFJlZy5yZHgsIC0xMDg4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQWRkcihSZWcucmR4LCAtODgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmR4LCAtMTE3Nik7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVS
ZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGlu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE2LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTm90RXF1YWwpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJjeCwgMCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDgwKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmN4LCA4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0
Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENv
bmQoQWJvdmVPckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAtOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAg
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVnLnJh
eCwgUmVnLnJkeCwgOCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIx
Ni5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVJbW0oMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlQ29uZGl0aW9uYWxseVRlc3Q2
NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVj
dHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQ
YXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVs
Q29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQWRkcihSZWcucmF4LCA1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVJbW0oMjMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAg
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA4fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA4fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJi
MTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlSW1tKDIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUNhbGxBcmcoMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIx
Ni5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDMyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmco
MTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxB
cmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNh
bGxBcmcoMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTMpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVn
cy5hZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1t
Nyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcueG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTIpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBp
bnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyNzIpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyODApOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KFJzaGlmdDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
Y3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucmJ4LCA4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUFkZHIoUmVnLnJzaSwgLTEwNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMTYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBp
bnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KEFkZDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRy
KFJlZy5yc2ksIC0xMDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTYuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQWRkcihSZWcucnNpLCAtMTA3Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDY0KTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTYuYXBwZW5kKGluc3QpOworICAgIGJiMTcuc3VjY2Vzc29ycy5w
dXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxOSwgTm9ybWFsKSk7CisgICAgYmIxNy5wcmVkZWNl
c3NvcnMucHVzaChiYjE2KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQ29udmVydEludDMyVG9Eb3Vi
bGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChKdW1wKTsKKyAgICBiYjE3LmFwcGVuZChpbnN0KTsKKyAgICBiYjE4LnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTksIE5vcm1hbCkpOworICAgIGJiMTgucHJlZGVjZXNz
b3JzLnB1c2goYmIxNik7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTY0VG9Eb3Vi
bGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChKdW1wKTsKKyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBiYjE5LnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjAsIE5vcm1hbCkpOworICAgIGJiMTkuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMiwgTm9ybWFsKSk7CisgICAgYmIxOS5wcmVk
ZWNlc3NvcnMucHVzaChiYjE3KTsKKyAgICBiYjE5LnByZWRlY2Vzc29ycy5wdXNoKGJiMTgpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChDb252ZXJ0SW50MzJUb0RvdWJsZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIxOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZERvdWJsZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIxOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmVEb3VibGVUbzY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSgyODE0NzQ5NzY3
MTA2NTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTkuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxOS5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQWRkcihSZWcucnNpLCAtMTA3Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjE5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJzaSwgLTEwODApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQ
YXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVz
Q29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAg
IGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGJiMTkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIxOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucnNpLCAtMTA4MCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoQnJhbmNoVGVzdDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChO
b25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yc2ksIC0xMTA0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVJbW0oMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE5LmFw
cGVuZChpbnN0KTsKKyAgICBiYjIwLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2Nr
KGJiMjEsIE5vcm1hbCkpOworICAgIGJiMjAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVk
QmxvY2soYmIzMiwgTm9ybWFsKSk7CisgICAgYmIyMC5wcmVkZWNlc3NvcnMucHVzaChiYjE5KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVn
LnJzaSwgLTEwOTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjAuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJk
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5w
YXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlpE
ZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGJiMjAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMC5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQWRkcihSZWcucnNpLCAtMTA5Nik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJzaSwgLTExMTIpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChC
cmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoR3JlYXRlclRoYW5PckVxdWFs
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMC5hcHBlbmQoaW5z
dCk7CisgICAgYmIyMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIzLCBO
b3JtYWwpKTsKKyAgICBiYjIxLnByZWRlY2Vzc29ycy5wdXNoKGJiMjApOworICAgIGluc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAzNDQpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEy
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjEyLCAwKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNTAyKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVl
OworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEg
PSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjEyLCAxNik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMS5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnIxMiwg
MjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMS5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93T3JFcXVhbCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDY1Mjg2KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRy
dWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyMzIpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyNTYpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGJiMjIuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyMywgTm9ybWFsKSk7CisgICAgYmIyMi5w
cmVkZWNlc3NvcnMucHVzaChiYjMwKTsKKyAgICBiYjIyLnByZWRlY2Vzc29ycy5wdXNoKGJiMzEp
OworICAgIGJiMjIucHJlZGVjZXNzb3JzLnB1c2goYmIyOSk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIyLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3
IEluc3QoSnVtcCk7CisgICAgYmIyMi5hcHBlbmQoaW5zdCk7CisgICAgYmIyMy5zdWNjZXNzb3Jz
LnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI1LCBOb3JtYWwpKTsKKyAgICBiYjIzLnN1Y2Nl
c3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjQsIE5vcm1hbCkpOworICAgIGJiMjMu
cHJlZGVjZXNzb3JzLnB1c2goYmIyMSk7CisgICAgYmIyMy5wcmVkZWNlc3NvcnMucHVzaChiYjIy
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUz
Mik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
QWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJzaSwgLTEw
OTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KExvYWQ4KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcu
cmRpLCA2NTI4NSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIz
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5j
aDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvd09yRXF1YWwpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjkpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg2NTI4NSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBiYjI0
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjYsIE5vcm1hbCkpOworICAg
IGJiMjQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMCwgTm9ybWFsKSk7
CisgICAgYmIyNC5wcmVkZWNlc3NvcnMucHVzaChiYjIzKTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
U3RvcmU4KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTMpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgNjUyODUpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChFcXVh
bCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUlt
bSgyNTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7
CisgICAgYmIyNS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI2LCBOb3Jt
YWwpKTsKKyAgICBiYjI1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzAs
IE5vcm1hbCkpOworICAgIGJiMjUucHJlZGVjZXNzb3JzLnB1c2goYmIyMyk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChFcXVhbCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
MTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgy
NTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNS5hcHBlbmQoaW5zdCk7Cisg
ICAgYmIyNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI4LCBOb3JtYWwp
KTsKKyAgICBiYjI2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjcsIE5v
cm1hbCkpOworICAgIGJiMjYucHJlZGVjZXNzb3JzLnB1c2goYmIyNCk7CisgICAgYmIyNi5wcmVk
ZWNlc3NvcnMucHVzaChiYjI1KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTG9hZDgpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDY1Mjg2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjI2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJh
bmNoMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93T3JFcXVhbCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDY1Mjg1KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjYuYXBwZW5kKGluc3QpOworICAgIGJi
Mjcuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyOCwgTm9ybWFsKSk7Cisg
ICAgYmIyNy5wcmVkZWNlc3NvcnMucHVzaChiYjI2KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoU3Rv
cmU4KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgNjUyODUpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjcuYXBwZW5kKGluc3QpOworICAgIGJiMjguc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyOSwgTm9ybWFsKSk7CisgICAgYmIyOC5z
dWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMxLCBOb3JtYWwpKTsKKyAgICBi
YjI4LnByZWRlY2Vzc29ycy5wdXNoKGJiMjYpOworICAgIGJiMjgucHJlZGVjZXNzb3JzLnB1c2go
YmIyNyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yYngsIDI0OCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIy
OC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE9yMzIpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVJbW0oNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyOC5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjI4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjQ4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMjguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFu
Y2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI4LmFwcGVuZChpbnN0KTsKKyAgICBi
YjI5LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjIsIE5vcm1hbCkpOwor
ICAgIGJiMjkuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMiwgTm9ybWFs
KSk7CisgICAgYmIyOS5wcmVkZWNlc3NvcnMucHVzaChiYjI4KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoQW5kMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KEFuZDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDMxKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjkuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVn
LnJieCwgMjQwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjkuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVJlbENvbmQoR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIyOS5hcHBlbmQoaW5zdCk7CisgICAgYmIzMC5zdWNjZXNzb3JzLnB1c2go
bmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIyLCBOb3JtYWwpKTsKKyAgICBiYjMwLnN1Y2Nlc3NvcnMu
cHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzIsIE5vcm1hbCkpOworICAgIGJiMzAucHJlZGVj
ZXNzb3JzLnB1c2goYmIyNCk7CisgICAgYmIzMC5wcmVkZWNlc3NvcnMucHVzaChiYjI1KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25k
KEdyZWF0ZXJUaGFuT3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMzAuYXBwZW5kKGluc3QpOworICAgIGJiMzEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVx
dWVudGVkQmxvY2soYmIyMiwgTm9ybWFsKSk7CisgICAgYmIzMS5zdWNjZXNzb3JzLnB1c2gobmV3
IEZyZXF1ZW50ZWRCbG9jayhiYjMyLCBOb3JtYWwpKTsKKyAgICBiYjMxLnByZWRlY2Vzc29ycy5w
dXNoKGJiMjgpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVJlbENvbmQoR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIzMS5hcHBlbmQoaW5zdCk7CisgICAgYmIzMi5zdWNjZXNzb3Jz
LnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMzLCBOb3JtYWwpKTsKKyAgICBiYjMyLnN1Y2Nl
c3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzQsIE5vcm1hbCkpOworICAgIGJiMzIu
cHJlZGVjZXNzb3JzLnB1c2goYmIxOSk7CisgICAgYmIzMi5wcmVkZWNlc3NvcnMucHVzaChiYjIw
KTsKKyAgICBiYjMyLnByZWRlY2Vzc29ycy5wdXNoKGJiMzApOworICAgIGJiMzIucHJlZGVjZXNz
b3JzLnB1c2goYmIzMSk7CisgICAgYmIzMi5wcmVkZWNlc3NvcnMucHVzaChiYjI5KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJzaSwg
LTExMjApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzIuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVJlbENvbmQoR3JlYXRlclRoYW4pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVJbW0oMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjMyLmFwcGVuZChpbnN0KTsKKyAgICBiYjMzLnByZWRlY2Vzc29ycy5wdXNoKGJiMzIpOworICAg
IGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJh
RWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjMzLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoT29wcyk7CisgICAgYmIzMy5hcHBlbmQoaW5zdCk7CisgICAgYmIzNC5z
dWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjM2LCBOb3JtYWwpKTsKKyAgICBi
YjM0LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzUsIE5vcm1hbCkpOwor
ICAgIGJiMzQucHJlZGVjZXNzb3JzLnB1c2goYmIzMik7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDEzNik7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KEJyYW5jaDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3QpOwor
ICAgIGJiMzUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzNywgTm9ybWFs
KSk7CisgICAgYmIzNS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjM4LCBO
b3JtYWwpKTsKKyAgICBiYjM1LnByZWRlY2Vzc29ycy5wdXNoKGJiMzQpOworICAgIGluc3QgPSBu
ZXcgSW5zdChDb252ZXJ0SW50MzJUb0RvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNS5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaERvdWJsZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM1LmFwcGVuZChpbnN0KTsKKyAgICBiYjM2
LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzcsIE5vcm1hbCkpOworICAg
IGJiMzYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzOCwgTm9ybWFsKSk7
CisgICAgYmIzNi5wcmVkZWNlc3NvcnMucHVzaChiYjM0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
QWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChNb3ZlNjRUb0RvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNi5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaERvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZURvdWJsZUNvbmQoRG91YmxlR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM2LmFwcGVuZChpbnN0KTsKKyAgICBiYjM3LnN1Y2Nl
c3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzgsIE5vcm1hbCkpOworICAgIGJiMzcu
cHJlZGVjZXNzb3JzLnB1c2goYmIzNSk7CisgICAgYmIzNy5wcmVkZWNlc3NvcnMucHVzaChiYjM2
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0lt
bSg0NDQ5MzIxMzEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM3LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUJpZ0ltbSg0NDQ5MzIxMzEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjM3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIzNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMzcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIzNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmco
OCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFy
ZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2Fs
bEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0
Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmN4KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnJkeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy5yc2kpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmRpKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI4KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnI5KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnIxMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW0xKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMyk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW00KTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTUpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tNik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW03
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTgpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy54bW0xMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy54bW0xMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMik7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMyk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy54bW0xNSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGJiMzcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhh
c05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3Mg
PSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBi
YjM3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIzNy5h
cHBlbmQoaW5zdCk7CisgICAgYmIzOC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9j
ayhiYjM5LCBOb3JtYWwpKTsKKyAgICBiYjM4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRl
ZEJsb2NrKGJiNDAsIE5vcm1hbCkpOworICAgIGJiMzgucHJlZGVjZXNzb3JzLnB1c2goYmIzNSk7
CisgICAgYmIzOC5wcmVkZWNlc3NvcnMucHVzaChiYjM3KTsKKyAgICBiYjM4LnByZWRlY2Vzc29y
cy5wdXNoKGJiMzYpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oODgx
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05v
bkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBu
ZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMzguYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucmJ4LCA4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM4LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUFkZHIoUmVnLnJkeCwgLTE4MjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMzguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJm
bG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0o
MSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNo
SGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVn
cyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxh
dGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
YmIzOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjM4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMzguYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkeCwgLTE4MjQpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZHgsIC0xODMyKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM4LmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25k
KEdyZWF0ZXJUaGFuKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIz
OC5hcHBlbmQoaW5zdCk7CisgICAgYmIzOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRC
bG9jayhiYjQyLCBOb3JtYWwpKTsKKyAgICBiYjM5LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVl
bnRlZEJsb2NrKGJiMywgTm9ybWFsKSk7CisgICAgYmIzOS5wcmVkZWNlc3NvcnMucHVzaChiYjM4
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0lt
bSg0NDQ5MzIxMzEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM5LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUJpZ0ltbSg0NDQ5MzIxMzEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMzkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmco
OCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFy
ZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2Fs
bEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0
Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmN4KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnJkeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy5yc2kpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmRpKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI4KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnI5KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnIxMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW0xKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMyk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW00KTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTUpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tNik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW03
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTgpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy54bW0xMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy54bW0xMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMik7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMyk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy54bW0xNSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGJiMzkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhh
c05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3Mg
PSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBi
YjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMjI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoT3IzMik7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMzkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCAyMjQpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ0OTk3ODA2NCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzOS5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDQ0
OTk3ODA2NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzOS5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQ2FsbEFyZyg4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzkuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVJbW0oMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
Q2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM5LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJp
Z0ltbSg0NDUwMDU2NDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM5
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVDYWxsQXJnKDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MzkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMTYp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmco
MjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFz
Tm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucnNp
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTAp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54
bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTMpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNyk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1t
MTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTIpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBiYjM5LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0
Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIzOS5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVBZGRyKFJlZy5yYngsIDIyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIzOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3QzMik7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzkuYXBwZW5kKGluc3QpOworICAgIGJiNDAuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI0MiwgTm9ybWFsKSk7CisgICAgYmI0MC5z
dWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMsIE5vcm1hbCkpOworICAgIGJi
NDAucHJlZGVjZXNzb3JzLnB1c2goYmIzOCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDIyNCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmI0MC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KEJyYW5jaFRlc3QzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNDAuYXBwZW5kKGluc3QpOwor
ICAgIGJiNDEucHJlZGVjZXNzb3JzLnB1c2goYmIxKTsKKyAgICBiYjQxLnByZWRlY2Vzc29ycy5w
dXNoKGJiMik7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVJbW0oMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNDEuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChSZXQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNDEuYXBwZW5k
KGluc3QpOworICAgIGJiNDIucHJlZGVjZXNzb3JzLnB1c2goYmI0MCk7CisgICAgYmI0Mi5wcmVk
ZWNlc3NvcnMucHVzaChiYjM5KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUltbSgxMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmI0Mi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFJldDY0KTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmI0Mi5hcHBlbmQoaW5zdCk7CisgICAgcmV0dXJuIGNvZGU7Cit9CkluZGV4OiBQZXJmb3JtYW5j
ZVRlc3RzL0pTQWlyL3BheWxvYWQtaW1hZ2luZy1nYXVzc2lhbi1ibHVyLWdhdXNzaWFuQmx1ci5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3BheWxvYWQtaW1hZ2luZy1n
YXVzc2lhbi1ibHVyLWdhdXNzaWFuQmx1ci5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1hbmNl
VGVzdHMvSlNBaXIvcGF5bG9hZC1pbWFnaW5nLWdhdXNzaWFuLWJsdXItZ2F1c3NpYW5CbHVyLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzA2NCBAQAorInVzZSBzdHJpY3QiOworLy8gR2Vu
ZXJhdGVkIGJ5IEFpcjo6ZHVtcEFzSlMgZnJvbSBnYXVzc2lhbkJsdXIjQTh2Y1lnIGluIEtyYWtl
bi9pbWFnaW5nLWdhdXNzaWFuLWJsdXIKK2Z1bmN0aW9uIGNyZWF0ZVBheWxvYWRJbWFnaW5nR2F1
c3NpYW5CbHVyR2F1c3NpYW5CbHVyKCkKK3sKKyAgICBsZXQgY29kZSA9IG5ldyBDb2RlKCk7Cisg
ICAgbGV0IGJiMCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxID0gY29kZS5hZGRCbG9j
aygpOworICAgIGxldCBiYjIgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMyA9IGNvZGUu
YWRkQmxvY2soKTsKKyAgICBsZXQgYmI0ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjUg
PSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiNiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBs
ZXQgYmI3ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjggPSBjb2RlLmFkZEJsb2NrKCk7
CisgICAgbGV0IGJiOSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMCA9IGNvZGUuYWRk
QmxvY2soKTsKKyAgICBsZXQgYmIxMSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMiA9
IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBs
ZXQgYmIxNCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxNSA9IGNvZGUuYWRkQmxvY2so
KTsKKyAgICBsZXQgYmIxNiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxNyA9IGNvZGUu
YWRkQmxvY2soKTsKKyAgICBsZXQgYmIxOCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIx
OSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyMCA9IGNvZGUuYWRkQmxvY2soKTsKKyAg
ICBsZXQgYmIyMSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyMiA9IGNvZGUuYWRkQmxv
Y2soKTsKKyAgICBsZXQgYmIyMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNCA9IGNv
ZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQg
YmIyNiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNyA9IGNvZGUuYWRkQmxvY2soKTsK
KyAgICBsZXQgYmIyOCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyOSA9IGNvZGUuYWRk
QmxvY2soKTsKKyAgICBsZXQgYmIzMCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMSA9
IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBs
ZXQgYmIzMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzNCA9IGNvZGUuYWRkQmxvY2so
KTsKKyAgICBsZXQgYmIzNSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzNiA9IGNvZGUu
YWRkQmxvY2soKTsKKyAgICBsZXQgc2xvdDAgPSBjb2RlLmFkZFN0YWNrU2xvdCg0MCwgTG9ja2Vk
KTsKKyAgICBsZXQgc2xvdDEgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CisgICAgbGV0
IHNsb3QyID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworICAgIGxldCBzbG90MyA9IGNv
ZGUuYWRkU3RhY2tTbG90KDQsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDQgPSBjb2RlLmFkZFN0YWNr
U2xvdCg4LCBTcGlsbCk7CisgICAgbGV0IHNsb3Q1ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3Bp
bGwpOworICAgIGxldCBzbG90NiA9IGNvZGUuYWRkU3RhY2tTbG90KDQwLCBMb2NrZWQpOworICAg
IGxldCB0bXAxNDEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE0MCA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wMTM5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAx
MzggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzNyA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wMTM2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMzUgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEzNCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMTMzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMzIgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDEzMSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTMwID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMjkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDEyOCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTI3ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXAxMjYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEy
NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTI0ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXAxMjMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEyMiA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTIxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAxMjAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExOSA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMTE4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMTcgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDExNiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMTE1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMTQgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDExMyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTEy
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMTEgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDExMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTA5ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAxMDggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDEwNyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTA2ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAxMDUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEwNCA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTAzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAxMDIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEwMSA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wMTAwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5OSA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTggPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDk3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5NiA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wOTUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDk0ID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5MyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wOTIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDkxID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXA5MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODkgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDg4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXA4NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODYgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDg1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4NCA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDgyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4MSA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wODAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDc5ID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3OCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wNzcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDc2ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXA3NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzQgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDczID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXA3MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzEgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDcwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2OSA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNjggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDY3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2NiA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wNjUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDY0ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXA2MyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
NjIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYxID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXA2MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTkgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDU4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1
NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTYgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDU1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1NCA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wNTMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDUy
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1MSA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wNTAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ5ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXA0OCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDcg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ2ID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXA0NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDQgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDQzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0MiA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDQwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzOSA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wMzggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM3ID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzNiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wMzUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM0ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXAzMyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzIgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAzMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjkgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDI4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyNyA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDI1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyNCA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMjMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDIyID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyMSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMjAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE5ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAxOCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTcgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAxNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTQgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDEzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMiA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDEwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXA4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXA2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1ID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAwID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCBmdG1wNzQgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0
bXA3MyA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDcyID0gY29kZS5uZXdUbXAoRlAp
OworICAgIGxldCBmdG1wNzEgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA3MCA9IGNv
ZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDY5ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxl
dCBmdG1wNjggPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA2NyA9IGNvZGUubmV3VG1w
KEZQKTsKKyAgICBsZXQgZnRtcDY2ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNjUg
PSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA2NCA9IGNvZGUubmV3VG1wKEZQKTsKKyAg
ICBsZXQgZnRtcDYzID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNjIgPSBjb2RlLm5l
d1RtcChGUCk7CisgICAgbGV0IGZ0bXA2MSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRt
cDYwID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNTkgPSBjb2RlLm5ld1RtcChGUCk7
CisgICAgbGV0IGZ0bXA1OCA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDU3ID0gY29k
ZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNTYgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0
IGZ0bXA1NSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDU0ID0gY29kZS5uZXdUbXAo
RlApOworICAgIGxldCBmdG1wNTMgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA1MiA9
IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDUxID0gY29kZS5uZXdUbXAoRlApOworICAg
IGxldCBmdG1wNTAgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA0OSA9IGNvZGUubmV3
VG1wKEZQKTsKKyAgICBsZXQgZnRtcDQ4ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1w
NDcgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA0NiA9IGNvZGUubmV3VG1wKEZQKTsK
KyAgICBsZXQgZnRtcDQ1ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNDQgPSBjb2Rl
Lm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA0MyA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQg
ZnRtcDQyID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNDEgPSBjb2RlLm5ld1RtcChG
UCk7CisgICAgbGV0IGZ0bXA0MCA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDM5ID0g
Y29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wMzggPSBjb2RlLm5ld1RtcChGUCk7CisgICAg
bGV0IGZ0bXAzNyA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDM2ID0gY29kZS5uZXdU
bXAoRlApOworICAgIGxldCBmdG1wMzUgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAz
NCA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDMzID0gY29kZS5uZXdUbXAoRlApOwor
ICAgIGxldCBmdG1wMzIgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAzMSA9IGNvZGUu
bmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDMwID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBm
dG1wMjkgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAyOCA9IGNvZGUubmV3VG1wKEZQ
KTsKKyAgICBsZXQgZnRtcDI3ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wMjYgPSBj
b2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAyNSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBs
ZXQgZnRtcDI0ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wMjMgPSBjb2RlLm5ld1Rt
cChGUCk7CisgICAgbGV0IGZ0bXAyMiA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDIx
ID0gY29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wMjAgPSBjb2RlLm5ld1RtcChGUCk7Cisg
ICAgbGV0IGZ0bXAxOSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDE4ID0gY29kZS5u
ZXdUbXAoRlApOworICAgIGxldCBmdG1wMTcgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0
bXAxNiA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDE1ID0gY29kZS5uZXdUbXAoRlAp
OworICAgIGxldCBmdG1wMTQgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAxMyA9IGNv
ZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDEyID0gY29kZS5uZXdUbXAoRlApOworICAgIGxl
dCBmdG1wMTEgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAxMCA9IGNvZGUubmV3VG1w
KEZQKTsKKyAgICBsZXQgZnRtcDkgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA4ID0g
Y29kZS5uZXdUbXAoRlApOworICAgIGxldCBmdG1wNyA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBs
ZXQgZnRtcDYgPSBjb2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXA1ID0gY29kZS5uZXdUbXAo
RlApOworICAgIGxldCBmdG1wNCA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDMgPSBj
b2RlLm5ld1RtcChGUCk7CisgICAgbGV0IGZ0bXAyID0gY29kZS5uZXdUbXAoRlApOworICAgIGxl
dCBmdG1wMSA9IGNvZGUubmV3VG1wKEZQKTsKKyAgICBsZXQgZnRtcDAgPSBjb2RlLm5ld1RtcChG
UCk7CisgICAgbGV0IGluc3Q7CisgICAgbGV0IGFyZzsKKyAgICBiYjAuc3VjY2Vzc29ycy5wdXNo
KG5ldyBGcmVxdWVudGVkQmxvY2soYmIyLCBOb3JtYWwpKTsKKyAgICBiYjAuc3VjY2Vzc29ycy5w
dXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxLCBSYXJlKSk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3NDI2MTQ4OCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYnAsIDE2
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJicCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFF
YXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncy5hZGQoUmVn
LnIxMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuU2NyYXRjaCwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3MjUwMjc1Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQzNzI1MDI3NjgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgsIDAp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3
MjUwMjc3Nik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFk
ZHIoUmVnLnJheCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUJpZ0ltbSg0MzcyNTAyNzg0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQzNzI1MDI3OTIpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgsIDApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3MjUwMjgwMCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
MTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0Mzcy
NTAyODA4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRk
cihSZWcucmF4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQmlnSW1tKDQzNzI1MDI4MTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3MjUwMjgyNCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSgtMjgxNDc0OTc2NzEwNjU2KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJk
aSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEy
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlNjRUb0RvdWJsZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2hEb3VibGUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVEb3VibGVDb25kKERvdWJsZUVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGJiMS5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIsIE5vcm1hbCkpOworICAgIGJiMS5wcmVk
ZWNlc3NvcnMucHVzaChiYjApOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
U3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGJiMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KENvbnZlcnRJbnQzMlRvRG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
eG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjEuYXBwZW5kKGluc3QpOworICAgIGJi
Mi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjQsIE5vcm1hbCkpOworICAg
IGJiMi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMsIFJhcmUpKTsKKyAg
ICBiYjIucHJlZGVjZXNzb3JzLnB1c2goYmIwKTsKKyAgICBiYjIucHJlZGVjZXNzb3JzLnB1c2go
YmIxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQmVsb3cpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0
cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBiYjIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRy
dWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVSZWxDb25kKEJlbG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIx
MSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNO
b25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAg
IGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnIxMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyLmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTY0VG9Eb3VibGUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIyLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoRG91YmxlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlRG91YmxlQ29uZChEb3VibGVFcXVhbCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyLmFwcGVuZChpbnN0KTsKKyAgICBiYjMuc3Vj
Y2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI0LCBOb3JtYWwpKTsKKyAgICBiYjMu
cHJlZGVjZXNzb3JzLnB1c2goYmIyKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQmVsb3cp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0
cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChDb252ZXJ0SW50MzJUb0RvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIzLmFwcGVuZChpbnN0KTsKKyAg
ICBiYjQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI2LCBOb3JtYWwpKTsK
KyAgICBiYjQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI1LCBSYXJlKSk7
CisgICAgYmI0LnByZWRlY2Vzc29ycy5wdXNoKGJiMik7CisgICAgYmI0LnByZWRlY2Vzc29ycy5w
dXNoKGJiMyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZDY0KTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
NC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmU2NFRvRG91YmxlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaERv
dWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlRXF1YWwpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNC5hcHBlbmQoaW5zdCk7Cisg
ICAgYmI1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiNiwgTm9ybWFsKSk7
CisgICAgYmI1LnByZWRlY2Vzc29ycy5wdXNoKGJiNCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBh
dGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxD
b25kKEJlbG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoQ29udmVydEludDMyVG9Eb3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNS5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiNS5hcHBlbmQo
aW5zdCk7CisgICAgYmI2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiOCwg
Tm9ybWFsKSk7CisgICAgYmI2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJi
NywgUmFyZSkpOworICAgIGJiNi5wcmVkZWNlc3NvcnMucHVzaChiYjQpOworICAgIGJiNi5wcmVk
ZWNlc3NvcnMucHVzaChiYjUpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxvdyk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
U3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGJiNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KEFkZDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmU2NFRvRG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaERvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZURv
dWJsZUNvbmQoRG91YmxlRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiNi5hcHBlbmQoaW5zdCk7CisgICAgYmI3LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJl
cXVlbnRlZEJsb2NrKGJiOCwgTm9ybWFsKSk7CisgICAgYmI3LnByZWRlY2Vzc29ycy5wdXNoKGJi
Nik7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEJlbG93KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
MTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJh
RWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQ29udmVydEludDMyVG9E
b3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KEp1bXApOworICAgIGJiNy5hcHBlbmQoaW5zdCk7CisgICAgYmI4LnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTAsIE5vcm1hbCkpOworICAgIGJiOC5zdWNjZXNzb3Jz
LnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjksIFJhcmUpKTsKKyAgICBiYjgucHJlZGVjZXNz
b3JzLnB1c2goYmI2KTsKKyAgICBiYjgucHJlZGVjZXNzb3JzLnB1c2goYmI3KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0MzQ3MDQ5MzUy
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5y
OCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yOSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjguYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChBZGQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOC5hcHBlbmQo
aW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmU2NFRvRG91YmxlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW02KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiOC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaERvdWJsZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlRXF1YWwpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNik7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW02KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOC5hcHBlbmQoaW5zdCk7CisgICAgYmI5LnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTAsIE5vcm1hbCkpOworICAgIGJi
OS5wcmVkZWNlc3NvcnMucHVzaChiYjgpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChCZWxv
dyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yOSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0
cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjkuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChDb252ZXJ0SW50MzJUb0RvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjkuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjkuYXBwZW5kKGluc3QpOworICAg
IGJiMTAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxOCwgTm9ybWFsKSk7
CisgICAgYmIxMC5wcmVkZWNlc3NvcnMucHVzaChiYjgpOworICAgIGJiMTAucHJlZGVjZXNzb3Jz
LnB1c2goYmI5KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUJpZ0ltbSg0Mzc0NDYyMTY4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJkaSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjksIC04KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQzNzQ0NjIxMjgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmRpLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oODApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0Mzc0NDYyMTI4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJk
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGlu
c3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9i
YmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIxMC5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVCaWdJbW0oNDM3NDQ2MjEzNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIxMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QyLCAwKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGksIC04KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Qz
LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTAuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlWmVyb1RvRG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW03KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTAuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlSW1tKDEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVTdGFjayhzbG90NCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEwLmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUJpZ0ltbSgtMjgxNDc0OTc2NzEwNjU0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjEwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7Cisg
ICAgYmIxMC5hcHBlbmQoaW5zdCk7CisgICAgYmIxMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1
ZW50ZWRCbG9jayhiYjEzLCBOb3JtYWwpKTsKKyAgICBiYjExLnByZWRlY2Vzc29ycy5wdXNoKGJi
MzUpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
SW1tKDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjExLmFwcGVuZChpbnN0KTsK
KyAgICBiYjEyLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTMsIE5vcm1h
bCkpOworICAgIGJiMTIucHJlZGVjZXNzb3JzLnB1c2goYmIzNCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEyLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoSnVtcCk7CisgICAgYmIxMi5hcHBlbmQoaW5zdCk7CisgICAgYmIxMy5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE1LCBOb3JtYWwpKTsKKyAgICBiYjEzLnBy
ZWRlY2Vzc29ycy5wdXNoKGJiMTEpOworICAgIGJiMTMucHJlZGVjZXNzb3JzLnB1c2goYmIxMik7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTYp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTMuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlRG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy54bW03KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMy5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmVEb3VibGUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTcpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjEzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
RG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW03KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KEp1bXApOworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGJiMTQuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNSwgTm9ybWFsKSk7CisgICAgYmIxNC5wcmVk
ZWNlc3NvcnMucHVzaChiYjMxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMTQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAg
ICBiYjE0LmFwcGVuZChpbnN0KTsKKyAgICBiYjE1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVl
bnRlZEJsb2NrKGJiMjgsIE5vcm1hbCkpOworICAgIGJiMTUuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIxNiwgTm9ybWFsKSk7CisgICAgYmIxNS5wcmVkZWNlc3NvcnMucHVz
aChiYjEzKTsKKyAgICBiYjE1LnByZWRlY2Vzc29ycy5wdXNoKGJiMTQpOworICAgIGluc3QgPSBu
ZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRl
ZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlw
ZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAg
YmIxNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAgIGJiMTYuc3VjY2Vzc29ycy5wdXNoKG5l
dyBGcmVxdWVudGVkQmxvY2soYmIyOSwgTm9ybWFsKSk7CisgICAgYmIxNi5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE3LCBOb3JtYWwpKTsKKyAgICBiYjE2LnByZWRlY2Vz
c29ycy5wdXNoKGJiMTUpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVJlbENvbmQoR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDI2Nyk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBiYjE3LnN1Y2Nlc3Nv
cnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTgsIE5vcm1hbCkpOworICAgIGJiMTcucHJl
ZGVjZXNzb3JzLnB1c2goYmIxNik7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIxNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVJbW0oLTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMTcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBi
YjE3LmFwcGVuZChpbnN0KTsKKyAgICBiYjE4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRl
ZEJsb2NrKGJiMjAsIE5vcm1hbCkpOworICAgIGJiMTguc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVx
dWVudGVkQmxvY2soYmIxOSwgUmFyZSkpOworICAgIGJiMTgucHJlZGVjZXNzb3JzLnB1c2goYmIx
MCk7CisgICAgYmIxOC5wcmVkZWNlc3NvcnMucHVzaChiYjE3KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJk
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlD
bG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5aRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNDAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJj
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW0zKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5z
dC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2Us
IHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5
cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE4LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoQnJhbmNoVGVzdDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25a
ZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnIxMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxOC5hcHBlbmQo
aW5zdCk7CisgICAgYmIxOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIw
LCBOb3JtYWwpKTsKKyAgICBiYjE5LnByZWRlY2Vzc29ycy5wdXNoKGJiMTgpOworICAgIGluc3Qg
PSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE5LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIxOS5hcHBlbmQoaW5zdCk7CisgICAgYmIyMC5z
dWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIyLCBOb3JtYWwpKTsKKyAgICBi
YjIwLnByZWRlY2Vzc29ycy5wdXNoKGJiMTgpOworICAgIGJiMjAucHJlZGVjZXNzb3JzLnB1c2go
YmIxOSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIwLmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUnNoaWZ0MzIpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVJbW0oMzEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjAu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIyMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFhvcjMyKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQo
TGVzc1RoYW4pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVJbW0oMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVj
dHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBh
dGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxD
b25kKEFib3ZlT3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QzLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnht
bTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjIwLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QyLCAw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIwLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJl
Zy5yc2ksIFJlZy5yZGksIDgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiMjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlSW1tKDEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZUNvbmRpdGlvbmFsbHlU
ZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTEpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
ZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNs
b3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4
dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
RlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVx
dWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRy
KFJlZy5yZGksIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUltbSg3OSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yZGks
IDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjAuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRy
KFJlZy5yMTIsIC04KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjIwLmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIyMC5hcHBlbmQo
aW5zdCk7CisgICAgYmIyMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIy
LCBOb3JtYWwpKTsKKyAgICBiYjIxLnByZWRlY2Vzc29ycy5wdXNoKGJiMjcpOworICAgIGluc3Qg
PSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMS5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGJiMjIu
c3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyNSwgTm9ybWFsKSk7CisgICAg
YmIyMi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIzLCBOb3JtYWwpKTsK
KyAgICBiYjIyLnByZWRlY2Vzc29ycy5wdXNoKGJiMjApOworICAgIGJiMjIucHJlZGVjZXNzb3Jz
LnB1c2goYmIyMSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFj
ayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRy
dWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyMi5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMjIuYXBwZW5kKGluc3QpOworICAgIGJiMjMuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVx
dWVudGVkQmxvY2soYmIyNiwgTm9ybWFsKSk7CisgICAgYmIyMy5zdWNjZXNzb3JzLnB1c2gobmV3
IEZyZXF1ZW50ZWRCbG9jayhiYjI0LCBOb3JtYWwpKTsKKyAgICBiYjIzLnByZWRlY2Vzc29ycy5w
dXNoKGJiMjIpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVJlbENvbmQoR3JlYXRlclRoYW5PckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDQwMCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBiYjI0LnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjcsIE5vcm1hbCkpOworICAgIGJiMjQucHJlZGVjZXNz
b3JzLnB1c2goYmIyMyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
c2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVT
dGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVD
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
TGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBiYjI0LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNs
b3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5z
dC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlw
ZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGJiMjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQzMik7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUltbSgzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFib3Zl
T3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9u
QXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGJiMjQuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92ZU9yRXF1YWwpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0y
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhz
bG90MSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGlu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
MzJ9KTsKKyAgICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZURv
dWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnIxNSwgOCwgMCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0wKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjQuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFJzaGlmdDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
SW1tKDMxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI0LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjQu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChYb3IzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKExlc3NUaGFu
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1t
KDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNr
KHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTApOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJvdmVP
ckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZURvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yMTIsIFJlZy5yYngs
IDgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI0LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTXVsRG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkRG91YmxlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
QWRkMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNdWxEb3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucjksIFJlZy5yc2ks
IDgsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjQuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGREb3VibGUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQzMik7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE11bERvdWJs
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnIxNSwgOCwgMCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW00
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KEFkZERvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0wKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIy
NC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE11bERvdWJsZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnIxNCwgOCwgMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW00KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTQpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KEFkZERvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW00KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyNC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjQuYXBwZW5kKGluc3QpOwor
ICAgIGJiMjUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyNywgTm9ybWFs
KSk7CisgICAgYmIyNS5wcmVkZWNlc3NvcnMucHVzaChiYjIyKTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoSnVtcCk7CisgICAgYmIyNS5hcHBlbmQoaW5zdCk7CisgICAgYmIyNi5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjI3LCBOb3JtYWwpKTsKKyAgICBiYjI2LnByZWRlY2Vz
c29ycy5wdXNoKGJiMjMpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjI2LmFw
cGVuZChpbnN0KTsKKyAgICBiYjI3LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2Nr
KGJiMjEsIE5vcm1hbCkpOworICAgIGJiMjcuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVk
QmxvY2soYmIzMCwgTm9ybWFsKSk7CisgICAgYmIyNy5wcmVkZWNlc3NvcnMucHVzaChiYjI0KTsK
KyAgICBiYjI3LnByZWRlY2Vzc29ycy5wdXNoKGJiMjYpOworICAgIGJiMjcucHJlZGVjZXNzb3Jz
LnB1c2goYmIyNSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xv
dDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDEsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOwor
ICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBb
XTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGJiMjcuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVJlbENvbmQoTGVzc1RoYW4pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVJbW0oNyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI3
LmFwcGVuZChpbnN0KTsKKyAgICBiYjI4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJs
b2NrKGJiMzEsIE5vcm1hbCkpOworICAgIGJiMjgucHJlZGVjZXNzb3JzLnB1c2goYmIxNSk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMjguYXBwZW5kKGluc3QpOworICAgIGJi
Mjkuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMSwgTm9ybWFsKSk7Cisg
ICAgYmIyOS5wcmVkZWNlc3NvcnMucHVzaChiYjE2KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVt
cCk7CisgICAgYmIyOS5hcHBlbmQoaW5zdCk7CisgICAgYmIzMC5zdWNjZXNzb3JzLnB1c2gobmV3
IEZyZXF1ZW50ZWRCbG9jayhiYjMxLCBOb3JtYWwpKTsKKyAgICBiYjMwLnByZWRlY2Vzc29ycy5w
dXNoKGJiMjcpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlU3RhY2soc2xvdDEsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MzAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjMwLmFw
cGVuZChpbnN0KTsKKyAgICBiYjMxLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2Nr
KGJiMTQsIE5vcm1hbCkpOworICAgIGJiMzEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVk
QmxvY2soYmIzMiwgTm9ybWFsKSk7CisgICAgYmIzMS5wcmVkZWNlc3NvcnMucHVzaChiYjMwKTsK
KyAgICBiYjMxLnByZWRlY2Vzc29ycy5wdXNoKGJiMjkpOworICAgIGJiMzEucHJlZGVjZXNzb3Jz
LnB1c2goYmIyOCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjMxLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xv
dDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5z
dC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2VaRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBG
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxh
dGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CisgICAgYmIzMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg3KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzEuYXBwZW5kKGluc3QpOworICAgIGJiMzIu
c3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzNCwgTm9ybWFsKSk7CisgICAg
YmIzMi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMzLCBSYXJlKSk7Cisg
ICAgYmIzMi5wcmVkZWNlc3NvcnMucHVzaChiYjMxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0
Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0Nv
bmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVJbW0oNDAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3Rz
ID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hB
cmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KEJyYW5jaFRlc3QzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVy
byk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzIuYXBwZW5kKGlu
c3QpOworICAgIGJiMzMuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzNCwg
Tm9ybWFsKSk7CisgICAgYmIzMy5wcmVkZWNlc3NvcnMucHVzaChiYjMyKTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIzMy5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMzMuYXBwZW5kKGlu
c3QpOworICAgIGJiMzQuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxMiwg
Tm9ybWFsKSk7CisgICAgYmIzNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhi
YjM1LCBOb3JtYWwpKTsKKyAgICBiYjM0LnByZWRlY2Vzc29ycy5wdXNoKGJiMzIpOworICAgIGJi
MzQucHJlZGVjZXNzb3JzLnB1c2goYmIzMyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92
ZXJmbG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZl
Y3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0
Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5aRGVmLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
TGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBiYjM0LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy54bW0zKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJs
eUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mg
PSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLlpEZWYsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0
ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNv
bGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuTGF0ZUNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoRGl2
RG91YmxlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW02KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTIpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0z
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRj
aEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdp
ZHRoOiA2NH0pOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQ
YXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlRG91
YmxlQ29uZChEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTEpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJh
RWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAs
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGJiMzQuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlRG91YmxlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVJbmRleChSZWcucjksIFJlZy5yc2ksIDgsIDApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVJlc0NvbmQoT3ZlcmZsb3cpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMg
PSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRl
Q29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChE
aXZEb3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTYpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoQWRkMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjExKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChBZGQzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgzKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1t
Myk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0
Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7Cisg
ICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFib3ZlT3JF
cXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsK
KyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0g
W107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVEb3VibGVDb25kKERvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMik7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54
bW0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnhtbTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0yKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAg
ICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjM0LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZURvdWJsZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcueG1tMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlSW5kZXgoUmVnLnI5LCBSZWcucmRpLCA4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChBZGQz
Mik7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KERp
dkRvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNik7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0zKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlRG91YmxlQ29uZChEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0z
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhz
bG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFF
YXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEZQLCB3
aWR0aDogNjR9KTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
TW92ZURvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tMyk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVnLnI5LCBSZWcu
cnNpLCA4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChEaXZEb3VibGUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnhtbTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM0
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoRG91YmxlTm90RXF1
YWxPclVub3JkZXJlZCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy54bW01KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9
IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogRlAsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogRlAsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEZQLCB3aWR0aDogNjR9KTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoTW92ZURvdWJsZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcueG1tNSk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW5kZXgoUmVn
LnI5LCBSZWcucmF4LCA4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE92ZXJmbG93KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNs
b3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRj
aEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlWkRlZiwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5M
YXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4pOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNDAwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGJi
MzUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxMSwgTm9ybWFsKSk7Cisg
ICAgYmIzNS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjM2LCBOb3JtYWwp
KTsKKyAgICBiYjM1LnByZWRlY2Vzc29ycy5wdXNoKGJiMzQpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0
cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlWkRlZiwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGJiMzUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChCcmFuY2gzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTGVzc1RoYW4pOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMjY3KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzUuYXBwZW5kKGluc3QpOworICAgIGJi
MzYucHJlZGVjZXNzb3JzLnB1c2goYmIzNSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM3NDQ2MjE2MCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIzNi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KFJldDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIzNi5hcHBlbmQoaW5zdCk7CisgICAgcmV0dXJuIGNvZGU7Cit9
CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3BheWxvYWQtanNhaXItQUNMajhDLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcGF5bG9hZC1qc2Fpci1BQ0xqOEMu
anMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3BheWxvYWQtanNhaXIt
QUNMajhDLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTY5NiBAQAorInVzZSBzdHJpY3Qi
OworLy8gR2VuZXJhdGVkIGJ5IEFpcjo6ZHVtcEFzSlMgZnJvbSAjQUNMajhDIGluIEpTQWlyCitm
dW5jdGlvbiBjcmVhdGVQYXlsb2FkSlNBaXJBQ0xqOEMoKQoreworICAgIGxldCBjb2RlID0gbmV3
IENvZGUoKTsKKyAgICBsZXQgYmIwID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjEgPSBj
b2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiMiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQg
YmIzID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjQgPSBjb2RlLmFkZEJsb2NrKCk7Cisg
ICAgbGV0IGJiNSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI2ID0gY29kZS5hZGRCbG9j
aygpOworICAgIGxldCBiYjcgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiOCA9IGNvZGUu
YWRkQmxvY2soKTsKKyAgICBsZXQgYmI5ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjEw
ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjExID0gY29kZS5hZGRCbG9jaygpOworICAg
IGxldCBiYjEyID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjEzID0gY29kZS5hZGRCbG9j
aygpOworICAgIGxldCBiYjE0ID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjE1ID0gY29k
ZS5hZGRCbG9jaygpOworICAgIGxldCBzbG90MCA9IGNvZGUuYWRkU3RhY2tTbG90KDE2MCwgTG9j
a2VkKTsKKyAgICBsZXQgc2xvdDEgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CisgICAg
bGV0IHNsb3QyID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworICAgIGxldCBzbG90MyA9
IGNvZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDQgPSBjb2RlLmFkZFN0
YWNrU2xvdCg0MCwgTG9ja2VkKTsKKyAgICBsZXQgdG1wNjEgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDYwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1OSA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wNTggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDU3
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wNTUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDU0ID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXA1MyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTIg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDUxID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXA1MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDkgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDQ4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0NyA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDQ1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0NCA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wNDMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQyID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0MSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wNDAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM5ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXAzOCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzcgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXAzNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzQgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDMzID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzMiA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDMwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyOSA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMjggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDI3ID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyNiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMjUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDI0ID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAyMyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjIgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDIxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAyMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTkgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDE4ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNyA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDE1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxNCA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wMTMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEyID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAxMSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
MTAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDkgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDggPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDcgPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDUgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDIgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDAgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IGluc3Q7CisgICAgbGV0IGFyZzsKKyAgICBiYjAuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxLCBOb3JtYWwpKTsKKyAgICBiYjAuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxNSwgTm9ybWFsKSk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM0Njk5NzM5Mik7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJl
Zy5yYnAsIDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJicCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGlu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVn
cy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEp
OworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuU2NyYXRjaCwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYnAsIDcyKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJwLCA2NCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgNTYpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYnAs
IDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0o
LTI4MTQ3NDk3NjcxMDY1NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIw
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0Vm
ZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJwLCAyNCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgMTYpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oLTI4MTQ3
NDk3NjcxMDY1Nik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0
cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUVhcmx5
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mu
YWRkKFJlZy5yMTEpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxh
dGVVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuTGF0ZVVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVl
OworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEg
PSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJjeCwgMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yY3gsIDQwKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
UmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3Rz
ID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hB
cmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBi
YjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQmlnSW1tKDQzNDY5MTY1OTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVx
dWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAg
ICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjgsIDUpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyMSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0
Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDh9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVz
ZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEy
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3Qu
ZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yMTIsIDApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgzNjQpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0
Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgp
OworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucjEyLCA4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAtNDApOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIx
Mik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRy
YUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGlu
c3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1tKDQzNDY5MTA0
MDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAg
IGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDAsIDcyKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDAsIDY0KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDAsIDU2KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDAs
IDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhz
bG90MCwgNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOwor
ICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJl
cmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy5yMTEpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVVc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuTGF0ZVVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGlu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoWG9yNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0o
Nik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMik7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xv
dDIsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMik7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
OSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRy
dWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Qz
LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoQnJhbmNoVGVzdDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29u
ZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFw
cGVuZChpbnN0KTsKKyAgICBiYjEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2so
YmIzLCBOb3JtYWwpKTsKKyAgICBiYjEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxv
Y2soYmIyLCBOb3JtYWwpKTsKKyAgICBiYjEucHJlZGVjZXNzb3JzLnB1c2goYmIwKTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVJlbENvbmQoTm90RXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnI4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNDUyKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnI4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVl
OworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEg
PSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVz
ZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIxLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnI4
LCAxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxLmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0lt
bSg0MzQ3MzEzMTkyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjEuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQWRkcihSZWcucmN4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2g2NCk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVJlbENvbmQoRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgOCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIxLmFwcGVuZChpbnN0KTsKKyAgICBiYjIucHJlZGVjZXNzb3JzLnB1
c2goYmIxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yOCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7
CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBiYjIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChPb3BzKTsKKyAgICBi
YjIuYXBwZW5kKGluc3QpOworICAgIGJiMy5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRC
bG9jayhiYjQsIE5vcm1hbCkpOworICAgIGJiMy5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50
ZWRCbG9jayhiYjcsIE5vcm1hbCkpOworICAgIGJiMy5wcmVkZWNlc3NvcnMucHVzaChiYjEpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcu
cjgsIDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjMuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCA1KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMjMpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3Qu
cGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVy
ZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDh9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGJiMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM0Njc3ODg2NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNo
NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEVxdWFsKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDI0KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjMuYXBwZW5kKGluc3QpOworICAgIGJiNC5z
dWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjUsIE5vcm1hbCkpOworICAgIGJi
NC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjYsIE5vcm1hbCkpOworICAg
IGJiNC5wcmVkZWNlc3NvcnMucHVzaChiYjMpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QwLCAwKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDE2KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAzMik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwg
MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJk
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5w
YXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNv
bGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90
MCwgMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFj
ayhzbG90MCwgMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVTdGFjayhzbG90MCwgMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI0LmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVTdGFjayhzbG90MCwgOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQmlnSW1tKDQzNDcyMTgwNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDM0NzIxODY3Mik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDIpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMTYpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDI0KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRj
aCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUNhbGxBcmcoMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUNhbGxBcmcoMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVh
cmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVn
cyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcu
cjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzLmFkZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnJkaSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
cjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTMpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tNyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzLmFkZChSZWcueG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcueG1tMTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0g
W107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYs
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmI0LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEsIDApOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1
ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRh
ID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChYb3I2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSg2KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKC0yKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQ
YXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVz
Q29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3QxLCAwKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7Cisg
ICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtd
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUltbSgxKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2hUZXN0NjQpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjQuYXBwZW5kKGluc3QpOworICAgIGJiNS5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjgsIE5vcm1hbCkpOworICAgIGJiNS5wcmVkZWNlc3Nv
cnMucHVzaChiYjQpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlU3RhY2soc2xvdDEsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuTGF0ZVVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5MYXRlVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25B
cmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3
IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5D
b2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
Y3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0Vm
ZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVS
ZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVBZGRyKFJlZy5yY3gsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUltbSg0MDYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7Cisg
ICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtd
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3
aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRV
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUJpZ0ltbSg0MzQ2OTA2MTc2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmI1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDMyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNh
bGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
Q2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlD
bG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0g
bmV3IFNldCgpOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmN4KTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkeCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy5yc2kpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmRp
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI4KTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI5KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVn
cy5hZGQoUmVnLnIxMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTEp
OworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncy5hZGQoUmVnLnhtbTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
eG1tMyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW00KTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTUpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tNik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy54bW03KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTgpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOSk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy54bW0xMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54
bW0xMik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMyk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MSwgMCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAg
aW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBi
YjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlSW1tKDEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjUu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChKdW1wKTsKKyAgICBiYjUuYXBwZW5k
KGluc3QpOworICAgIGJiNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjgs
IE5vcm1hbCkpOworICAgIGJiNi5wcmVkZWNlc3NvcnMucHVzaChiYjQpOworICAgIGluc3QgPSBu
ZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEwKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcg
SW5zdChKdW1wKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAgIGJiNy5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEyLCBOb3JtYWwpKTsKKyAgICBiYjcuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI5LCBOb3JtYWwpKTsKKyAgICBiYjcucHJlZGVj
ZXNzb3JzLnB1c2goYmIzKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVJbW0oNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQ2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlSW1tKDEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVDYWxsQXJnKDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNy5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjcu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUNhbGxBcmcoNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI3
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVDYWxsQXJnKDQ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
Ny5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQ2FsbEFyZyg1Nik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjcuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMTYp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmco
MjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxB
cmcoMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNh
bGxBcmcoNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUNhbGxBcmcoNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUNhbGxBcmcoNTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBp
bnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mu
YWRkKFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnht
bTMpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcueG1tNyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1t
MTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEy
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoVGVzdDY0
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBiYjguc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxMywgTm9ybWFsKSk7CisgICAgYmI4LnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTAsIE5vcm1hbCkpOworICAgIGJi
OC5wcmVkZWNlc3NvcnMucHVzaChiYjYpOworICAgIGJiOC5wcmVkZWNlc3NvcnMucHVzaChiYjUp
OworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjguYXBwZW5kKGluc3QpOworICAgIGJiOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50
ZWRCbG9jayhiYjExLCBOb3JtYWwpKTsKKyAgICBiYjkucHJlZGVjZXNzb3JzLnB1c2goYmI3KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmI5LmFwcGVuZChpbnN0KTsKKyAgICBi
YjEwLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTEsIE5vcm1hbCkpOwor
ICAgIGJiMTAucHJlZGVjZXNzb3JzLnB1c2goYmI4KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVt
cCk7CisgICAgYmIxMC5hcHBlbmQoaW5zdCk7CisgICAgYmIxMS5wcmVkZWNlc3NvcnMucHVzaChi
YjkpOworICAgIGJiMTEucHJlZGVjZXNzb3JzLnB1c2goYmIxMCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVSZWxDb25kKEJlbG93KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVBZGRyKFJlZy5yYXgsIDUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUltbSgyMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5l
eHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA4fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA4fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5w
YXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGJiMTEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5z
dChPb3BzKTsKKyAgICBiYjExLmFwcGVuZChpbnN0KTsKKyAgICBiYjEyLnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTQsIE5vcm1hbCkpOworICAgIGJiMTIucHJlZGVjZXNz
b3JzLnB1c2goYmI3KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIxMi5hcHBl
bmQoaW5zdCk7CisgICAgYmIxMy5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhi
YjE0LCBOb3JtYWwpKTsKKyAgICBiYjEzLnByZWRlY2Vzc29ycy5wdXNoKGJiOCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGJiMTQucHJl
ZGVjZXNzb3JzLnB1c2goYmIxMik7CisgICAgYmIxNC5wcmVkZWNlc3NvcnMucHVzaChiYjEzKTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0LmFwcGVuZChpbnN0
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQW5kNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0o
LTkpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTQuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChOb3RFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0g
dHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdE
YXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMTQuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEw
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoUmV0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE0LmFwcGVuZChpbnN0KTsK
KyAgICBiYjE1LnByZWRlY2Vzc29ycy5wdXNoKGJiMCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMTApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChSZXQ2
NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAgIHJldHVybiBjb2RlOworfQpJbmRl
eDogUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9wYXlsb2FkLXR5cGVzY3JpcHQtc2NhbklkZW50aWZp
ZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9wYXlsb2FkLXR5cGVz
Y3JpcHQtc2NhbklkZW50aWZpZXIuanMJKHJldmlzaW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0pTQWlyL3BheWxvYWQtdHlwZXNjcmlwdC1zY2FuSWRlbnRpZmllci5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE4NDcgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8vIEdlbmVyYXRlZCBieSBBaXI6
OmR1bXBBc0pTIGZyb20gc2NhbklkZW50aWZpZXIjRVBjRlFlIGluIE9jdGFuZS90eXBlc2NyaXB0
CitmdW5jdGlvbiBjcmVhdGVQYXlsb2FkVHlwZXNjcmlwdFNjYW5JZGVudGlmaWVyKCkKK3sKKyAg
ICBsZXQgY29kZSA9IG5ldyBDb2RlKCk7CisgICAgbGV0IGJiMCA9IGNvZGUuYWRkQmxvY2soKTsK
KyAgICBsZXQgYmIxID0gY29kZS5hZGRCbG9jaygpOworICAgIGxldCBiYjIgPSBjb2RlLmFkZEJs
b2NrKCk7CisgICAgbGV0IGJiMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI0ID0gY29k
ZS5hZGRCbG9jaygpOworICAgIGxldCBiYjUgPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJi
NiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmI3ID0gY29kZS5hZGRCbG9jaygpOworICAg
IGxldCBiYjggPSBjb2RlLmFkZEJsb2NrKCk7CisgICAgbGV0IGJiOSA9IGNvZGUuYWRkQmxvY2so
KTsKKyAgICBsZXQgYmIxMCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMSA9IGNvZGUu
YWRkQmxvY2soKTsKKyAgICBsZXQgYmIxMiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIx
MyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxNCA9IGNvZGUuYWRkQmxvY2soKTsKKyAg
ICBsZXQgYmIxNSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxNiA9IGNvZGUuYWRkQmxv
Y2soKTsKKyAgICBsZXQgYmIxNyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxOCA9IGNv
ZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIxOSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQg
YmIyMCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyMSA9IGNvZGUuYWRkQmxvY2soKTsK
KyAgICBsZXQgYmIyMiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyMyA9IGNvZGUuYWRk
QmxvY2soKTsKKyAgICBsZXQgYmIyNCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNSA9
IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyNiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBs
ZXQgYmIyNyA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIyOCA9IGNvZGUuYWRkQmxvY2so
KTsKKyAgICBsZXQgYmIyOSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMCA9IGNvZGUu
YWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMSA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIz
MiA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgYmIzMyA9IGNvZGUuYWRkQmxvY2soKTsKKyAg
ICBsZXQgYmIzNCA9IGNvZGUuYWRkQmxvY2soKTsKKyAgICBsZXQgc2xvdDAgPSBjb2RlLmFkZFN0
YWNrU2xvdCg1NiwgTG9ja2VkKTsKKyAgICBsZXQgc2xvdDEgPSBjb2RlLmFkZFN0YWNrU2xvdCg4
LCBTcGlsbCk7CisgICAgbGV0IHNsb3QyID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOwor
ICAgIGxldCBzbG90MyA9IGNvZGUuYWRkU3RhY2tTbG90KDgsIFNwaWxsKTsKKyAgICBsZXQgc2xv
dDQgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7CisgICAgbGV0IHNsb3Q1ID0gY29kZS5h
ZGRTdGFja1Nsb3QoNCwgU3BpbGwpOworICAgIGxldCBzbG90NiA9IGNvZGUuYWRkU3RhY2tTbG90
KDgsIFNwaWxsKTsKKyAgICBsZXQgc2xvdDcgPSBjb2RlLmFkZFN0YWNrU2xvdCg4LCBTcGlsbCk7
CisgICAgbGV0IHNsb3Q4ID0gY29kZS5hZGRTdGFja1Nsb3QoOCwgU3BpbGwpOworICAgIGxldCBz
bG90OSA9IGNvZGUuYWRkU3RhY2tTbG90KDQwLCBMb2NrZWQpOworICAgIGxldCB0bXA5OCA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wOTcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDk2ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5NSA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wOTQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDkzID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA5MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wOTEgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDkwID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXA4OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODggPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDg3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXA4NiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODUgPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDg0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4MyA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wODIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDgxID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA4MCA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wNzkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDc4ID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXA3NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
NzYgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDc1ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXA3NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzMgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDcyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA3
MSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNzAgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDY5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2OCA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wNjcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDY2
ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA2NSA9IGNvZGUubmV3VG1wKEdQKTsKKyAg
ICBsZXQgdG1wNjQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYzID0gY29kZS5uZXdU
bXAoR1ApOworICAgIGxldCB0bXA2MiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNjEg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYwID0gY29kZS5uZXdUbXAoR1ApOworICAg
IGxldCB0bXA1OSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTggPSBjb2RlLm5ld1Rt
cChHUCk7CisgICAgbGV0IHRtcDU3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1NiA9
IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNTUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDU0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1MyA9IGNvZGUubmV3VG1w
KEdQKTsKKyAgICBsZXQgdG1wNTIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDUxID0g
Y29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA1MCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBs
ZXQgdG1wNDkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ4ID0gY29kZS5uZXdUbXAo
R1ApOworICAgIGxldCB0bXA0NyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDYgPSBj
b2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQ1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxl
dCB0bXA0NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDMgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDQyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXA0MSA9IGNv
ZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wNDAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0
IHRtcDM5ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzOCA9IGNvZGUubmV3VG1wKEdQ
KTsKKyAgICBsZXQgdG1wMzcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDM2ID0gY29k
ZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAzNSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQg
dG1wMzQgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMzID0gY29kZS5uZXdUbXAoR1Ap
OworICAgIGxldCB0bXAzMiA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMzEgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMwID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0
bXAyOSA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjggPSBjb2RlLm5ld1RtcChHUCk7
CisgICAgbGV0IHRtcDI3ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyNiA9IGNvZGUu
bmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMjUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDI0ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAyMyA9IGNvZGUubmV3VG1wKEdQKTsK
KyAgICBsZXQgdG1wMjIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDIxID0gY29kZS5u
ZXdUbXAoR1ApOworICAgIGxldCB0bXAyMCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1w
MTkgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDE4ID0gY29kZS5uZXdUbXAoR1ApOwor
ICAgIGxldCB0bXAxNyA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTYgPSBjb2RlLm5l
d1RtcChHUCk7CisgICAgbGV0IHRtcDE1ID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAx
NCA9IGNvZGUubmV3VG1wKEdQKTsKKyAgICBsZXQgdG1wMTMgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDEyID0gY29kZS5uZXdUbXAoR1ApOworICAgIGxldCB0bXAxMSA9IGNvZGUubmV3
VG1wKEdQKTsKKyAgICBsZXQgdG1wMTAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDkg
PSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDggPSBjb2RlLm5ld1RtcChHUCk7CisgICAg
bGV0IHRtcDcgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDYgPSBjb2RlLm5ld1RtcChH
UCk7CisgICAgbGV0IHRtcDUgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDQgPSBjb2Rl
Lm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDMgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRt
cDIgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IHRtcDEgPSBjb2RlLm5ld1RtcChHUCk7Cisg
ICAgbGV0IHRtcDAgPSBjb2RlLm5ld1RtcChHUCk7CisgICAgbGV0IGluc3Q7CisgICAgbGV0IGFy
ZzsKKyAgICBiYjAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI1LCBOb3Jt
YWwpKTsKKyAgICBiYjAuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI0LCBO
b3JtYWwpKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUJpZ0ltbSg0NTc5MjUxOTM2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJwKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJh
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZm
ZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4
dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnIxMSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5TY3Jh
dGNoLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwg
NDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0o
LTI4MTQ3NDk3NjcxMDY1NCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIw
LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE1
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJn
RWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBT
ZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVSZWxDb25kKE5vdEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSgyMSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFF
YXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogOH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogOH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoTm90RXF1YWwpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDI1NDApOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJi
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZm
ZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xk
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwg
NzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KENvbXBhcmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJl
bENvbmQoRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVJbW0oOTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQmlnSW1tKDQ1NTY5MTM5ODQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKE5v
dEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVB
ZGRyKFJlZy5yY3gsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUltbSg4MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQmlnSW1tKDQ1NTY5MTM5ODQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGlu
c3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNs
b2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBiYjAuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQmlnSW1t
KDQ1NTY5MTM5OTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVBZGRyKFJlZy5yY3gsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUFkZHIoUmVnLnIxMiwgLTgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQoQWJvdmVP
ckVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVh
cmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVn
cyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3
aWR0aDogMzJ9KTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChN
b3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUluZGV4KFJlZy5yMTIsIFJlZy5yYXgsIDgs
IDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMTAp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmVDb25kaXRpb25hbGx5VGVzdDY0KTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKC0xKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTMpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3Qo
WG9yNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDIsIDApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQo
Tm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5l
eHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwg
dHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6
IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0
fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6
IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
Q29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMC5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMSk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDEs
IDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIwLmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUJpZ0ltbSg0NTMx
OTA5MzYwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVN0YWNrKHNsb3Q0LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVCaWdJbW0oNDUxMDI2Njk2MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIwLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUJpZ0ltbSgtMjgxNDc0OTc2NzEwNjU2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjAuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRl
c3Q2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMC5hcHBlbmQoaW5zdCk7CisgICAgYmIxLnBy
ZWRlY2Vzc29ycy5wdXNoKGJiNik7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1
ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRh
ID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGJiMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE9vcHMpOworICAgIGJiMS5hcHBlbmQoaW5zdCk7CisgICAgYmIyLnByZWRlY2Vzc29ycy5w
dXNoKGJiMjMpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5z
dC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAg
IGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBiYjIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChPb3BzKTsK
KyAgICBiYjIuYXBwZW5kKGluc3QpOworICAgIGJiMy5wcmVkZWNlc3NvcnMucHVzaChiYjMyKTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJs
eUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mg
PSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAg
YmIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoT29wcyk7CisgICAgYmIzLmFw
cGVuZChpbnN0KTsKKyAgICBiYjQucHJlZGVjZXNzb3JzLnB1c2goYmIwKTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5
Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9
IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoT29wcyk7CisgICAgYmI0LmFwcGVuZChpbnN0KTsKKyAgICBiYjUuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI4LCBOb3JtYWwpKTsKKyAgICBiYjUuc3VjY2Vz
c29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI2LCBSYXJlKSk7CisgICAgYmI1LnByZWRl
Y2Vzc29ycy5wdXNoKGJiMCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDU2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmJ4LCA4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3Zl
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAtMjQpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGJiNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yMTAsIDE2KTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjUuYXBwZW5kKGluc3QpOworICAgIGluc3Qg
PSBuZXcgSW5zdChCcmFuY2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5v
blplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjUuYXBwZW5k
KGluc3QpOworICAgIGJiNi5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEs
IFJhcmUpKTsKKyAgICBiYjYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmI3
LCBOb3JtYWwpKTsKKyAgICBiYjYucHJlZGVjZXNzb3JzLnB1c2goYmI1KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgMzYpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEwKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90OCwg
MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTAp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7Cisg
ICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJj
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yMTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI2LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNr
KHNsb3Q3LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAo
UmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
U3RhY2soc2xvdDYsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmI2LmFwcGVu
ZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJkaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjYuYXBw
ZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy54bW0wKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJk
aSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yY3gpOworICAgIGluc3QuZXh0cmFDbG9iYmVy
ZWRSZWdzLmFkZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVn
LnJkaSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
cjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMik7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW0zKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTQpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNSk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW02KTsKKyAgICBpbnN0LmV4dHJh
Q2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTcpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tOCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW05
KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEwKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnhtbTEyKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTEzKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTE0KTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTE1KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5V
c2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuRGVmLCB0eXBlOiBGUCwgd2lk
dGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDgs
IDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjEwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhz
bG90NywgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5kKGlu
c3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3Rh
Y2soc2xvdDYsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiNi5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVCaWdJbW0oNDUzMTkwOTM2MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmI2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoVGVzdDY0KTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yY3gsIDApOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgtMSk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBiYjYuYXBwZW5kKGluc3QpOworICAgIGJiNy5zdWNjZXNzb3JzLnB1
c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjExLCBOb3JtYWwpKTsKKyAgICBiYjcucHJlZGVjZXNz
b3JzLnB1c2goYmI2KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUFkZHIoUmVnLnJheCwgOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmI3LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmI3
LmFwcGVuZChpbnN0KTsKKyAgICBiYjguc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxv
Y2soYmIxMSwgTm9ybWFsKSk7CisgICAgYmI4LnByZWRlY2Vzc29ycy5wdXNoKGJiNSk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYXgs
IDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiOC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiOC5hcHBlbmQoaW5zdCk7CisgICAg
YmI5LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTEsIE5vcm1hbCkpOwor
ICAgIGJiOS5wcmVkZWNlc3NvcnMucHVzaChiYjE1KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjkpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1
bXApOworICAgIGJiOS5hcHBlbmQoaW5zdCk7CisgICAgYmIxMC5zdWNjZXNzb3JzLnB1c2gobmV3
IEZyZXF1ZW50ZWRCbG9jayhiYjExLCBOb3JtYWwpKTsKKyAgICBiYjEwLnByZWRlY2Vzc29ycy5w
dXNoKGJiMTgpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yOSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMC5h
cHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAgIGJiMTAuYXBwZW5k
KGluc3QpOworICAgIGJiMTEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIx
MiwgTm9ybWFsKSk7CisgICAgYmIxMS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9j
ayhiYjE2LCBOb3JtYWwpKTsKKyAgICBiYjExLnByZWRlY2Vzc29ycy5wdXNoKGJiNyk7CisgICAg
YmIxMS5wcmVkZWNlc3NvcnMucHVzaChiYjEwKTsKKyAgICBiYjExLnByZWRlY2Vzc29ycy5wdXNo
KGJiOSk7CisgICAgYmIxMS5wcmVkZWNlc3NvcnMucHVzaChiYjgpOworICAgIGluc3QgPSBuZXcg
SW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjkpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRyKFJlZy5yYngsIDQwKTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjExLmFwcGVuZChpbnN0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5kKGluc3QpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0
cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDMyfSk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjExLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTQpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEx
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVn
LnJieCwgNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMS5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVBZGRy
KFJlZy5yYngsIDMyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjExLmFw
cGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MTEuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVzQ29uZChPdmVyZmxvdyk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJi
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2so
c2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAg
aW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAz
Mn0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2VaRGVmLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxhdGVDb2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkxh
dGVDb2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgYmIxMS5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjExLmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTEu
YXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZUFkZHIoUmVnLnJieCwgMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIxMS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMyKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGJiMTEuYXBwZW5kKGluc3QpOworICAgIGJiMTIuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIxMywgTm9ybWFsKSk7CisgICAgYmIxMi5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE0LCBOb3JtYWwpKTsKKyAgICBiYjEy
LnByZWRlY2Vzc29ycy5wdXNoKGJiMTEpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChBYm92
ZU9yRXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVBZGRyKFJlZy5yMTAsIDEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9
IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3QucGF0Y2hB
cmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBp
bnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMTIuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucjEwLCAxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxMi5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3QzMik7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAxNik7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIxMi5hcHBlbmQoaW5zdCk7CisgICAgYmIxMy5zdWNjZXNzb3JzLnB1c2gobmV3
IEZyZXF1ZW50ZWRCbG9jayhiYjE1LCBOb3JtYWwpKTsKKyAgICBiYjEzLnByZWRlY2Vzc29ycy5w
dXNoKGJiMTIpOworICAgIGluc3QgPSBuZXcgSW5zdChMb2FkOCk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUluZGV4KFJlZy5yOSwgUmVnLnJkeCwgMSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIxMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXAp
OworICAgIGJiMTMuYXBwZW5kKGluc3QpOworICAgIGJiMTQuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIxNSwgTm9ybWFsKSk7CisgICAgYmIxNC5wcmVkZWNlc3NvcnMucHVz
aChiYjEyKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTG9hZDE2KTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlSW5kZXgoUmVnLnI5LCBSZWcucmR4LCAyLCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBiYjE0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7
CisgICAgYmIxNC5hcHBlbmQoaW5zdCk7CisgICAgYmIxNS5zdWNjZXNzb3JzLnB1c2gobmV3IEZy
ZXF1ZW50ZWRCbG9jayhiYjksIE5vcm1hbCkpOworICAgIGJiMTUuc3VjY2Vzc29ycy5wdXNoKG5l
dyBGcmVxdWVudGVkQmxvY2soYmIxNywgTm9ybWFsKSk7CisgICAgYmIxNS5wcmVkZWNlc3NvcnMu
cHVzaChiYjE0KTsKKyAgICBiYjE1LnByZWRlY2Vzc29ycy5wdXNoKGJiMTMpOworICAgIGluc3Qg
PSBuZXcgSW5zdChNb3ZlMzIpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNp
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE1LmFwcGVuZChpbnN0KTsK
KyAgICBpbnN0ID0gbmV3IEluc3QoQWRkNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yMTQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTUuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUFkZHIoUmVnLnJieCwgNzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIx
NS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEFib3ZlT3JFcXVhbCk7
CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
c2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucjgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVTdGFjayhzbG90NSwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5z
dC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2Ji
ZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5w
dXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDMy
fSk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVJbmRleChSZWcucjEyLCBSZWcucmF4LCA4LCAwKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoTW92ZUNvbmRpdGlvbmFsbHlUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVJbW0oLTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIxNS5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFhvcjY0
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKC0yKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjE1LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9u
WmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJkeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRy
YUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDMyfSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNo
KHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDEpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMTUuYXBwZW5kKGluc3QpOworICAgIGlu
c3QgPSBuZXcgSW5zdChCcmFuY2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25k
KE5vblplcm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjE1LmFw
cGVuZChpbnN0KTsKKyAgICBiYjE2LnByZWRlY2Vzc29ycy5wdXNoKGJiMTEpOworICAgIGluc3Qg
PSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3Mu
cHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBp
bnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGlu
c3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjE2LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0g
bmV3IEluc3QoT29wcyk7CisgICAgYmIxNi5hcHBlbmQoaW5zdCk7CisgICAgYmIxNy5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjE4LCBOb3JtYWwpKTsKKyAgICBiYjE3LnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTksIE5vcm1hbCkpOworICAgIGJi
MTcucHJlZGVjZXNzb3JzLnB1c2goYmIxNSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDMy
KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChHcmVhdGVyVGhhbk9yRXF1YWwpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucnNpKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oNDgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxNy5hcHBlbmQoaW5zdCk7CisgICAgYmIx
OC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjEwLCBOb3JtYWwpKTsKKyAg
ICBiYjE4LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMTksIE5vcm1hbCkp
OworICAgIGJiMTgucHJlZGVjZXNzb3JzLnB1c2goYmIxNyk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KEJyYW5jaDMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZChMZXNzVGhhbk9yRXF1YWwp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcu
cnNpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0o
NTcpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxOC5hcHBlbmQoaW5zdCk7Cisg
ICAgYmIxOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIwLCBOb3JtYWwp
KTsKKyAgICBiYjE5LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjEsIE5v
cm1hbCkpOworICAgIGJiMTkucHJlZGVjZXNzb3JzLnB1c2goYmIxNyk7CisgICAgYmIxOS5wcmVk
ZWNlc3NvcnMucHVzaChiYjE4KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEdyZWF0ZXJUaGFuT3JFcXVhbCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgxMjgpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIxOS5hcHBlbmQoaW5zdCk7CisgICAgYmIyMC5wcmVk
ZWNlc3NvcnMucHVzaChiYjE5KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUGF0Y2gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90NSwg
MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yYngpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFy
Z0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcg
U2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0p
OworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgYmIyMC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJ
bnN0KE9vcHMpOworICAgIGJiMjAuYXBwZW5kKGluc3QpOworICAgIGJiMjEuc3VjY2Vzc29ycy5w
dXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIyMiwgTm9ybWFsKSk7CisgICAgYmIyMS5zdWNjZXNz
b3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjIzLCBOb3JtYWwpKTsKKyAgICBiYjIxLnBy
ZWRlY2Vzc29ycy5wdXNoKGJiMTkpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVN0YWNrKHNsb3Q1
LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdF
ZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNl
dCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRj
aEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsK
KyAgICBiYjIxLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoQnJhbmNoMzIpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVSZWxDb25kKEVxdWFsKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDkyKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGJiMjEuYXBwZW5kKGluc3QpOworICAgIGJiMjIucHJlZGVjZXNzb3JzLnB1
c2goYmIyMSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDUsIDApOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmJ4KTsKKyAg
ICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0g
dHJ1ZTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAg
IGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdE
YXRhID0gW107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFy
Zy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2
NH0pOworICAgIGJiMjIuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChPb3BzKTsK
KyAgICBiYjIyLmFwcGVuZChpbnN0KTsKKyAgICBiYjIzLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJl
cXVlbnRlZEJsb2NrKGJiMiwgUmFyZSkpOworICAgIGJiMjMuc3VjY2Vzc29ycy5wdXNoKG5ldyBG
cmVxdWVudGVkQmxvY2soYmIyNCwgTm9ybWFsKSk7CisgICAgYmIyMy5wcmVkZWNlc3NvcnMucHVz
aChiYjIxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUFkZHIoUmVnLnJieCwgNDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJi
MjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQmlnSW1tKDQ1NTY5NDM2MTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlSW1tKDMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDMyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTEpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoNDApOworICAgIGluc3QuYXJncy5wdXNo
KGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNo
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVn
LnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUNhbGxBcmcoOCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlQ2FsbEFyZygxNik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlQ2FsbEFyZygyNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQ2FsbEFyZyg0MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjE0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAgICBpbnN0LmV4dHJh
RWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRS
ZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy5yMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucmN4KTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkeCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy5yc2kpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcucmRpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI4KTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnI5KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnIxMCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy5yMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnhtbTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFk
ZChSZWcueG1tMyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW00KTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTUpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy54bW03KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnht
bTgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOSk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy54bW0xMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy54bW0xMik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xMyk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNCk7CisgICAgaW5zdC5l
eHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0xNSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEg
PSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBH
UCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRl
ZiwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3Jv
bGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5w
YXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiAzMn0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0
aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBl
OiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJn
LlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIy
My5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMg
PSB0cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7Cisg
ICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5wYXRjaEFy
Z0RhdGEgPSBbXTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0
eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTog
QXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0
YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJi
MjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBB
cmcuY3JlYXRlQmlnSW1tKDQ1NTY5NjMzMzYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcp
OworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlQWRkcihSZWcucmF4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92
ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJheCwgLTEzMzYpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjMuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcu
Y3JlYXRlUmVzQ29uZChOb25aZXJvKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTUpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsK
KyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0g
W107CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1As
IHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2Us
IHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xl
OiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEu
cHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29s
ZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2go
e3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyMy5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVBZGRyKFJlZy5yMTMsIDI0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBi
YjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0g
QXJnLmNyZWF0ZVRtcChSZWcucjEyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVTdGFjayhzbG90MCwgMCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjIzLmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlSW1tKDIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZUFkZHIoUmVnLnJicCwgMzYpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDUxMDIwNDkxMik7CisgICAgaW5zdC5hcmdzLnB1
c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlU3RhY2soc2xvdDMsIDApOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9
IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgaW5z
dCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJicCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkp
OworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChh
cmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnhtbTApOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5z
dC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAg
IGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0
cnVlOworICAgIGluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy5yY3gpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7CisgICAg
aW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNsb2Ji
ZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJl
Zy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tMik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy54bW0zKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTQpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNSk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW02KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVn
cy5hZGQoUmVnLnhtbTcpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1t
OCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW05KTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEwKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnhtbTExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQo
UmVnLnhtbTEyKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEzKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTE0KTsKKyAgICBpbnN0LmV4
dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTE1KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9
IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQ
LCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkRlZiwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBh
dGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuRGVmLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAg
aW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDUzMTkw
OTM2MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1w
KFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIyMy5hcHBlbmQoaW5z
dCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaFRlc3Q2NCk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVJlc0NvbmQoTm9uWmVybyk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlQWRkcihSZWcucmN4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIyMy5hcHBlbmQoaW5zdCk7CisgICAgYmIyNC5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1
ZW50ZWRCbG9jayhiYjI1LCBOb3JtYWwpKTsKKyAgICBiYjI0LnN1Y2Nlc3NvcnMucHVzaChuZXcg
RnJlcXVlbnRlZEJsb2NrKGJiMjYsIE5vcm1hbCkpOworICAgIGJiMjQucHJlZGVjZXNzb3JzLnB1
c2goYmIyMyk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsKKyAgICBpbnN0LmFyZ3MucHVz
aChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJieCk7CisgICAgaW5zdC5hcmdz
LnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yMTIpOworICAgIGluc3Qu
YXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucjEzKTsKKyAgICBp
bnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7Cisg
ICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9
IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LnBhdGNoQXJn
RGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRh
LnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5z
dC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDog
NjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlw
ZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMjQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBu
ZXcgSW5zdChCcmFuY2hUZXN0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblpl
cm8pOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnIxNSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI0LmFwcGVuZChp
bnN0KTsKKyAgICBiYjI1LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjcs
IE5vcm1hbCkpOworICAgIGJiMjUuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2so
YmIyNiwgTm9ybWFsKSk7CisgICAgYmIyNS5wcmVkZWNlc3NvcnMucHVzaChiYjI0KTsKKyAgICBp
bnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJj
eCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI1LmFwcGVuZChpbnN0KTsKKyAg
ICBpbnN0ID0gbmV3IEluc3QoQW5kNjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oLTkpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmN4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMjUuYXBwZW5kKGluc3QpOworICAg
IGluc3QgPSBuZXcgSW5zdChCcmFuY2g2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlbENvbmQo
RXF1YWwpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRt
cChSZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVJbW0oMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI1LmFwcGVuZChpbnN0
KTsKKyAgICBiYjI2LnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMjksIE5v
cm1hbCkpOworICAgIGJiMjYuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIy
OCwgTm9ybWFsKSk7CisgICAgYmIyNi5wcmVkZWNlc3NvcnMucHVzaChiYjI0KTsKKyAgICBiYjI2
LnByZWRlY2Vzc29ycy5wdXNoKGJiMjUpOworICAgIGluc3QgPSBuZXcgSW5zdChCcmFuY2hUZXN0
NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVSZXNDb25kKE5vblplcm8pOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0
LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxNSk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjI2LmFwcGVuZChpbnN0KTsKKyAgICBiYjI3LnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzAsIE5vcm1hbCkpOworICAgIGJi
MjcucHJlZGVjZXNzb3JzLnB1c2goYmIyNSk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVJbW0oMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIyNy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KEp1bXApOworICAg
IGJiMjcuYXBwZW5kKGluc3QpOworICAgIGJiMjguc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVu
dGVkQmxvY2soYmIzMiwgTm9ybWFsKSk7CisgICAgYmIyOC5wcmVkZWNlc3NvcnMucHVzaChiYjI2
KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIyOC5hcHBlbmQoaW5zdCk7Cisg
ICAgYmIyOS5zdWNjZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMwLCBOb3JtYWwp
KTsKKyAgICBiYjI5LnByZWRlY2Vzc29ycy5wdXNoKGJiMjYpOworICAgIGluc3QgPSBuZXcgSW5z
dChKdW1wKTsKKyAgICBiYjI5LmFwcGVuZChpbnN0KTsKKyAgICBiYjMwLnN1Y2Nlc3NvcnMucHVz
aChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzQsIE5vcm1hbCkpOworICAgIGJiMzAuc3VjY2Vzc29y
cy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIzMSwgTm9ybWFsKSk7CisgICAgYmIzMC5wcmVk
ZWNlc3NvcnMucHVzaChiYjI5KTsKKyAgICBiYjMwLnByZWRlY2Vzc29ycy5wdXNoKGJiMjcpOwor
ICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5y
YXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChS
ZWcucmN4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzAuYXBwZW5kKGluc3Qp
OworICAgIGluc3QgPSBuZXcgSW5zdChBbmQ2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUltbSgt
OSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJl
Zy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzMC5hcHBlbmQoaW5zdCk7
CisgICAgaW5zdCA9IG5ldyBJbnN0KEJyYW5jaDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlUmVs
Q29uZChFcXVhbCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3Jl
YXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUltbSgyKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGJiMzAuYXBwZW5k
KGluc3QpOworICAgIGJiMzEuc3VjY2Vzc29ycy5wdXNoKG5ldyBGcmVxdWVudGVkQmxvY2soYmIz
MiwgTm9ybWFsKSk7CisgICAgYmIzMS5wcmVkZWNlc3NvcnMucHVzaChiYjMwKTsKKyAgICBpbnN0
ID0gbmV3IEluc3QoSnVtcCk7CisgICAgYmIzMS5hcHBlbmQoaW5zdCk7CisgICAgYmIzMi5zdWNj
ZXNzb3JzLnB1c2gobmV3IEZyZXF1ZW50ZWRCbG9jayhiYjMsIFJhcmUpKTsKKyAgICBiYjMyLnN1
Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVlbnRlZEJsb2NrKGJiMzMsIE5vcm1hbCkpOworICAgIGJi
MzIucHJlZGVjZXNzb3JzLnB1c2goYmIyOCk7CisgICAgYmIzMi5wcmVkZWNlc3NvcnMucHVzaChi
YjMxKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZTMyKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
SW1tKDMpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUFk
ZHIoUmVnLnJicCwgMzYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzMi5hcHBl
bmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVCaWdJbW0oNDU1NjkxMzY4MCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcg
PSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAg
YmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAgIGFy
ZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJjeCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAg
ICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yc2kpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJicCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZGkpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KFBhdGNoKTsK
KyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDUx
MDIwNDkxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRl
VG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZVRtcChSZWcucmR4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFy
Zy5jcmVhdGVUbXAoUmVnLnhtbTApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJn
ID0gQXJnLmNyZWF0ZVRtcChSZWcucmRpKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJzaSk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yZHgpOworICAgIGluc3QuYXJncy5wdXNoKGFy
Zyk7CisgICAgaW5zdC5wYXRjaEhhc05vbkFyZ0VmZmVjdHMgPSB0cnVlOworICAgIGluc3QuZXh0
cmFFYXJseUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MgPSBuZXcgU2V0KCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5y
Y3gpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucnNpKTsKKyAgICBpbnN0
LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJl
ZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5y
OSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yMTApOworICAgIGluc3Qu
ZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVk
UmVncy5hZGQoUmVnLnhtbTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcu
eG1tMik7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW0zKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTQpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tNSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRk
KFJlZy54bW02KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTcpOwor
ICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tOCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW05KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVn
cy5hZGQoUmVnLnhtbTEwKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnht
bTExKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEyKTsKKyAgICBp
bnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTEzKTsKKyAgICBpbnN0LmV4dHJhQ2xv
YmJlcmVkUmVncy5hZGQoUmVnLnhtbTE0KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5h
ZGQoUmVnLnhtbTE1KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0
Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAg
ICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6
IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLkRlZiwgdHlwZTog
R1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5E
ZWYsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHty
b2xlOiBBcmcuRGVmLCB0eXBlOiBGUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0Rh
dGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3Qu
cGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsK
KyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lk
dGg6IDY0fSk7CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1v
dmUpOworICAgIGFyZyA9IEFyZy5jcmVhdGVCaWdJbW0oNDUzMTkwOTM2MCk7CisgICAgaW5zdC5h
cmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yY3gpOworICAgIGlu
c3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzMi5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5l
dyBJbnN0KEJyYW5jaFRlc3Q2NCk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVJlc0NvbmQoTm9uWmVy
byk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlQWRkcihS
ZWcucmN4LCAwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVh
dGVJbW0oLTEpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYmIzMi5hcHBlbmQoaW5z
dCk7CisgICAgYmIzMy5wcmVkZWNlc3NvcnMucHVzaChiYjMyKTsKKyAgICBpbnN0ID0gbmV3IElu
c3QoUGF0Y2gpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZVRtcChSZWcucmJ4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5j
cmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBpbnN0LnBh
dGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVk
UmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5ldyBTZXQo
KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1
c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNo
QXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuQ29sZFVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOwor
ICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNlLCB0eXBlOiBHUCwg
d2lkdGg6IDY0fSk7CisgICAgYmIzMy5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0
KFJldDY0KTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJn
cy5wdXNoKGFyZyk7CisgICAgYmIzMy5hcHBlbmQoaW5zdCk7CisgICAgYmIzNC5wcmVkZWNlc3Nv
cnMucHVzaChiYjMwKTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZUJpZ0ltbSg0NTU1NzU3MzQ0KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7CisgICAg
YXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUzMik7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSgzKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDE2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChNb3ZlKTsKKyAgICBh
cmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7
CisgICAgYmIzNC5hcHBlbmQoaW5zdCk7CisgICAgaW5zdCA9IG5ldyBJbnN0KE1vdmUpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVUbXAoUmVnLnIxMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsK
KyAgICBhcmcgPSBBcmcuY3JlYXRlQ2FsbEFyZygzMik7CisgICAgaW5zdC5hcmdzLnB1c2goYXJn
KTsKKyAgICBiYjM0LmFwcGVuZChpbnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoTW92ZSk7Cisg
ICAgYXJnID0gQXJnLmNyZWF0ZUltbSg2KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAg
IGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJnKDQwKTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOwor
ICAgIGJiMzQuYXBwZW5kKGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAg
aW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYXgpOwor
ICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4
KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9IEFyZy5jcmVhdGVDYWxsQXJn
KDgpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNhbGxB
cmcoMTYpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZUNh
bGxBcmcoMjQpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0
ZUNhbGxBcmcoMzIpOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNy
ZWF0ZUNhbGxBcmcoNDApOworICAgIGluc3QuYXJncy5wdXNoKGFyZyk7CisgICAgYXJnID0gQXJn
LmNyZWF0ZVRtcChSZWcucjE1KTsKKyAgICBpbnN0LmFyZ3MucHVzaChhcmcpOworICAgIGFyZyA9
IEFyZy5jcmVhdGVUbXAoUmVnLnIxNCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBp
bnN0LnBhdGNoSGFzTm9uQXJnRWZmZWN0cyA9IHRydWU7CisgICAgaW5zdC5leHRyYUVhcmx5Q2xv
YmJlcmVkUmVncyA9IG5ldyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncyA9IG5l
dyBTZXQoKTsKKyAgICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJjeCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yZHgpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcucnNpKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnJkaSk7
CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOCk7CisgICAgaW5zdC5leHRy
YUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy5yOSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3Mu
YWRkKFJlZy5yMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcucjExKTsK
KyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTApOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMSk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJl
Z3MuYWRkKFJlZy54bW0yKTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnht
bTMpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tNCk7CisgICAgaW5z
dC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW01KTsKKyAgICBpbnN0LmV4dHJhQ2xvYmJl
cmVkUmVncy5hZGQoUmVnLnhtbTYpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChS
ZWcueG1tNyk7CisgICAgaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKFJlZy54bW04KTsKKyAg
ICBpbnN0LmV4dHJhQ2xvYmJlcmVkUmVncy5hZGQoUmVnLnhtbTkpOworICAgIGluc3QuZXh0cmFD
bG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTApOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdz
LmFkZChSZWcueG1tMTEpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1t
MTIpOworICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTMpOworICAgIGlu
c3QuZXh0cmFDbG9iYmVyZWRSZWdzLmFkZChSZWcueG1tMTQpOworICAgIGluc3QuZXh0cmFDbG9i
YmVyZWRSZWdzLmFkZChSZWcueG1tMTUpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107Cisg
ICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRo
OiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5EZWYsIHR5cGU6
IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcu
VXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7
cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdE
YXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5cGU6IEdQLCB3aWR0aDogMzJ9KTsKKyAgICBpbnN0
LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Vc2UsIHR5
cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBB
cmcuVXNlLCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVz
aCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdpZHRoOiA2NH0pOworICAgIGJiMzQuYXBwZW5k
KGluc3QpOworICAgIGluc3QgPSBuZXcgSW5zdChQYXRjaCk7CisgICAgaW5zdC5hcmdzLnB1c2go
YXJnKTsKKyAgICBhcmcgPSBBcmcuY3JlYXRlVG1wKFJlZy5yYngpOworICAgIGluc3QuYXJncy5w
dXNoKGFyZyk7CisgICAgYXJnID0gQXJnLmNyZWF0ZVRtcChSZWcucmF4KTsKKyAgICBpbnN0LmFy
Z3MucHVzaChhcmcpOworICAgIGluc3QucGF0Y2hIYXNOb25BcmdFZmZlY3RzID0gdHJ1ZTsKKyAg
ICBpbnN0LmV4dHJhRWFybHlDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QuZXh0
cmFDbG9iYmVyZWRSZWdzID0gbmV3IFNldCgpOworICAgIGluc3QucGF0Y2hBcmdEYXRhID0gW107
CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9sZTogQXJnLlVzZSwgdHlwZTogR1AsIHdp
ZHRoOiA2NH0pOworICAgIGluc3QucGF0Y2hBcmdEYXRhLnB1c2goe3JvbGU6IEFyZy5Db2xkVXNl
LCB0eXBlOiBHUCwgd2lkdGg6IDY0fSk7CisgICAgaW5zdC5wYXRjaEFyZ0RhdGEucHVzaCh7cm9s
ZTogQXJnLkNvbGRVc2UsIHR5cGU6IEdQLCB3aWR0aDogNjR9KTsKKyAgICBiYjM0LmFwcGVuZChp
bnN0KTsKKyAgICBpbnN0ID0gbmV3IEluc3QoUmV0NjQpOworICAgIGFyZyA9IEFyZy5jcmVhdGVU
bXAoUmVnLnJheCk7CisgICAgaW5zdC5hcmdzLnB1c2goYXJnKTsKKyAgICBiYjM0LmFwcGVuZChp
bnN0KTsKKyAgICByZXR1cm4gY29kZTsKK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIv
cmVnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvcmVnLmpzCShyZXZp
c2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9yZWcuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMzMgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgUmVnIGV4dGVuZHMgVG1wQmFzZSB7CisgICAg
Y29uc3RydWN0b3IoaW5kZXgsIHR5cGUsIG5hbWUsIGlzQ2FsbGVlU2F2ZSkKKyAgICB7CisgICAg
ICAgIHN1cGVyKCk7CisgICAgICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CisgICAgICAgIHRoaXMu
X3R5cGUgPSB0eXBlOworICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKKyAgICAgICAgdGhpcy5f
aXNDYWxsZWVTYXZlID0gISFpc0NhbGxlZVNhdmU7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBm
cm9tUmVnKHJlZykKKyAgICB7CisgICAgICAgIHJldHVybiByZWc7CisgICAgfQorICAgIAorICAg
IGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2luZGV4OyB9CisgICAgZ2V0IHR5cGUoKSB7IHJl
dHVybiB0aGlzLl90eXBlOyB9CisgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9
CisgICAgZ2V0IGlzQ2FsbGVlU2F2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzQ2FsbGVlU2F2ZTsgfQor
ICAgIAorICAgIGdldCBpc1JlZygpIHsgcmV0dXJuIHRydWU7IH0KKyAgICAKKyAgICB0b1N0cmlu
ZygpCisgICAgeworICAgICAgICByZXR1cm4gIiUiICsgdGhpcy5fbmFtZTsKKyAgICB9CisgICAg
CisgICAgc3RhdGljIGV4dHJhY3QoYXJnKQorICAgIHsKKyAgICAgICAgaWYgKGFyZy5pc1JlZykK
KyAgICAgICAgICAgIHJldHVybiBhcmcucmVnOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9
CisgICAgCisgICAgc3RhdGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykKKyAgICB7CisgICAgICAg
IHJldHVybiBhcmcuZm9yRWFjaFRtcEZhc3QodG1wID0+IHsKKyAgICAgICAgICAgIGlmICghdG1w
LmlzUmVnKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmdW5j
KHRtcCk7CisgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaChhcmcs
IGFyZ1JvbGUsIGFyZ1R5cGUsIGFyZ1dpZHRoLCBmdW5jKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFyZy5mb3JFYWNoVG1wKAorICAgICAgICAgICAgYXJnUm9sZSwgYXJnVHlwZSwgYXJnV2lkdGgs
CisgICAgICAgICAgICAodG1wLCByb2xlLCB0eXBlLCB3aWR0aCkgPT4geworICAgICAgICAgICAg
ICAgIGlmICghdG1wLmlzUmVnKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZ1bmModG1wLCByb2xlLCB0eXBlLCB3aWR0aCk7CisgICAgICAgICAg
ICB9KTsKKyAgICB9Cit9CisKK3sKKyAgICBSZWcucmVncyA9IFtdOworICAgIGZ1bmN0aW9uIG5l
d1JlZyguLi5hcmdzKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBSZWcoLi4uYXJn
cyk7CisgICAgICAgIFJlZy5yZWdzLnB1c2gocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICB9CisKKyAgICAvLyBEZWZpbmUgWDg2XzY0IEdQUnMKKyAgICB7CisgICAgICAgIGxl
dCBpbmRleCA9IDA7CisgICAgICAgIGZ1bmN0aW9uIG5ld0dQUihuYW1lLCBpc0NhbGxlZVNhdmUp
IHsgcmV0dXJuIG5ld1JlZyhpbmRleCsrLCBHUCwgbmFtZSwgaXNDYWxsZWVTYXZlKTsgfQorICAg
ICAgICAKKyAgICAgICAgUmVnLnJheCA9IG5ld0dQUigicmF4Iik7CisgICAgICAgIFJlZy5yY3gg
PSBuZXdHUFIoInJjeCIpOworICAgICAgICBSZWcucmR4ID0gbmV3R1BSKCJyZHgiKTsKKyAgICAg
ICAgUmVnLnJieCA9IG5ld0dQUigicmJ4IiwgdHJ1ZSk7CisgICAgICAgIFJlZy5yc3AgPSBuZXdH
UFIoInJzcCIpOworICAgICAgICBSZWcucmJwID0gbmV3R1BSKCJyYnAiLCB0cnVlKTsKKyAgICAg
ICAgUmVnLnJzaSA9IG5ld0dQUigicnNpIik7CisgICAgICAgIFJlZy5yZGkgPSBuZXdHUFIoInJk
aSIpOworICAgICAgICBmb3IgKGxldCBpID0gODsgaSA8PSAxNTsgKytpKQorICAgICAgICAgICAg
UmVnWyJyIiArIGldID0gbmV3R1BSKCJyIiArIGksIGkgPj0gMTIpOworICAgIH0KKworICAgIC8v
IERlZmluZSBYODZfNjQgRlBScy4KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAxNTsgKytpKQor
ICAgICAgICBSZWdbInhtbSIgKyBpXSA9IG5ld1JlZyhpLCBGUCwgInhtbSIgKyBpKTsKKworICAg
IFJlZy5ncHJzID0gW10KKyAgICBSZWcuZnBycyA9IFtdCisgICAgUmVnLmNhbGxlZVNhdmVHUFJz
ID0gW10KKyAgICBSZWcuY2FsbGVlU2F2ZUZQUnMgPSBbXQorICAgIFJlZy5jYWxsZWVTYXZlcyA9
IFtdCisgICAgZm9yIChsZXQgcmVnIG9mIFJlZy5yZWdzKSB7CisgICAgICAgIGlmIChyZWcuaXNH
UCkgeworICAgICAgICAgICAgUmVnLmdwcnMucHVzaChyZWcpOworICAgICAgICAgICAgaWYgKHJl
Zy5pc0NhbGxlZVNhdmUpCisgICAgICAgICAgICAgICAgUmVnLmNhbGxlZVNhdmVHUFJzLnB1c2go
cmVnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFJlZy5mcHJzLnB1c2gocmVnKTsK
KyAgICAgICAgICAgIGlmIChyZWcuaXNDYWxsZWVTYXZlKQorICAgICAgICAgICAgICAgIFJlZy5j
YWxsZWVTYXZlRlBSUy5wdXNoKHJlZyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlZy5pc0Nh
bGxlZVNhdmUpCisgICAgICAgICAgICBSZWcuY2FsbGVlU2F2ZXMucHVzaChyZWcpOworICAgIH0K
KyAgICAKKyAgICBSZWcuY2FsbEZyYW1lUmVnaXN0ZXIgPSBSZWcucmJwOworICAgIFJlZy5zdGFj
a1BvaW50ZXJSZWdpc3RlciA9IFJlZy5yc3A7Cit9CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pT
QWlyL3N0YWNrX3Nsb3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9z
dGFja19zbG90LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci9zdGFj
a19zbG90LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTcgQEAKKyJ1c2Ugc3RyaWN0IjsK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworY2xhc3MgU3Rh
Y2tTbG90IHsKKyAgICBjb25zdHJ1Y3RvcihpbmRleCwgYnl0ZVNpemUsIGtpbmQpCisgICAgewor
ICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4OworICAgICAgICB0aGlzLl9ieXRlU2l6ZSA9IGJ5
dGVTaXplOworICAgICAgICB0aGlzLl9raW5kID0ga2luZDsKKyAgICB9CisgICAgCisgICAgZ2V0
IGJ5dGVTaXplKCkgeyByZXR1cm4gdGhpcy5fYnl0ZVNpemU7IH0KKyAgICBnZXQga2luZCgpIHsg
cmV0dXJuIHRoaXMuX2tpbmQ7IH0KKyAgICAKKyAgICBnZXQgaXNMb2NrZWQoKSB7IHJldHVybiB0
aGlzLl9raW5kID09IExvY2tlZDsgfQorICAgIGdldCBpc1NwaWxsKCkgeyByZXR1cm4gdGhpcy5f
a2luZCA9PSBTcGlsbDsgfQorICAgIAorICAgIGdldCBpbmRleCgpIHsgcmV0dXJuIHRoaXMuX2lu
ZGV4OyB9CisKKyAgICBlbnN1cmVTaXplKHNpemUpCisgICAgeworICAgICAgICBpZiAodGhpcy5f
b2Zmc2V0RnJvbUZQKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTdGFjayBzbG90IGFs
cmVhZHkgYWxsb2NhdGVkIik7CisgICAgICAgIHRoaXMuX2J5dGVTaXplID0gTWF0aC5tYXgodGhp
cy5fYnl0ZVNpemUsIHNpemUpOworICAgIH0KKyAgICAKKyAgICBnZXQgYWxpZ25tZW50KCkKKyAg
ICB7CisgICAgICAgIGlmICh0aGlzLl9ieXRlU2l6ZSA8PSAxKQorICAgICAgICAgICAgcmV0dXJu
IDE7CisgICAgICAgIGlmICh0aGlzLl9ieXRlU2l6ZSA8PSAyKQorICAgICAgICAgICAgcmV0dXJu
IDI7CisgICAgICAgIGlmICh0aGlzLl9ieXRlU2l6ZSA8PSA0KQorICAgICAgICAgICAgcmV0dXJu
IDQ7CisgICAgICAgIHJldHVybiA4OworICAgIH0KKyAgICAKKyAgICBnZXQgb2Zmc2V0RnJvbUZQ
KCkgeyByZXR1cm4gdGhpcy5fb2Zmc2V0RnJvbUZQOyB9CisgICAgCisgICAgc2V0T2Zmc2V0RnJv
bUZQKHZhbHVlKSB7IHRoaXMuX29mZnNldEZyb21GUCA9IHZhbHVlOyB9CisgICAgCisgICAgdG9T
dHJpbmcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICIiICsgKHRoaXMuaXNTcGlsbCA/ICJzcGls
bCIgOiAic3RhY2siKSArIHRoaXMuX2luZGV4ICsgIjwiICsgdGhpcy5fYnl0ZVNpemUgKworICAg
ICAgICAgICAgKHRoaXMuX29mZnNldEZyb21GUCA/ICIsIG9mZnNldCA9ICIgKyB0aGlzLl9vZmZz
ZXRGcm9tRlAgOiAiIikgKyAiPiI7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBleHRyYWN0KGFy
ZykKKyAgICB7CisgICAgICAgIGlmIChhcmcuaXNTdGFjaykKKyAgICAgICAgICAgIHJldHVybiBh
cmcuc3RhY2tTbG90OworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisgICAgCisgICAgc3Rh
dGljIGZvckVhY2hGYXN0KGFyZywgZnVuYykKKyAgICB7CisgICAgICAgIGlmICghYXJnLmlzU3Rh
Y2spCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBsZXQgcmVwbGFjZW1l
bnQ7CisgICAgICAgIGlmIChyZXBsYWNlbWVudCA9IGZ1bmMoYXJnLnN0YWNrU2xvdCkpCisgICAg
ICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVN0YWNrKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZzZXQp
OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgZm9yRWFjaChhcmcsIHJvbGUsIHR5cGUsIHdpZHRo
LCBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKCFhcmcuaXNTdGFjaykKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgCisgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgaWYgKHJl
cGxhY2VtZW50ID0gZnVuYyhhcmcuc3RhY2tTbG90LCByb2xlLCB0eXBlLCB3aWR0aCkpCisgICAg
ICAgICAgICByZXR1cm4gQXJnLmNyZWF0ZVN0YWNrKHJlcGxhY2VtZW50LCB0aGlzLl9vZmZzZXQp
OworICAgIH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvc3ltYm9scy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHJldmlzaW9uIDAp
CisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3N5bWJvbHMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw4MiBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisvLyBUaGlzIGZpbGUgaXMgZm9yIG1pc2Mgc3ltYm9scy4KKwor
Ly8gQjMgdHlwZXMKK2NvbnN0IFZvaWQgPSBTeW1ib2woIlZvaWQiKTsKK2NvbnN0IEludDMyID0g
U3ltYm9sKCJJbnQzMiIpOworY29uc3QgSW50NjQgPSBTeW1ib2woIkludDY0Iik7Citjb25zdCBG
bG9hdCA9IFN5bWJvbCgiRmxvYXQiKTsKK2NvbnN0IERvdWJsZSA9IFN5bWJvbCgiRG91YmxlIik7
CisKKy8vIEFyZyB0eXBlCitjb25zdCBHUCA9IFN5bWJvbCgiR1AiKTsKK2NvbnN0IEZQID0gU3lt
Ym9sKCJGUCIpOworCisvLyBTdGFjayBzbG90IGtpbmQKK2NvbnN0IExvY2tlZCA9IFN5bWJvbCgi
TG9ja2VkIik7Citjb25zdCBTcGlsbCA9IFN5bWJvbCgiU3BpbGwiKTsKKworLy8gRnJlcXVlbmN5
IGNsYXNzCitjb25zdCBOb3JtYWwgPSBTeW1ib2woIk5vcm1hbCIpOworY29uc3QgUmFyZSA9IFN5
bWJvbCgiUmFyZSIpOworCisvLyBSZWxhdGlvbmFsIGNvbmRpdGlvbnMKK2NvbnN0IEVxdWFsID0g
U3ltYm9sKCJFcXVhbCIpOworY29uc3QgTm90RXF1YWwgPSBTeW1ib2woIk5vdEVxdWFsIik7Citj
b25zdCBBYm92ZSA9IFN5bWJvbCgiQWJvdmUiKTsKK2NvbnN0IEFib3ZlT3JFcXVhbCA9IFN5bWJv
bCgiQWJvdmVPckVxdWFsIik7Citjb25zdCBCZWxvdyA9IFN5bWJvbCgiQmVsb3ciKTsKK2NvbnN0
IEJlbG93T3JFcXVhbCA9IFN5bWJvbCgiQmVsb3dPckVxdWFsIik7Citjb25zdCBHcmVhdGVyVGhh
biA9IFN5bWJvbCgiR3JlYXRlclRoYW4iKTsKK2NvbnN0IEdyZWF0ZXJUaGFuT3JFcXVhbCA9IFN5
bWJvbCgiR3JlYXRlclRoYW5PckVxdWFsIik7Citjb25zdCBMZXNzVGhhbiA9IFN5bWJvbCgiTGVz
c1RoYW4iKTsKK2NvbnN0IExlc3NUaGFuT3JFcXVhbCA9IFN5bWJvbCgiTGVzc1RoYW5PckVxdWFs
Iik7CisKKy8vIFJlc3VsdCBjb25kaXRpb25zCitjb25zdCBPdmVyZmxvdyA9IFN5bWJvbCgiT3Zl
cmZsb3ciKTsKK2NvbnN0IFNpZ25lZCA9IFN5bWJvbCgiU2lnbmVkIik7Citjb25zdCBQb3NpdGl2
ZU9yWmVybyA9IFN5bWJvbCgiUG9zaXRpdmVPclplcm8iKTsKK2NvbnN0IFplcm8gPSBTeW1ib2wo
Ilplcm8iKTsKK2NvbnN0IE5vblplcm8gPSBTeW1ib2woIk5vblplcm8iKTsKKworLy8gRG91Ymxl
IGNvbmRpdGlvbnMKK2NvbnN0IERvdWJsZUVxdWFsID0gU3ltYm9sKCJEb3VibGVFcXVhbCIpOwor
Y29uc3QgRG91YmxlTm90RXF1YWwgPSBTeW1ib2woIkRvdWJsZU5vdEVxdWFsIik7Citjb25zdCBE
b3VibGVHcmVhdGVyVGhhbiA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRoYW4iKTsKK2NvbnN0IERv
dWJsZUdyZWF0ZXJUaGFuT3JFcXVhbCA9IFN5bWJvbCgiRG91YmxlR3JlYXRlclRoYW5PckVxdWFs
Iik7Citjb25zdCBEb3VibGVMZXNzVGhhbiA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW4iKTsKK2Nv
bnN0IERvdWJsZUxlc3NUaGFuT3JFcXVhbCA9IFN5bWJvbCgiRG91YmxlTGVzc1RoYW5PckVxdWFs
Iik7Citjb25zdCBEb3VibGVFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVFcXVhbE9y
VW5vcmRlcmVkIik7Citjb25zdCBEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJE
b3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkIik7Citjb25zdCBEb3VibGVHcmVhdGVyVGhhbk9yVW5v
cmRlcmVkID0gU3ltYm9sKCJEb3VibGVHcmVhdGVyVGhhbk9yVW5vcmRlcmVkIik7Citjb25zdCBE
b3VibGVHcmVhdGVyVGhhbk9yRXF1YWxPclVub3JkZXJlZCA9IFN5bWJvbCgiRG91YmxlR3JlYXRl
clRoYW5PckVxdWFsT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZUxlc3NUaGFuT3JVbm9yZGVy
ZWQgPSBTeW1ib2woIkRvdWJsZUxlc3NUaGFuT3JVbm9yZGVyZWQiKTsKK2NvbnN0IERvdWJsZUxl
c3NUaGFuT3JFcXVhbE9yVW5vcmRlcmVkID0gU3ltYm9sKCJEb3VibGVMZXNzVGhhbk9yRXF1YWxP
clVub3JkZXJlZCIpOworCisvLyBEZWZpbmUgcG9pbnRlclR5cGUoKQorY29uc3QgUHRyID0gNjQ7
CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Rlc3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQ
ZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Rlc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDEgQEAK
KzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+SlNBaXI8L3RpdGxlPgorPHNjcmlwdCBzcmM9InN5bWJv
bHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRtcF9iYXNlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJhcmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImJhc2ljX2Jsb2NrLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjb2RlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJmcmVxdWVudGVkX2Jsb2NrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJpbnN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJvcGNvZGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3RhY2tfc2xvdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0idG1wLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJjdXN0b20uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
ImxpdmVuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJpbnNlcnRpb25fc2V0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJhbGxvY2F0ZV9zdGFjay5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icGF5bG9hZC1nYmVtdS1leGVjdXRlSXRlcmF0aW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJwYXlsb2FkLWltYWdpbmctZ2F1c3NpYW4tYmx1ci1nYXVzc2lhbkJsdXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InBheWxvYWQtanNhaXItQUNMajhDLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJwYXlsb2FkLXR5cGVzY3JpcHQtc2NhbklkZW50aWZpZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9ImJlbmNobWFyay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBiZW5jaG1hcmso
KTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdC1zdW1tYXJ5IikuaW5u
ZXJIVE1MID0gIlRoYXQgdG9vayAiICsgcmVzdWx0ICsgIiBtcy4iOworICAgIH0KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+SlNBaXI8L2gxPgorPHA+CisgIDxkaXYgaWQ9InJlc3Vs
dC1zdW1tYXJ5Ij48L2Rpdj4KKyAgPGRpdj48YSBocmVmPSJqYXZhc2NyaXB0OnJ1blRlc3QoKSI+
U3RhcnQgVGVzdDwvYT48L2Rpdj4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KKworCkluZGV4OiBQ
ZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3Rlc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VU
ZXN0cy9KU0Fpci90ZXN0LmpzCShyZXZpc2lvbiAwKQorKysgUGVyZm9ybWFuY2VUZXN0cy9KU0Fp
ci90ZXN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKKyJ1c2Ugc3RyaWN0IjsK
KworbG9hZCgiYWxsLmpzIik7Citsb2FkKCJwYXlsb2FkLWdiZW11LWV4ZWN1dGVJdGVyYXRpb24u
anMiKTsKK2xvYWQoInBheWxvYWQtaW1hZ2luZy1nYXVzc2lhbi1ibHVyLWdhdXNzaWFuQmx1ci5q
cyIpOworbG9hZCgicGF5bG9hZC1qc2Fpci1BQ0xqOEMuanMiKTsKK2xvYWQoInBheWxvYWQtdHlw
ZXNjcmlwdC1zY2FuSWRlbnRpZmllci5qcyIpOworbG9hZCgiYmVuY2htYXJrLmpzIik7CisKK2xl
dCByZXN1bHQgPSBiZW5jaG1hcmsoKTsKK3ByaW50KCJUaGF0IHRvb2sgIiArIHJlc3VsdCArICIg
bXMuIik7CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3RtcC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3RtcC5qcwkocmV2aXNpb24gMCkKKysrIFBlcmZvcm1h
bmNlVGVzdHMvSlNBaXIvdG1wLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKKyJ1
c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworY2xhc3MgVG1wIGV4dGVuZHMgVG1wQmFzZSB7CisgICAgY29uc3RydWN0b3IoaW5kZXgsIHR5
cGUpCisgICAgeworICAgICAgICBzdXBlcigpOworICAgICAgICB0aGlzLl9pbmRleCA9IGluZGV4
OworICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKKyAgICB9CisgICAgCisgICAgc3RhdGljIGZy
b21SZWcocmVnKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlZzsKKyAgICB9CisgICAgCisgICAg
Z2V0IGluZGV4KCkgeyByZXR1cm4gdGhpcy5faW5kZXg7IH0KKyAgICBnZXQgdHlwZSgpIHsgcmV0
dXJuIHRoaXMuX3R5cGU7IH0KKyAgICAKKyAgICBnZXQgaXNSZWcoKSB7IHJldHVybiBmYWxzZTsg
fQorICAgIAorICAgIHRvU3RyaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiAiJSIgKyAodGhp
cy5pc0dQID8gIiIgOiAiZiIpICsgInRtcCIgKyB0aGlzLl9pbmRleDsKKyAgICB9CisgICAgCisg
ICAgc3RhdGljIGV4dHJhY3QoYXJnKQorICAgIHsKKyAgICAgICAgaWYgKGFyZy5pc1RtcCkKKyAg
ICAgICAgICAgIHJldHVybiBhcmcudG1wOworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisK
KyAgICBzdGF0aWMgZm9yRWFjaEZhc3QoYXJnLCBmdW5jKSB7IHJldHVybiBhcmcuZm9yRWFjaFRt
cEZhc3QoZnVuYyk7IH0KKyAgICBzdGF0aWMgZm9yRWFjaChhcmcsIHJvbGUsIHR5cGUsIHdpZHRo
LCBmdW5jKSB7IHJldHVybiBhcmcuZm9yRWFjaFRtcChyb2xlLCB0eXBlLCB3aWR0aCwgZnVuYyk7
IH0KK30KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wX2Jhc2UuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9KU0Fpci90bXBfYmFzZS5qcwkocmV2aXNpb24gMCkKKysr
IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdG1wX2Jhc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1NSBAQAorInVzZSBzdHJpY3QiOworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCitjbGFzcyBUbXBCYXNlIHsKKyAgICBnZXQgaXNHUCgpIHsgcmV0dXJu
IHRoaXMudHlwZSA9PSBHUDsgfQorICAgIGdldCBpc0ZQKCkgeyByZXR1cm4gdGhpcy50eXBlID09
IEZQOyB9CisgICAgCisgICAgZ2V0IGlzR1BSKCkgeyByZXR1cm4gdGhpcy5pc1JlZyAmJiB0aGlz
LmlzR1A7IH0KKyAgICBnZXQgaXNGUFIoKSB7IHJldHVybiB0aGlzLmlzUmVnICYmIHRoaXMuaXNG
UDsgfQorICAgIAorICAgIGdldCByZWcoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzUmVn
KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxsZWQgLnJlZyBvbiBub24tUmVnIik7
CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKworICAgIGdldCBncHIoKQorICAgIHsKKyAg
ICAgICAgaWYgKCF0aGlzLmlzR1BSKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYWxs
ZWQgLmdwciBvbiBub24tR1BSIik7CisgICAgICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgICAK
KyAgICBnZXQgZnByKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc0ZQUikKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQ2FsbGVkIC5mcHIgb24gbm9uLUZQUiIpOworICAgICAgICBy
ZXR1cm4gdGhpczsKKyAgICB9Cit9CisKSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvSlNBaXIvdXRp
bC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3V0aWwuanMJKHJldmlz
aW9uIDApCisrKyBQZXJmb3JtYW5jZVRlc3RzL0pTQWlyL3V0aWwuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxNzQgQEAKKyJ1c2Ugc3RyaWN0IjsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworZnVuY3Rpb24gaXNSZXByZXNlbnRhYmxlQXNJbnQzMih2
YWx1ZSkKK3sKKyAgICByZXR1cm4gKHZhbHVlIHwgMCkgPT09IHZhbHVlOworfQorCitmdW5jdGlv
biBhZGRJbmRleGVkKGxpc3QsIGNvbnMsIC4uLmFyZ3MpCit7CisgICAgbGV0IHJlc3VsdCA9IG5l
dyBjb25zKGxpc3QubGVuZ3RoLCAuLi5hcmdzKTsKKyAgICBsaXN0LnB1c2gocmVzdWx0KTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitjb25zdCBzdGFja0FsaWdubWVudEJ5dGVzID0gMTY7CisK
K2Z1bmN0aW9uIHJvdW5kVXBUb011bHRpcGxlT2YoYW1vdW50LCB2YWx1ZSkKK3sKKyAgICByZXR1
cm4gTWF0aC5jZWlsKHZhbHVlIC8gYW1vdW50ICogYW1vdW50KTsKK30KKworZnVuY3Rpb24gc3lt
Ym9sTmFtZShzeW1ib2wpCit7CisgICAgbGV0IGZ1bGxTdHJpbmcgPSBzeW1ib2wudG9TdHJpbmco
KTsKKyAgICByZXR1cm4gZnVsbFN0cmluZy5zdWJzdHJpbmcoIlN5bWJvbCgiLmxlbmd0aCwgZnVs
bFN0cmluZy5sZW5ndGggLSAiKSIubGVuZ3RoKTsKK30KKworZnVuY3Rpb24gc2V0VG9TdHJpbmco
c2V0KQoreworICAgIGxldCByZXN1bHQgPSAiIjsKKyAgICBmb3IgKGxldCB2YWx1ZSBvZiBzZXQp
IHsKKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiLCAiOworICAg
ICAgICByZXN1bHQgKz0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1
bmN0aW9uIG1lcmdlSW50b1NldCh0YXJnZXQsIHNvdXJjZSkKK3sKKyAgICBsZXQgZGlkQWRkID0g
ZmFsc2U7CisgICAgZm9yIChsZXQgdmFsdWUgb2Ygc291cmNlKSB7CisgICAgICAgIGlmICh0YXJn
ZXQuaGFzKHZhbHVlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB0YXJnZXQuYWRk
KHZhbHVlKTsKKyAgICAgICAgZGlkQWRkID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGRpZEFk
ZDsKK30KKworZnVuY3Rpb24gbm9uRW1wdHlSYW5nZXNPdmVybGFwKGxlZnRNaW4sIGxlZnRNYXgs
IHJpZ2h0TWluLCByaWdodE1heCkKK3sKKyAgICBpZiAobGVmdE1pbiA+PSBsZWZ0TWF4KQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBsZWZ0IHJhbmdlIik7CisgICAgaWYgKHJpZ2h0TWlu
ID49IHJpZ2h0TWF4KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByaWdodCByYW5nZSIp
OworICAgIAorICAgIGlmIChsZWZ0TWluIDw9IHJpZ2h0TWluICYmIGxlZnRNYXggPiByaWdodE1p
bikKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHJpZ2h0TWluIDw9IGxlZnRNaW4gJiYg
cmlnaHRNYXggPiBsZWZ0TWluKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Z1bmN0aW9uIHJhbmdlc092ZXJsYXAobGVmdE1pbiwgbGVmdE1heCwgcmlnaHRN
aW4sIHJpZ2h0TWF4KQoreworICAgIGlmIChsZWZ0TWluID4gbGVmdE1heCkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJCYWQgbGVmdCByYW5nZSIpOworICAgIGlmIChyaWdodE1pbiA+IHJpZ2h0
TWF4KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCByaWdodCByYW5nZSIpOworICAgIAor
ICAgIGlmIChsZWZ0TWluID09IGxlZnRNYXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAocmlnaHRNaW4gPT0gcmlnaHRNYXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAg
ICByZXR1cm4gbm9uRW1wdHlSYW5nZXNPdmVybGFwKGxlZnRNaW4sIGxlZnRNYXgsIHJpZ2h0TWlu
LCByaWdodE1heCk7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZUFsbE1hdGNoaW5nKGFycmF5LCBmdW5j
KQoreworICAgIGxldCBzcmNJbmRleCA9IDA7CisgICAgbGV0IGRzdEluZGV4ID0gMDsKKyAgICB3
aGlsZSAoc3JjSW5kZXggPCBhcnJheS5sZW5ndGgpIHsKKyAgICAgICAgbGV0IHZhbHVlID0gYXJy
YXlbc3JjSW5kZXgrK107CisgICAgICAgIGlmICghZnVuYyh2YWx1ZSkpCisgICAgICAgICAgICBh
cnJheVtkc3RJbmRleCsrXSA9IHZhbHVlOworICAgIH0KKyAgICBhcnJheS5sZW5ndGggPSBkc3RJ
bmRleDsKK30KKworZnVuY3Rpb24gYnViYmxlU29ydChhcnJheSwgbGVzc1RoYW4pCit7CisgICAg
ZnVuY3Rpb24gc3dhcChpLCBqKQorICAgIHsKKyAgICAgICAgdmFyIHRtcCA9IGFycmF5W2ldOwor
ICAgICAgICBhcnJheVtpXSA9IGFycmF5W2pdOworICAgICAgICBhcnJheVtqXSA9IHRtcDsKKyAg
ICB9CisgICAgCisgICAgbGV0IGJlZ2luID0gMDsKKyAgICBsZXQgZW5kID0gYXJyYXkubGVuZ3Ro
OworICAgIGZvciAoOzspIHsKKyAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAg
CisgICAgICAgIGZ1bmN0aW9uIGJ1YmJsZShpLCBqKQorICAgICAgICB7CisgICAgICAgICAgICBp
ZiAobGVzc1RoYW4oYXJyYXlbaV0sIGFycmF5W2pdKSkgeworICAgICAgICAgICAgICAgIHN3YXAo
aSwgaik7CisgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAKKyAgICAgICAgaWYgKGVuZCA8IGJlZ2luKQorICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJCZWdpbiBhbmQgZW5kIGFyZSBtZXNzZWQgdXAiKTsKKyAgICAgICAgCisg
ICAgICAgIGxldCBsaW1pdCA9IGVuZCAtIGJlZ2luOworICAgICAgICBmb3IgKGxldCBpID0gbGlt
aXQ7IGktLSA+IDE7KQorICAgICAgICAgICAgYnViYmxlKGJlZ2luICsgaSwgYmVnaW4gKyBpIC0g
MSk7CisgICAgICAgIGlmICghY2hhbmdlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
CisgICAgICAgIC8vIEFmdGVyIG9uZSBydW4sIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBsaXN0
IGlzIGd1YXJhbnRlZWQgdG8gYmUgdGhlIHNtYWxsZXN0LgorICAgICAgICBiZWdpbisrOworICAg
ICAgICAKKyAgICAgICAgLy8gTm93IGdvIGluIHRoZSBvdGhlciBkaXJlY3Rpb24uIFRoaXMgZWxp
bWluYXRlcyBtb3N0IHNvcnRpbmcgcGF0aG9sb2dpZXMuCisgICAgICAgIGNoYW5nZWQgPSBmYWxz
ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChlbmQgPCBiZWdpbikKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmVnaW4gYW5kIGVuZCBhcmUgbWVzc2VkIHVwIik7CisgICAgICAgIAorICAg
ICAgICBsaW1pdCA9IGVuZCAtIGJlZ2luOworICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGxp
bWl0OyArK2kpCisgICAgICAgICAgICBidWJibGUoYmVnaW4gKyBpLCBiZWdpbiArIGkgLSAxKTsK
KyAgICAgICAgaWYgKCFjaGFuZ2VkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAg
ICAgICAgLy8gTm93IHRoZSBsYXN0IGVsZW1lbnQgaXMgZ3VhcmFudGVlZCB0byBiZSB0aGUgbGFy
Z2VzdC4KKyAgICAgICAgZW5kLS07CisgICAgfQorfQorCitsZXQgY3VycmVudFRpbWU7CitpZiAo
dGhpcy5wZXJmb3JtYW5jZSAmJiBwZXJmb3JtYW5jZS5ub3cpCisgICAgY3VycmVudFRpbWUgPSBm
dW5jdGlvbigpIHsgcmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpIH07CitlbHNlIGlmIChwcmVjaXNl
VGltZSkKKyAgICBjdXJyZW50VGltZSA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gcHJlY2lzZVRpbWUo
KSAqIDEwMDA7IH07CitlbHNlCisgICAgY3VycmVudFRpbWUgPSBmdW5jdGlvbigpIHsgcmV0dXJu
IDAgKyBuZXcgRGF0ZSgpOyB9OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSw1NiBAQAorMjAxNi0wNi0wNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBBaXI6OmFsbG9jYXRlU3RhY2soKSBpbiBF
UzYgdG8gc2VlIGhvdyBtdWNoIG9mIGEgYmFkIGlkZWEgdGhhdCBpcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MzE4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgU2FhbSBCYXJhdGkuCisgICAgICAgIAorICAgICAgICBNb3N0IG9mIHRoZXNlIGNoYW5n
ZXMgYXJlIHRvIHN1cHBvcnQgZHVtcEFzSlMoKS4gQnV0IEkgYWxzbyBmb3VuZCBzb21lIGR1cGxp
Y2F0ZSBhbmQgZGVhZAorICAgICAgICBjb2RlIHdoaWxlIHJld3JpdGluZyBpdCB0byBKUy4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYjMvYWlyL0FpckFsbG9jYXRlU3RhY2su
Y3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJBcmcuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
QXJnOjppc1NvbWVJbW0pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpBcmc6OmlzQWRkcik6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OkFyZzo6dG1wSW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpBcmc6OmlzVmFsaWRJbW1Gb3JtKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJnOjp3
aXRoT2Zmc2V0KTogRGVsZXRlZC4gVGhpcyB3YXMgZGVhZCBjb2RlLgorICAgICAgICAqIGIzL2Fp
ci9BaXJBcmdJbmxpbmVzLmg6IEl0IHR1cm5zIG91dCB0aGF0IEluc3QgaGFzIGEgRm9yRWFjaCB0
aGluZyB0aGF0IGR1cGxpY2F0ZWQgc29tZSBvZiB0aGUgbG9naWMgb2YgQXJnVGhpbmdIZWxwZXIs
IHNvIEkganVzdCBtYWRlIEFyZ1RoaW5nSGVscGVyIG1vcmUgcG93ZXJmdWwuCisgICAgICAgIChK
U0M6OkIzOjpBaXI6OkFyZ1RoaW5nSGVscGVyPEFyZz46OmZvckVhY2gpOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpBcmdUaGluZ0hlbHBlcjxSZWc+Ojppcyk6CisgICAgICAgIChKU0M6OkIzOjpB
aXI6OkFyZ1RoaW5nSGVscGVyPFJlZz46OmFzKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJn
VGhpbmdIZWxwZXI8UmVnPjo6Zm9yRWFjaEZhc3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpB
cmdUaGluZ0hlbHBlcjxSZWc+Ojpmb3JFYWNoKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6QXJn
Ojppcyk6CisgICAgICAgICogYjMvYWlyL0FpckR1bXBBc0pTLmNwcDogQWRkZWQuCisgICAgICAg
IChKU0M6OkIzOjpBaXI6OmR1bXBBc0pTKToKKyAgICAgICAgKiBiMy9haXIvQWlyRHVtcEFzSlMu
aDogQWRkZWQuCisgICAgICAgICogYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMuY3BwOgorICAg
ICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OnBy
ZXBhcmVGb3JHZW5lcmF0aW9uKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdElubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6QjM6OkFpcjo6SW5zdDo6Zm9yRWFjaCk6CisgICAgICAgIChKU0M6OkIz
OjpBaXI6Okluc3Q6OmV4dHJhQ2xvYmJlcmVkUmVncyk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6
OkZvckVhY2g8VG1wPjo6Zm9yRWFjaCk6IERlbGV0ZWQuIFRoaXMgd2FzIGRvaW5nIHdoYXQgQXJn
VGhpbmdIZWxwZXIgd291bGQgaGF2ZSBkb25lIGJ1dCBub3QgYXMgd2VsbC4KKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6Rm9yRWFjaDxBcmc+Ojpmb3JFYWNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6QjM6OkFpcjo6Rm9yRWFjaDxSZWc+Ojpmb3JFYWNoKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
My9haXIvQWlyTG9nUmVnaXN0ZXJQcmVzc3VyZS5jcHA6CisgICAgICAgICogYjMvYWlyL0FpclJl
cG9ydFVzZWRSZWdpc3RlcnMuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhp
bmcuY3BwOgorICAgICAgICAqIGIzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiOiBNYWtlIHRoaXMg
ZHVtcCBvcGNvZGUuanMsIHdoaWNoIGlzIGxpa2Ugd2hhdCBpdCBkdW1wcyBmb3IgQysrLgorICAg
ICAgICAqIGppdC9SZWcuY3BwOgorICAgICAgICAoSlNDOjpSZWc6OmRlYnVnTmFtZSk6CisgICAg
ICAgIChKU0M6OlJlZzo6ZHVtcCk6CisgICAgICAgICogaml0L1JlZy5oOgorICAgICAgICAoSlND
OjpSZWc6Omhhc2gpOgorICAgICAgICAqIGpzYy5jcHA6IEZpeCBqc2Mgc28gdGhhdCBpdCByZXBv
cnRzIHRoZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgb2YgcGFyc2VyIGVycm9ycy4KKyAgICAg
ICAgKGR1bXBFeGNlcHRpb24pOgorICAgICAgICAqIHBhcnNlci9QYXJzZXJFcnJvci5oOiBNYWtl
IGl0IGVhc2llciB0byBkZWJ1ZyB0aGlzIGNvZGUuCisgICAgICAgIChXVEY6OnByaW50SW50ZXJu
YWwpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE2LTA2LTA2ICBHdWlsbGF1
bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbanNjXVttaXBzXSBJ
bXBsZW1lbnQgYWJzRG91YmxlKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiArNzYsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGIzL2Fpci9BaXJDQ2FsbGluZ0NvbnZlbnRpb24uY3BwCiAgICAgYjMvYWly
L0FpckNvZGUuY3BwCiAgICAgYjMvYWlyL0FpckN1c3RvbS5jcHAKKyAgICBiMy9haXIvQWlyRHVt
cEFzSlMuY3BwCiAgICAgYjMvYWlyL0FpckVsaW1pbmF0ZURlYWRDb2RlLmNwcAogICAgIGIzL2Fp
ci9BaXJFbWl0U2h1ZmZsZS5jcHAKICAgICBiMy9haXIvQWlyRml4T2J2aW91c1NwaWxscy5jcHAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5Myw4ICsxOTkzLDI1IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHN0YXRpYyB2b2lkIGR1bXBFeGNlcHRp
b24oR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgZXhjZXB0aW9uKQogewogICAg
IHByaW50ZigiRXhjZXB0aW9uOiAlc1xuIiwgZXhjZXB0aW9uLnRvV1RGU3RyaW5nKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRXhlYygpKS51dGY4KCkuZGF0YSgpKTsKKworICAgIElkZW50aWZpZXIgbmFt
ZUlEID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwg
Im5hbWUiKTsKKyAgICBJZGVudGlmaWVyIGZpbGVOYW1lSUQgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCAic291cmNlVVJMIik7CisgICAgSWRlbnRp
ZmllciBsaW5lTnVtYmVySUQgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGdsb2JhbE9iamVjdC0+
Z2xvYmFsRXhlYygpLCAibGluZSIpOwogICAgIElkZW50aWZpZXIgc3RhY2tJRCA9IElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksICJzdGFjayIpOworICAg
IAorICAgIEpTVmFsdWUgbmFtZVZhbHVlID0gZXhjZXB0aW9uLmdldChnbG9iYWxPYmplY3QtPmds
b2JhbEV4ZWMoKSwgbmFtZUlEKTsKKyAgICBKU1ZhbHVlIGZpbGVOYW1lVmFsdWUgPSBleGNlcHRp
b24uZ2V0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBmaWxlTmFtZUlEKTsKKyAgICBKU1Zh
bHVlIGxpbmVOdW1iZXJWYWx1ZSA9IGV4Y2VwdGlvbi5nZXQoZ2xvYmFsT2JqZWN0LT5nbG9iYWxF
eGVjKCksIGxpbmVOdW1iZXJJRCk7CiAgICAgSlNWYWx1ZSBzdGFja1ZhbHVlID0gZXhjZXB0aW9u
LmdldChnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwgc3RhY2tJRCk7CisgICAgCisgICAgaWYg
KG5hbWVWYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSkgPT0gIlN5
bnRheEVycm9yIgorICAgICAgICAmJiAoIWZpbGVOYW1lVmFsdWUuaXNVbmRlZmluZWRPck51bGwo
KSB8fCAhbGluZU51bWJlclZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpKSB7CisgICAgICAgIHBy
aW50ZigKKyAgICAgICAgICAgICJhdCAlczolc1xuIiwKKyAgICAgICAgICAgIGZpbGVOYW1lVmFs
dWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCkpLnV0ZjgoKS5kYXRhKCks
CisgICAgICAgICAgICBsaW5lTnVtYmVyVmFsdWUudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0LT5n
bG9iYWxFeGVjKCkpLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKyAgICAKICAgICBpZiAoIXN0YWNr
VmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcHJpbnRmKCIlc1xuIiwgc3RhY2tW
YWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSkudXRmOCgpLmRhdGEo
KSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjAxNzE2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiArMTk4Myw4IEBACiAJCURDMTdF
ODFBMUM5QzkxRTkwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8q
IENDYWxsSGVscGVycy5jcHAgKi87IH07CiAJCURDMjE0MzA3MUNBMzJFNTUwMDBBODg2OSAvKiBJ
Q1N0YXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
QzIxNDMwNjFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5oICovOyB9OwogCQlEQzIxNDMwODFD
QTMyRTU4MDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5j
cHAgKi87IH07CisJCURDNDU0QjhDMUQwMEU4MjIwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QTFE
MDBFODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwICovOyB9OworCQlEQzQ1NEI4RDFEMDBF
ODI0MDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDNDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNK
Uy5oICovOyB9OwogCQlEQzYwNUI1RDFDRTI2RUEwMDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1
OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgKi87IH07CiAJCURDNjA1QjVF
MUNFMjZFQTIwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJv
ZmlsZXJFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCURDNjA1QjVGMUNFMjZFQTUwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1QjFDRTI2RTk4
MDA1OTM3MTggLyogUHJvZmlsZXJVSUQuY3BwICovOyB9OwpAQCAtNDE5Nyw2ICs0MTk5LDggQEAK
IAkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElD
U3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzQ1NEI4QTFEMDBFODFGMDA0QzE4QUYgLyogQWly
RHVtcEFzSlMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRHVt
cEFzSlMuY3BwOyBwYXRoID0gYjMvYWlyL0FpckR1bXBBc0pTLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFpckR1bXBBc0pTLmg7IHBhdGggPSBi
My9haXIvQWlyRHVtcEFzSlMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2MDVC
NTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gUHJvZmlsZXJFdmVudC5jcHA7IHBhdGggPSBwcm9maWxlci9Q
cm9maWxlckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2MDVCNUEx
Q0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gUHJvZmlsZXJFdmVudC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QjFDRTI2RTk4MDA1OTM3
MTggLyogUHJvZmlsZXJVSUQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gUHJvZmlsZXJVSUQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDgyMSw2ICs0ODI1LDggQEAKIAkJCQkwRkVDODU1
MTFCREFDREM3MDA4MEZGNzQgLyogQWlyQ29kZS5oICovLAogCQkJCTBGNjE4MzIyMUM0NUJGMDcw
MDcyNDUwQiAvKiBBaXJDdXN0b20uY3BwICovLAogCQkJCTBGMTBGMUEyMUM0MjBCRjAwMDFDMDdE
MiAvKiBBaXJDdXN0b20uaCAqLywKKwkJCQlEQzQ1NEI4QTFEMDBFODFGMDA0QzE4QUYgLyogQWly
RHVtcEFzSlMuY3BwICovLAorCQkJCURDNDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1w
QXNKUy5oICovLAogCQkJCTBGNDU3MDM2MUJFNDRDOTEwMDYyQTYyOSAvKiBBaXJFbGltaW5hdGVE
ZWFkQ29kZS5jcHAgKi8sCiAJCQkJMEY0NTcwMzcxQkU0NEM5MTAwNjJBNjI5IC8qIEFpckVsaW1p
bmF0ZURlYWRDb2RlLmggKi8sCiAJCQkJMEY2MTgzMjMxQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckVt
aXRTaHVmZmxlLmNwcCAqLywKQEAgLTcwMjIsNiArNzAyOCw3IEBACiAJCQkJMEZFQzg1MDYxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzQ2hlY2tTcGVjaWFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVD
ODUwODFCREFDREFDMDA4MEZGNzQgLyogQjNDaGVja1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkVDODUwQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb21tb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCURDNDU0QjhEMUQwMEU4MjQwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZFQzg1MEMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29tbXV0YXRpdml0eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MEUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3QzMlZh
bHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUxMDFCREFDREFDMDA4MEZGNzQgLyogQjND
b25zdDY0VmFsdWUuaCBpbiBIZWFkZXJzICovLApAQCAtOTEwNiw2ICs5MTEzLDcgQEAKIAkJCQkx
NDA1NjZENjEwN0VDMjcxMDA1REJDOEQgLyogSlNGdW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjRBMzhGOTFDOEUxM0RGMDAxOTAzMTggLyogU3VwZXJTYW1wbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTc5N0UwN0E5MUI4RkNGQjkwMDg0MDBCQSAvKiBKU0dsb2JhbExleGljYWxF
bnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzQ1NEI4QzFEMDBFODIyMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5RDIxMDdFQzM3
NjAwNDI3QTQ4IC8qIEpTR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1RkQw
MDg1MTg5QjFCN0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBNUMzQTFBNTE4QzA0OTAyMDBDOTU5M0EgLyogSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJBbGxvY2F0ZVN0YWNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3BwCShyZXZpc2lvbiAyMDE3
MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFsbG9jYXRlU3RhY2suY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQog
CisjaW5jbHVkZSAiQWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNs
dWRlICJBaXJJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCShyZXZpc2lvbiAyMDE3MTYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZy5oCSh3b3JraW5nIGNvcHkpCkBA
IC02ODgsNyArNjg4LDE1IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNTb21lSW1tKCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiBpc0ltbSgpIHx8IGlzQmlnSW1tKCkgfHwgaXNCaXRJbW0o
KSB8fCBpc0JpdEltbTY0KCk7CisgICAgICAgIHN3aXRjaCAoa2luZCgpKSB7CisgICAgICAgIGNh
c2UgSW1tOgorICAgICAgICBjYXNlIEJpZ0ltbToKKyAgICAgICAgY2FzZSBCaXRJbW06CisgICAg
ICAgIGNhc2UgQml0SW1tNjQ6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogICAgIH0KIAogICAg
IGJvb2wgaXNBZGRyKCkgY29uc3QKQEAgLTk5MywzMyArMTAwMSw2IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIHRtcCgpLnRtcEluZGV4KCk7CiAgICAgfQogCi0gICAgLy8gSWYgJ3RoaXMnIGlz
IGFuIGFkZHJlc3MgQXJnLCB0aGVuIGl0IHJldHVybnMgYSBuZXcgYWRkcmVzcyBBcmcgd2l0aCB0
aGUgYWRkaXRpb25hbCBvZmZzZXQgYXBwbGllZC4KLSAgICAvLyBOb3RlIHRoYXQgdGhpcyBkb2Vz
IG5vdCBjb25zaWRlciB3aGV0aGVyIGRvaW5nIHNvIHByb2R1Y2VzIGEgdmFsaWQgQXJnIG9yIG5v
dC4gVW5sZXNzIHlvdSByZWFsbHkKLSAgICAvLyBrbm93IHdoYXQgeW91J3JlIGRvaW5nLCB5b3Ug
c2hvdWxkIGNhbGwgQXJnOjppc1ZhbGlkRm9ybSgpIG9uIHRoZSByZXN1bHQuIFNvbWUgY29kZSB3
b24ndCBkbyB0aGF0LAotICAgIC8vIGxpa2UgaWYgeW91J3JlIGFwcGx5aW5nIGEgdmVyeSBzbWFs
bCBvZmZzZXQgdG8gYSBBcmc6OnN0YWNrKCkgdGhhdCB5b3Uga25vdyBoYXMgbm8gb2Zmc2V0IHRv
IGJlZ2luCi0gICAgLy8gd2l0aC4gSXQncyBzYWZlIHRvIGFzc3VtZSB0aGF0IGFsbCB0YXJnZXRz
IGFsbG93IHNtYWxsIG9mZnNldHMgKGxpa2UsIDAuLjcpIGZvciBBZGRyLCBTdGFjaywgYW5kCi0g
ICAgLy8gQ2FsbEFyZy4KLSAgICBBcmcgd2l0aE9mZnNldChpbnQ2NF90IGFkZGl0aW9uYWxPZmZz
ZXQpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIWhhc09mZnNldCgpKQotICAgICAgICAgICAg
cmV0dXJuIEFyZygpOwotICAgICAgICBpZiAoc3VtT3ZlcmZsb3dzPGludDY0X3Q+KG9mZnNldCgp
LCBhZGRpdGlvbmFsT2Zmc2V0KSkKLSAgICAgICAgICAgIHJldHVybiBBcmcoKTsKLSAgICAgICAg
c3dpdGNoIChraW5kKCkpIHsKLSAgICAgICAgY2FzZSBBZGRyOgotICAgICAgICAgICAgcmV0dXJu
IGFkZHIoYmFzZSgpLCBvZmZzZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAgICBjYXNl
IFN0YWNrOgotICAgICAgICAgICAgcmV0dXJuIHN0YWNrKHN0YWNrU2xvdCgpLCBvZmZzZXQoKSAr
IGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAgICBjYXNlIENhbGxBcmc6Ci0gICAgICAgICAgICBy
ZXR1cm4gY2FsbEFyZyhvZmZzZXQoKSArIGFkZGl0aW9uYWxPZmZzZXQpOwotICAgICAgICBjYXNl
IEluZGV4OgotICAgICAgICAgICAgcmV0dXJuIGluZGV4KGJhc2UoKSwgaW5kZXgoKSwgc2NhbGUo
KSwgb2Zmc2V0KCkgKyBhZGRpdGlvbmFsT2Zmc2V0KTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm4g
QXJnKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkSW1tRm9y
bShpbnQ2NF90IHZhbHVlKQogICAgIHsKICAgICAgICAgaWYgKGlzWDg2KCkpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZ0lubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckFyZ0lubGluZXMuaAkocmV2aXNpb24gMjAx
NzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJBcmdJbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTg0LDYgKzg0LDg4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ1RoaW5n
SGVscGVyPEFyZz4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ1RoaW5nSGVs
cGVyPFN0YWNrU2xvdCo+IHsKKyAgICBzdGF0aWMgYm9vbCBpcyhjb25zdCBBcmcmIGFyZykKKyAg
ICB7CisgICAgICAgIHJldHVybiBhcmcuaXNTdGFjaygpOworICAgIH0KKyAgICAKKyAgICBzdGF0
aWMgU3RhY2tTbG90KiBhcyhjb25zdCBBcmcmIGFyZykKKyAgICB7CisgICAgICAgIHJldHVybiBh
cmcuc3RhY2tTbG90KCk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0
b3I+CisgICAgc3RhdGljIHZvaWQgZm9yRWFjaEZhc3QoQXJnJiBhcmcsIGNvbnN0IEZ1bmN0b3Im
IGZ1bmN0b3IpCisgICAgeworICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKCkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIAorICAgICAgICBTdGFja1Nsb3QqIHN0YWNrU2xvdCA9IGFyZy5z
dGFja1Nsb3QoKTsKKyAgICAgICAgZnVuY3RvcihzdGFja1Nsb3QpOworICAgICAgICBhcmcgPSBB
cmc6OnN0YWNrKHN0YWNrU2xvdCwgYXJnLm9mZnNldCgpKTsKKyAgICB9CisgICAgCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRnVuY3Rvcj4KKyAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEFyZyYgYXJn
LCBBcmc6OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgsIGNvbnN0
IEZ1bmN0b3ImIGZ1bmN0b3IpCisgICAgeworICAgICAgICBpZiAoIWFyZy5pc1N0YWNrKCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBTdGFja1Nsb3QqIHN0YWNrU2xv
dCA9IGFyZy5zdGFja1Nsb3QoKTsKKyAgICAgICAgCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlz
IHdheSB0b28gb3B0aW1pc3RpYyBhYm91dCB0aGUgbWVhbmluZyBvZiAiRGVmIi4gSXQgZ2V0cyBs
dWNreSBmb3IKKyAgICAgICAgLy8gbm93IGJlY2F1c2Ugb3VyIG9ubHkgdXNlIG9mICJBbm9ueW1v
dXMiIHN0YWNrIHNsb3RzIGhhcHBlbnMgdG8gd2FudCB0aGUgb3B0aW1pc3RpYworICAgICAgICAv
LyBzZW1hbnRpY3MuIFdlIGNvdWxkIGZpeCB0aGlzIGJ5IGp1c3QgY2hhbmdpbmcgdGhlIGNvbW1l
bnRzIHRoYXQgZGVzY3JpYmUgdGhlCisgICAgICAgIC8vIHNlbWFudGljcyBvZiAiQW5vbnltb3Vz
Ii4KKyAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MTEyOAorICAgICAgICAKKyAgICAgICAgZnVuY3RvcihzdGFja1Nsb3QsIHJvbGUsIHR5cGUsIHdp
ZHRoKTsKKyAgICAgICAgYXJnID0gQXJnOjpzdGFjayhzdGFja1Nsb3QsIGFyZy5vZmZzZXQoKSk7
CisgICAgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJnVGhpbmdIZWxwZXI8UmVnPiB7Cisg
ICAgc3RhdGljIGJvb2wgaXMoY29uc3QgQXJnJiBhcmcpCisgICAgeworICAgICAgICByZXR1cm4g
YXJnLmlzUmVnKCk7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBSZWcgYXMoY29uc3QgQXJnJiBh
cmcpCisgICAgeworICAgICAgICByZXR1cm4gYXJnLnJlZygpOworICAgIH0KKyAgICAKKyAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgorICAgIHN0YXRpYyB2b2lkIGZvckVhY2hGYXN0KEFy
ZyYgYXJnLCBjb25zdCBGdW5jdG9yJiBmdW5jdG9yKQorICAgIHsKKyAgICAgICAgYXJnLmZvckVh
Y2hUbXBGYXN0KAorICAgICAgICAgICAgWyZdIChUbXAmIHRtcCkgeworICAgICAgICAgICAgICAg
IGlmICghdG1wLmlzUmVnKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBSZWcgcmVnID0gdG1wLnJlZygpOworICAgICAgICAg
ICAgICAgIGZ1bmN0b3IocmVnKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBUbXAocmVnKTsKKyAg
ICAgICAgICAgIH0pOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9y
PgorICAgIHN0YXRpYyB2b2lkIGZvckVhY2goQXJnJiBhcmcsIEFyZzo6Um9sZSBhcmdSb2xlLCBB
cmc6OlR5cGUgYXJnVHlwZSwgQXJnOjpXaWR0aCBhcmdXaWR0aCwgY29uc3QgRnVuY3RvciYgZnVu
Y3RvcikKKyAgICB7CisgICAgICAgIGFyZy5mb3JFYWNoVG1wKAorICAgICAgICAgICAgYXJnUm9s
ZSwgYXJnVHlwZSwgYXJnV2lkdGgsCisgICAgICAgICAgICBbJl0gKFRtcCYgdG1wLCBBcmc6OlJv
bGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoIXRtcC5pc1JlZygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUmVnIHJlZyA9IHRtcC5yZWcoKTsKKyAgICAg
ICAgICAgICAgICBmdW5jdG9yKHJlZywgcm9sZSwgdHlwZSwgd2lkdGgpOworICAgICAgICAgICAg
ICAgIHRtcCA9IFRtcChyZWcpOworICAgICAgICAgICAgfSk7CisgICAgfQorfTsKKwogdGVtcGxh
dGU8dHlwZW5hbWUgVGhpbmc+CiBib29sIEFyZzo6aXMoKSBjb25zdAogewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckR1bXBBc0pTLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWlyRHVtcEFzSlMu
aCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJBaXJDb2RlLmgiCisjaW5jbHVk
ZSAiQWlySW5zdElubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5h
bWVzcGFjZSBBaXIgeworCituYW1lc3BhY2UgeworCitDU3RyaW5nIHZhck5hbWVGb3JCbG9ja0F0
SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIHRvQ1N0cmluZygiYmIiLCBpbmRl
eCk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShCYXNpY0Jsb2NrKiBibG9jaykKK3sKKyAgICByZXR1
cm4gdmFyTmFtZUZvckJsb2NrQXRJbmRleChibG9jay0+aW5kZXgoKSk7Cit9CisKK0NTdHJpbmcg
dmFyTmFtZUZvclN0YWNrU2xvdEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJu
IHRvQ1N0cmluZygic2xvdCIsIGluZGV4KTsKK30KKworQ1N0cmluZyB2YXJOYW1lKFN0YWNrU2xv
dCogc2xvdCkKK3sKKyAgICByZXR1cm4gdmFyTmFtZUZvclN0YWNrU2xvdEF0SW5kZXgoc2xvdC0+
aW5kZXgoKSk7Cit9CisKK0NTdHJpbmcgdmFyTmFtZShSZWcgcmVnKQoreworICAgIHJldHVybiB0
b0NTdHJpbmcoIlJlZy4iLCByZWcuZGVidWdOYW1lKCkpOworfQorCitDU3RyaW5nIHZhck5hbWVG
b3JUbXBXaXRoVHlwZUFuZEluZGV4KEFyZzo6VHlwZSB0eXBlLCB1bnNpZ25lZCBpbmRleCkKK3sK
KyAgICByZXR1cm4gdG9DU3RyaW5nKHR5cGUgPT0gQXJnOjpGUCA/ICJmIiA6ICIiLCAidG1wIiwg
aW5kZXgpOworfQorCitDU3RyaW5nIHZhck5hbWUoVG1wIHRtcCkKK3sKKyAgICBpZiAodG1wLmlz
UmVnKCkpCisgICAgICAgIHJldHVybiB2YXJOYW1lKHRtcC5yZWcoKSk7CisgICAgcmV0dXJuIHZh
ck5hbWVGb3JUbXBXaXRoVHlwZUFuZEluZGV4KEFyZyh0bXApLnR5cGUoKSwgdG1wLnRtcEluZGV4
KCkpOworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKwordm9pZCBkdW1wQXNKUyhDb2Rl
JiBjb2RlLCBQcmludFN0cmVhbSYgb3V0KQoreworICAgIG91dC5wcmludGxuKCJsZXQgY29kZSA9
IG5ldyBDb2RlKCk7Iik7CisgICAgCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvZGUu
c2l6ZSgpOyArK2kpCisgICAgICAgIG91dC5wcmludGxuKCJsZXQgIiwgdmFyTmFtZUZvckJsb2Nr
QXRJbmRleChpKSwgIiA9IGNvZGUuYWRkQmxvY2soKTsiKTsKKyAgICAKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgY29kZS5zdGFja1Nsb3RzKCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
U3RhY2tTbG90KiBzbG90ID0gY29kZS5zdGFja1Nsb3RzKClbaV07CisgICAgICAgIGlmIChzbG90
KQorICAgICAgICAgICAgb3V0LnByaW50bG4oImxldCAiLCB2YXJOYW1lKHNsb3QpLCAiID0gY29k
ZS5hZGRTdGFja1Nsb3QoIiwgc2xvdC0+Ynl0ZVNpemUoKSwgIiwgIiwgc2xvdC0+a2luZCgpLCAi
KTsiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50bG4oImNvZGUuYWRkU3Rh
Y2tTbG90KDEsIFNwaWxsKTsiKTsKKyAgICB9CisgICAgCisgICAgQXJnOjpmb3JFYWNoVHlwZSgK
KyAgICAgICAgWyZdIChBcmc6OlR5cGUgdHlwZSkgeworICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gY29kZS5udW1UbXBzKHR5cGUpOyBpLS07KSB7CisgICAgICAgICAgICAgICAgb3V0LnBy
aW50bG4oCisgICAgICAgICAgICAgICAgICAgICJsZXQgIiwgdmFyTmFtZUZvclRtcFdpdGhUeXBl
QW5kSW5kZXgodHlwZSwgaSksICIgPSBjb2RlLm5ld1RtcCgiLCB0eXBlLCAiKTsiKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgCisgICAgb3V0LnByaW50bG4oImxldCBpbnN0OyIp
OworICAgIG91dC5wcmludGxuKCJsZXQgYXJnOyIpOworICAgIAorICAgIGZvciAoQmFzaWNCbG9j
ayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGZvciAoRnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3Nv
ciA6IGJsb2NrLT5zdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIG91dC5wcmludGxuKAorICAg
ICAgICAgICAgICAgIHZhck5hbWUoYmxvY2spLCAiLnN1Y2Nlc3NvcnMucHVzaChuZXcgRnJlcXVl
bnRlZEJsb2NrKCIsCisgICAgICAgICAgICAgICAgdmFyTmFtZShzdWNjZXNzb3IuYmxvY2soKSks
ICIsICIsIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSwgIikpOyIpOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHByZWRlY2Vzc29yIDogYmxvY2stPnByZWRlY2Vz
c29ycygpKQorICAgICAgICAgICAgb3V0LnByaW50bG4odmFyTmFtZShibG9jayksICIucHJlZGVj
ZXNzb3JzLnB1c2goIiwgdmFyTmFtZShwcmVkZWNlc3NvciksICIpOyIpOworICAgICAgICAKKyAg
ICAgICAgZm9yIChJbnN0JiBpbnN0IDogKmJsb2NrKSB7CisgICAgICAgICAgICBvdXQucHJpbnRs
bigiaW5zdCA9IG5ldyBJbnN0KCIsIGluc3Qub3Bjb2RlLCAiKTsiKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKAorICAgICAgICAgICAgICAgIFsmXSAoQXJnJiBh
cmcsIEFyZzo6Um9sZSwgQXJnOjpUeXBlLCBBcmc6OldpZHRoKSB7CisgICAgICAgICAgICAgICAg
ICAgIHN3aXRjaCAoYXJnLmtpbmQoKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6
SW52YWxpZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6VG1wOgorICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVUbXAoIiwgdmFyTmFtZShh
cmcudG1wKCkpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpJbW06Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZUltbSgi
LCBhcmcudmFsdWUoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6Qmln
SW1tOgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVh
dGVCaWdJbW0oIiwgYXJnLnZhbHVlKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBBcmc6OkJpdEltbToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcg
PSBBcmcuY3JlYXRlQml0SW1tKCIsIGFyZy52YWx1ZSgpLCAiKTsiKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQXJnOjpCaXRJbW02NDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5w
cmludGxuKCJhcmcgPSBBcmcuY3JlYXRlQml0SW1tNjQoIiwgYXJnLnZhbHVlKCksICIpOyIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkFkZHI6CisgICAgICAgICAgICAgICAgICAg
ICAgICBvdXQucHJpbnRsbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnID0gQXJn
LmNyZWF0ZUFkZHIoIiwgdmFyTmFtZShhcmcuYmFzZSgpKSwgIiwgIiwgYXJnLm9mZnNldCgpLCAi
KTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJnOjpTdGFjazoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh
cmcgPSBBcmcuY3JlYXRlU3RhY2soIiwgdmFyTmFtZShhcmcuc3RhY2tTbG90KCkpLCAiLCAiLCBh
cmcub2Zmc2V0KCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkNhbGxB
cmc6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0
ZUNhbGxBcmcoIiwgYXJnLm9mZnNldCgpLCAiKTsiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGNh
c2UgQXJnOjpJbmRleDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJhcmcgPSBBcmcuY3JlYXRlSW5kZXgoIiwgdmFyTmFt
ZShhcmcuYmFzZSgpKSwgIiwgIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJOYW1l
KGFyZy5pbmRleCgpKSwgIiwgIiwgYXJnLnNjYWxlKCksICIsICIsIGFyZy5vZmZzZXQoKSwgIik7
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICBjYXNlIEFyZzo6UmVsQ29uZDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKCJhcmcgPSBBcmcuY3JlYXRlUmVsQ29uZCgiLCBhcmcu
YXNSZWxhdGlvbmFsQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBBcmc6OlJlc0NvbmQ6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiYXJn
ID0gQXJnLmNyZWF0ZVJlc0NvbmQoIiwgYXJnLmFzUmVzdWx0Q29uZGl0aW9uKCksICIpOyIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OkRvdWJsZUNvbmQ6CisgICAgICAgICAgICAg
ICAgICAgICAgICBvdXQucHJpbnRsbigiYXJnID0gQXJnLmNyZWF0ZURvdWJsZUNvbmQoIiwgYXJn
LmFzRG91YmxlQ29uZGl0aW9uKCksICIpOyIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBB
cmc6OlNwZWNpYWw6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBKUy1BaXIgZG9lc24ndCBo
YXZlIFNwZWNpYWxzLgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBBcmc6OldpZHRoQXJnOgor
ICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImFyZyA9IEFyZy5jcmVhdGVXaWR0
aEFyZygiLCBhcmcud2lkdGgoKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuYXJncy5wdXNoKGFyZyk7Iik7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChpbnN0Lm9wY29kZSA9
PSBQYXRjaCkgeworICAgICAgICAgICAgICAgIGlmIChpbnN0Lmhhc05vbkFyZ0VmZmVjdHMoKSkK
KyAgICAgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QucGF0Y2hIYXNOb25BcmdFZmZl
Y3RzID0gdHJ1ZTsiKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBvdXQucHJp
bnRsbigiaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncyA9IG5ldyBTZXQoKTsiKTsKKyAgICAg
ICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MgPSBuZXcgU2V0
KCk7Iik7CisgICAgICAgICAgICAgICAgaW5zdC5leHRyYUVhcmx5Q2xvYmJlcmVkUmVncygpLmZv
ckVhY2goCisgICAgICAgICAgICAgICAgICAgIFsmXSAoUmVnIHJlZykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgb3V0LnByaW50bG4oImluc3QuZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MuYWRk
KCIsIHZhck5hbWUocmVnKSwgIik7Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIGluc3QuZXh0cmFDbG9iYmVyZWRSZWdzKCkuZm9yRWFjaCgKKyAgICAgICAgICAg
ICAgICAgICAgWyZdIChSZWcgcmVnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJp
bnRsbigiaW5zdC5leHRyYUNsb2JiZXJlZFJlZ3MuYWRkKCIsIHZhck5hbWUocmVnKSwgIik7Iik7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIG91dC5wcmludGxuKCJpbnN0LnBhdGNoQXJnRGF0YSA9IFtdOyIpOworICAgICAgICAgICAg
ICAgIGluc3QuZm9yRWFjaEFyZygKKyAgICAgICAgICAgICAgICAgICAgWyZdIChBcmcmLCBBcmc6
OlJvbGUgcm9sZSwgQXJnOjpUeXBlIHR5cGUsIEFyZzo6V2lkdGggd2lkdGgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG91dC5wcmludGxuKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJpbnN0LnBhdGNoQXJnRGF0YS5wdXNoKHtyb2xlOiBBcmcuIiwgcm9sZSwgIiwgdHlwZTogIiwg
dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCB3aWR0aDogIiwgd2lkdGgsICJ9
KTsiKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmIChpbnN0Lm9wY29kZSA9PSBDQ2FsbCB8fCBpbnN0Lm9wY29kZSA9
PSBDb2xkQ0NhbGwpIHsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRsbigiaW5zdC5jQ2FsbFR5
cGUgPSAiLCBpbnN0Lm9yaWdpbi0+dHlwZSgpKTsKKyAgICAgICAgICAgICAgICBvdXQucHJpbnRs
bigiaW5zdC5jQ2FsbEFyZ1R5cGVzID0gW107Iik7CisgICAgICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMTsgaSA8IGluc3Qub3JpZ2luLT5udW1DaGlsZHJlbigpOyArK2kpCisgICAgICAg
ICAgICAgICAgICAgIG91dC5wcmludGxuKCJpbnN0LmNDYWxsQXJnVHlwZXMucHVzaCgiLCBpbnN0
Lm9yaWdpbi0+Y2hpbGQoaSktPnR5cGUoKSwgIik7Iik7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIG91dC5wcmludGxuKHZhck5hbWUoYmxvY2spLCAiLmFwcGVuZChp
bnN0KTsiKTsKKyAgICAgICAgfQorICAgIH0KK30KKworfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjM6OkFpcgorCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJEdW1wQXNKUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyRHVtcEFzSlMuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgQWlyRHVtcEFzSlNfaAorI2RlZmluZSBBaXJEdW1wQXNKU19oCisKKyNpZiBFTkFC
TEUoQjNfSklUKQorCisjaW5jbHVkZSA8d3RmL1ByaW50U3RyZWFtLmg+CisKK25hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKKworY2xhc3MgQ29kZTsKKworLy8g
VGhpcyBpcyBhIGpva2UuIFZhcmlvdXMgb3BlcmF0aW9ucyBvbiBBaXIgYXJlIGludGVyZXN0aW5n
IGZyb20gYSBiZW5jaG1hcmtpbmcgc3RhbmRwb2ludC4gV2UgY2FuCisvLyB3cml0ZSBzb21lIEFp
ciBwaGFzZXMgaW4gSlMgYW5kIHRoZW4gdXNlIHRoYXQgdG8gYmVuY2htYXJrIEpTLgordm9pZCBk
dW1wQXNKUyhDb2RlJiwgUHJpbnRTdHJlYW0mKTsKKworfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjM6OkFpcgorCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEFpckR1bXBB
c0pTX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJGaXhPYnZpb3Vz
U3BpbGxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckZpeE9idmlvdXNTcGlsbHMuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckZpeE9idmlvdXNTcGlsbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWlyQXJn
SW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5l
cy5oIgogI2luY2x1ZGUgIkFpclBoYXNlU2NvcGUuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQWlyQWxsb2NhdGVTdGFjay5oIgogI2luY2x1
ZGUgIkFpckNvZGUuaCIKKyNpbmNsdWRlICJBaXJEdW1wQXNKUy5oIgogI2luY2x1ZGUgIkFpckVs
aW1pbmF0ZURlYWRDb2RlLmgiCiAjaW5jbHVkZSAiQWlyRml4T2J2aW91c1NwaWxscy5oIgogI2lu
Y2x1ZGUgIkFpckZpeFBhcnRpYWxSZWdpc3RlclN0YWxscy5oIgpAQCAtMTAyLDExICsxMDMsMjEg
QEAgdm9pZCBwcmVwYXJlRm9yR2VuZXJhdGlvbihDb2RlJiBjb2RlKQogICAgIC8vIFByaW9yIHRv
IHRoaXMgcG9pbnQgdGhlIHByb2xvZ3VlIGFuZCBlcGlsb2d1ZSBpcyBpbXBsaWNpdC4gVGhpcyBt
YWtlcyBpdCBleHBsaWNpdC4gSXQgYWxzbwogICAgIC8vIGRvZXMgdGhpbmdzIGxpa2UgaWRlbnRp
Znkgd2hpY2ggY2FsbGVlLXNhdmVzIHdlJ3JlIHVzaW5nIGFuZCBzYXZlcyB0aGVtLgogICAgIGhh
bmRsZUNhbGxlZVNhdmVzKGNvZGUpOworICAgIAorICAgIGlmIChPcHRpb25zOjpkdW1wQWlyQXNK
U0JlZm9yZUFsbG9jYXRlU3RhY2soKSkgeworICAgICAgICBkYXRhTG9nKCJEdW1waW5nIEFpciBh
cyBKUyBiZWZvcmUgYWxsb2NhdGVTdGFjazpcbiIpOworICAgICAgICBkdW1wQXNKUyhjb2RlLCBX
VEY6OmRhdGFGaWxlKCkpOworICAgIH0KIAogICAgIC8vIFRoaXMgdHVybnMgYWxsIFN0YWNrIGFu
ZCBDYWxsQXJnIEFyZ3MgaW50byBBZGRyIGFyZ3MgdGhhdCB1c2UgdGhlIGZyYW1lIHBvaW50ZXIu
IEl0IGRvZXMKICAgICAvLyB0aGlzIGJ5IGZpcnN0LWZpdCBhbGxvY2F0aW5nIHN0YWNrIHNsb3Rz
LiBJdCBzaG91bGQgYmUgcHJldHR5IGRhcm4gY2xvc2UgdG8gb3B0aW1hbCwgc28gd2UKICAgICAv
LyBzaG91bGRuJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCB0aGlzIHZlcnkgbXVjaC4KICAgICBhbGxv
Y2F0ZVN0YWNrKGNvZGUpOworICAgIAorICAgIGlmIChPcHRpb25zOjpkdW1wQWlyQWZ0ZXJBbGxv
Y2F0ZVN0YWNrKCkpIHsKKyAgICAgICAgZGF0YUxvZygiRHVtcGluZyBBaXIgYWZ0ZXIgYWxsb2Nh
dGVTdGFjazpcbiIpOworICAgICAgICBkYXRhTG9nKGNvZGUpOworICAgIH0KIAogICAgIC8vIElm
IHdlIGNvYWxlc2NlZCBtb3ZlcyB0aGVuIHdlIGNhbiB1bmJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBU
aGlzIGlzIHRoZSBtYWluIHJlYXNvbiBmb3IgdGhpcwogICAgIC8vIHBoYXNlLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdElubGluZXMuaAkocmV2aXNpb24g
MjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0SW5saW5lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2NSArMzYsMTMgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgRm9yRWFjaDsKLXRlbXBsYXRlPD4gc3RydWN0IEZvckVhY2g8VG1wPiB7Ci0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgRnVuY3Rvcj4KLSAgICBzdGF0aWMgdm9pZCBmb3JFYWNoKEluc3QmIGluc3Qs
IGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAgICAgICBpbnN0LmZvckVhY2hUbXAo
ZnVuY3Rvcik7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxBcmc+IHsK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAgIHN0YXRpYyB2b2lkIGZvckVhY2go
SW5zdCYgaW5zdCwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKLSAgICB7Ci0gICAgICAgIGluc3Qu
Zm9yRWFjaEFyZyhmdW5jdG9yKTsKLSAgICB9Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBGb3JF
YWNoPFN0YWNrU2xvdCo+IHsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAgIHN0
YXRpYyB2b2lkIGZvckVhY2goSW5zdCYgaW5zdCwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKLSAg
ICB7Ci0gICAgICAgIGluc3QuZm9yRWFjaEFyZygKLSAgICAgICAgICAgIFsmXSAoQXJnJiBhcmcs
IEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJnOjpXaWR0aCB3aWR0aCkgewotICAg
ICAgICAgICAgICAgIGlmICghYXJnLmlzU3RhY2soKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgICAgIFN0YWNrU2xvdCogc3RhY2tTbG90ID0gYXJnLnN0YWNrU2xv
dCgpOwotCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgd2F5IHRvbyBvcHRpbWlz
dGljIGFib3V0IHRoZSBtZWFuaW5nIG9mICJEZWYiLiBJdCBnZXRzIGx1Y2t5IGZvcgotICAgICAg
ICAgICAgICAgIC8vIG5vdyBiZWNhdXNlIG91ciBvbmx5IHVzZSBvZiAiQW5vbnltb3VzIiBzdGFj
ayBzbG90cyBoYXBwZW5zIHRvIHdhbnQgdGhlIG9wdGltaXN0aWMKLSAgICAgICAgICAgICAgICAv
LyBzZW1hbnRpY3MuIFdlIGNvdWxkIGZpeCB0aGlzIGJ5IGp1c3QgY2hhbmdpbmcgdGhlIGNvbW1l
bnRzIHRoYXQgZGVzY3JpYmUgdGhlCi0gICAgICAgICAgICAgICAgLy8gc2VtYW50aWNzIG9mICJB
bm9ueW1vdXMiLgotICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTExMjgKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBm
dW5jdG9yKHN0YWNrU2xvdCwgcm9sZSwgdHlwZSwgd2lkdGgpOwotICAgICAgICAgICAgICAgIGFy
ZyA9IEFyZzo6c3RhY2soc3RhY2tTbG90LCBhcmcub2Zmc2V0KCkpOwotICAgICAgICAgICAgfSk7
Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRm9yRWFjaDxSZWc+IHsKLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdG9yPgotICAgIHN0YXRpYyB2b2lkIGZvckVhY2goSW5zdCYgaW5z
dCwgY29uc3QgRnVuY3RvciYgZnVuY3RvcikKLSAgICB7Ci0gICAgICAgIGluc3QuZm9yRWFjaFRt
cCgKLSAgICAgICAgICAgIFsmXSAoVG1wJiB0bXAsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUg
dHlwZSwgQXJnOjpXaWR0aCB3aWR0aCkgewotICAgICAgICAgICAgICAgIGlmICghdG1wLmlzUmVn
KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIFJlZyBy
ZWcgPSB0bXAucmVnKCk7Ci0gICAgICAgICAgICAgICAgZnVuY3RvcihyZWcsIHJvbGUsIHR5cGUs
IHdpZHRoKTsKLSAgICAgICAgICAgICAgICB0bXAgPSBUbXAocmVnKTsKLSAgICAgICAgICAgIH0p
OwotICAgIH0KLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFRoaW5nLCB0eXBlbmFtZSBGdW5jdG9y
Pgogdm9pZCBJbnN0Ojpmb3JFYWNoKGNvbnN0IEZ1bmN0b3ImIGZ1bmN0b3IpCiB7Ci0gICAgRm9y
RWFjaDxUaGluZz46OmZvckVhY2goKnRoaXMsIGZ1bmN0b3IpOworICAgIGZvckVhY2hBcmcoCisg
ICAgICAgIFsmXSAoQXJnJiBhcmcsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUgdHlwZSwgQXJn
OjpXaWR0aCB3aWR0aCkgeworICAgICAgICAgICAgYXJnLmZvckVhY2g8VGhpbmc+KHJvbGUsIHR5
cGUsIHdpZHRoLCBmdW5jdG9yKTsKKyAgICAgICAgfSk7CiB9CiAKIGlubGluZSBjb25zdCBSZWdp
c3RlclNldCYgSW5zdDo6ZXh0cmFDbG9iYmVyZWRSZWdzKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyTG9nUmVnaXN0ZXJQcmVzc3VyZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb2dSZWdpc3RlclByZXNzdXJlLmNwcAko
cmV2aXNpb24gMjAxNzE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb2dS
ZWdpc3RlclByZXNzdXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckFyZ0lubGluZXMuaCIKICNpbmNsdWRl
ICJBaXJDb2RlLmgiCiAjaW5jbHVkZSAiQWlySW5zdElubGluZXMuaCIKICNpbmNsdWRlICJBaXJM
aXZlbmVzcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb3dlckFm
dGVyUmVnQWxsb2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyTG93ZXJBZnRlclJlZ0FsbG9jLmNwcAkocmV2aXNpb24gMjAxNzE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJMb3dlckFmdGVyUmVnQWxsb2MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVk
ZSAiQWlyQXJnSW5saW5lcy5oIgogI2luY2x1ZGUgIkFpckNDYWxsaW5nQ29udmVudGlvbi5oIgog
I2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJFbWl0U2h1ZmZsZS5oIgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJSZXBvcnRVc2VkUmVnaXN0ZXJzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclJlcG9ydFVzZWRS
ZWdpc3RlcnMuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpclJlcG9ydFVzZWRSZWdpc3RlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWlyQXJnSW5saW5l
cy5oIgogI2luY2x1ZGUgIkFpckNvZGUuaCIKICNpbmNsdWRlICJBaXJJbnN0SW5saW5lcy5oIgog
I2luY2x1ZGUgIkFpckxpdmVuZXNzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpclNwaWxsRXZlcnl0aGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJTcGlsbEV2ZXJ5dGhpbmcuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwaWxsRXZlcnl0aGluZy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNp
bmNsdWRlICJBaXJBcmdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQWlyQ29kZS5oIgogI2luY2x1ZGUg
IkFpckluc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkFpckluc3RJbmxpbmVzLmgiCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCShy
ZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9n
ZW5lcmF0b3IucmIJKHdvcmtpbmcgY29weSkKQEAgLTEwOTAsMyArMTA5MCw5NiBAQCB3cml0ZUgo
Ik9wY29kZUdlbmVyYXRlZCIpIHsKICAgICBvdXRwLnB1dHMgIn0gfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkIzOjpBaXIiCiB9CiAKKyMgVGhpcyBpcyBhIGhhY2sgZm9yIEpTQWlyLiBJdCdzIGEgam9r
ZS4KK0ZpbGUub3BlbigiSlNBaXJfb3Bjb2RlLmpzIiwgInciKSB7CisgICAgfCBvdXRwIHwKKyAg
ICBvdXRwLnB1dHMgIlwidXNlIHN0cmljdFwiOyIKKyAgICBvdXRwLnB1dHMgIi8vIEdlbmVyYXRl
ZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiIGZyb20gI3skZmlsZU5hbWV9IC0tIGRvIG5vdCBlZGl0
ISIKKyAgICAKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwK
KyAgICAgICAgb3V0cC5wdXRzICJjb25zdCAje29wY29kZS5uYW1lfSA9IFN5bWJvbCgje29wY29k
ZS5uYW1lLmluc3BlY3R9KTsiCisgICAgfQorICAgIAorICAgIG91dHAucHV0cyAiZnVuY3Rpb24g
SW5zdF9mb3JFYWNoQXJnKGluc3QsIGZ1bmMpIgorICAgIG91dHAucHV0cyAieyIKKyAgICBvdXRw
LnB1dHMgImxldCByZXBsYWNlbWVudDsiCisgICAgb3V0cC5wdXRzICJzd2l0Y2ggKGluc3Qub3Bj
b2RlKSB7IgorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAor
ICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICBpZiBvcGNv
ZGUuY3VzdG9tCisgICAgICAgICAgICBvdXRwLnB1dHMgIiN7b3Bjb2RlLm5hbWV9Q3VzdG9tLmZv
ckVhY2hBcmcoaW5zdCwgZnVuYyk7IgorICAgICAgICBlbHNlCisgICAgICAgICAgICBuZWVkT3Zl
cmxvYWRTd2l0Y2ggPSBvcGNvZGUub3ZlcmxvYWRzLnNpemUgIT0gMQorICAgICAgICAgICAgb3V0
cC5wdXRzICJzd2l0Y2ggKGluc3QuYXJncy5sZW5ndGgpIHsiIGlmIG5lZWRPdmVybG9hZFN3aXRj
aAorICAgICAgICAgICAgb3Bjb2RlLm92ZXJsb2Fkcy5lYWNoIHsKKyAgICAgICAgICAgICAgICB8
IG92ZXJsb2FkIHwKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvdmVybG9hZC5z
aWduYXR1cmUubGVuZ3RofToiIGlmIG5lZWRPdmVybG9hZFN3aXRjaAorICAgICAgICAgICAgICAg
IG92ZXJsb2FkLnNpZ25hdHVyZS5lYWNoX3dpdGhfaW5kZXggeworICAgICAgICAgICAgICAgICAg
ICB8IGFyZywgaW5kZXggfAorICAgICAgICAgICAgICAgICAgICByb2xlID0gbmlsCisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgYXJnLnJvbGUKKyAgICAgICAgICAgICAgICAgICAgd2hlbiAiVSIK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGUgPSAiVXNlIgorICAgICAgICAgICAgICAgICAg
ICB3aGVuICJEIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJEZWYiCisgICAgICAg
ICAgICAgICAgICAgIHdoZW4gIlpEIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJa
RGVmIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJVRCIKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJvbGUgPSAiVXNlRGVmIgorICAgICAgICAgICAgICAgICAgICB3aGVuICJVWkQiCisgICAg
ICAgICAgICAgICAgICAgICAgICByb2xlID0gIlVzZVpEZWYiCisgICAgICAgICAgICAgICAgICAg
IHdoZW4gIlVBIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9ICJVc2VBZGRyIgorICAg
ICAgICAgICAgICAgICAgICB3aGVuICJTIgorICAgICAgICAgICAgICAgICAgICAgICAgcm9sZSA9
ICJTY3JhdGNoIgorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
ICAgICByYWlzZQorICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgICAgIG91dHAucHV0cyAiaW5zdC52aXNpdEFyZygje2luZGV4fSwg
ZnVuYywgQXJnLiN7cm9sZX0sICN7YXJnLnR5cGV9UCwgI3thcmcud2lkdGh9KTsiCisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiYnJlYWs7IgorICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgbmVlZE92ZXJsb2FkU3dpdGNoCisgICAgICAgICAgICAgICAg
b3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgInRocm93IG5l
dyBFcnJvcihcIkJhZCBvdmVybG9hZFwiKTsiCisgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJi
cmVhazsiCisgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJ9IgorICAgICAgICAgICAgZW5kCisg
ICAgICAgIGVuZAorICAgICAgICBvdXRwLnB1dHMgImJyZWFrOyIKKyAgICB9CisgICAgb3V0cC5w
dXRzICJkZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInRocm93IFwiQmFkIG9wY29kZVwiOyIKKyAg
ICBvdXRwLnB1dHMgIn0iCisgICAgb3V0cC5wdXRzICJ9IgorICAgIAorICAgIG91dHAucHV0cyAi
ZnVuY3Rpb24gSW5zdF9oYXNOb25BcmdFZmZlY3RzKGluc3QpIgorICAgIG91dHAucHV0cyAieyIK
KyAgICBvdXRwLnB1dHMgInN3aXRjaCAoaW5zdC5vcGNvZGUpIHsiCisgICAgZm91bmRUcnVlID0g
ZmFsc2UKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwKKyAg
ICAgICAgaWYgb3Bjb2RlLmF0dHJpYnV0ZXNbOnRlcm1pbmFsXSBvciBvcGNvZGUuYXR0cmlidXRl
c1s6ZWZmZWN0c10KKyAgICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToi
CisgICAgICAgICAgICBmb3VuZFRydWUgPSB0cnVlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBp
ZiBmb3VuZFRydWUKKyAgICAgICAgb3V0cC5wdXRzICJyZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisg
ICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIGlm
IG9wY29kZS5jdXN0b20KKyAgICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1l
fToiCisgICAgICAgICAgICBvdXRwLnB1dHMgInJldHVybiAje29wY29kZS5uYW1lfUN1c3RvbS5o
YXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsiCisgICAgICAgIGVuZAorICAgIH0KKyAg
ICBvdXRwLnB1dHMgImRlZmF1bHQ6IgorICAgIG91dHAucHV0cyAicmV0dXJuIGZhbHNlOyIKKyAg
ICBvdXRwLnB1dHMgIn0iCisgICAgb3V0cC5wdXRzICJ9IgorfQorCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1JlZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZWcuY3BwCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDE1IEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCitjb25zdCBjaGFyKiBSZWc6OmRlYnVnTmFtZSgpIGNvbnN0Cit7CisgICAgaWYg
KCEqdGhpcykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlzR1BSKCkpCisgICAg
ICAgIHJldHVybiBHUFJJbmZvOjpkZWJ1Z05hbWUoZ3ByKCkpOworICAgIHJldHVybiBGUFJJbmZv
OjpkZWJ1Z05hbWUoZnByKCkpOworfQorCiB2b2lkIFJlZzo6ZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjb25zdAogewogICAgIGlmICghKnRoaXMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJ
KHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE3Miw2ICsxNzIsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBt
X2luZGV4OwogICAgIH0KICAgICAKKyAgICBjb25zdCBjaGFyKiBkZWJ1Z05hbWUoKSBjb25zdDsK
KyAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKIAogICAgIGNsYXNzIEFs
bFJlZ3NJdGVyYWJsZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ckVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXJFcnJvci5oCShyZXZpc2lvbiAyMDE3MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlckVycm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw0ICsxMjEsNTEgQEAgcHJp
dmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKK25hbWVzcGFjZSBXVEYgeworCitpbmxpbmUg
dm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpTQzo6UGFyc2VyRXJyb3I6OlN5
bnRheEVycm9yVHlwZSB0eXBlKQoreworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgSlND
OjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3JOb25lOgorICAgICAgICBvdXQucHJpbnQoIlN5bnRh
eEVycm9yTm9uZSIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBKU0M6OlBhcnNlckVycm9y
OjpTeW50YXhFcnJvcklycmVjb3ZlcmFibGU6CisgICAgICAgIG91dC5wcmludCgiU3ludGF4RXJy
b3JJcnJlY292ZXJhYmxlIik7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIEpTQzo6UGFyc2Vy
RXJyb3I6OlN5bnRheEVycm9yVW50ZXJtaW5hdGVkTGl0ZXJhbDoKKyAgICAgICAgb3V0LnByaW50
KCJTeW50YXhFcnJvclVudGVybWluYXRlZExpdGVyYWwiKTsKKyAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3JSZWNvdmVyYWJsZToKKyAgICAgICAg
b3V0LnByaW50KCJTeW50YXhFcnJvclJlY292ZXJhYmxlIik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworaW5saW5l
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKU0M6OlBhcnNlckVycm9yOjpF
cnJvclR5cGUgdHlwZSkKK3sKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIEpTQzo6UGFy
c2VyRXJyb3I6OkVycm9yTm9uZToKKyAgICAgICAgb3V0LnByaW50KCJFcnJvck5vbmUiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3RhY2tPdmVyZmxvdzoK
KyAgICAgICAgb3V0LnByaW50KCJTdGFja092ZXJmbG93Iik7CisgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIEpTQzo6UGFyc2VyRXJyb3I6OkV2YWxFcnJvcjoKKyAgICAgICAgb3V0LnByaW50KCJF
dmFsRXJyb3IiKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6
T3V0T2ZNZW1vcnk6CisgICAgICAgIG91dC5wcmludCgiT3V0T2ZNZW1vcnkiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIGNhc2UgSlNDOjpQYXJzZXJFcnJvcjo6U3ludGF4RXJyb3I6CisgICAgICAg
IG91dC5wcmludCgiU3ludGF4RXJyb3IiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAK
KyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
VEYKKwogI2VuZGlmIC8vIFBhcnNlckVycm9yX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzY4LDYgKzM2OCw5IEBA
IHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIHYoYm9vbCwgZHVtcE1vZHVs
ZUxvYWRpbmdTdGF0ZSwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgZXhw
b3NlSW50ZXJuYWxNb2R1bGVMb2FkZXIsIGZhbHNlLCBOb3JtYWwsICJleHBvc2UgdGhlIGludGVy
bmFsIG1vZHVsZSBsb2FkZXIgb2JqZWN0IHRvIHRoZSBnbG9iYWwgc3BhY2UgZm9yIGRlYnVnZ2lu
ZyIpIFwKICAgICBcCisgICAgdihib29sLCBkdW1wQWlyQXNKU0JlZm9yZUFsbG9jYXRlU3RhY2ss
IGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIGR1bXBBaXJBZnRlckFsbG9j
YXRlU3RhY2ssIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICBcCiAgICAgdihib29sLCB1
c2VTdXBlclNhbXBsZXIsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpCiAKIGVudW0gT3B0aW9uRXF1
aXZhbGVuY2UgewpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTcxNikKKysrIFNvdXJjZS9XVEYvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDYtMDcgIEZpbGlwIFBp
emxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgQWlyOjphbGxvY2F0
ZVN0YWNrKCkgaW4gRVM2IHRvIHNlZSBob3cgbXVjaCBvZiBhIGJhZCBpZGVhIHRoYXQgaXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODMxOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNhYW0gQmFyYXRpLgorCisgICAgICAgICogd3RmL0luc2VydGlv
bi5oOgorICAgICAgICAoV1RGOjpleGVjdXRlSW5zZXJ0aW9ucyk6IEkgZm91bmQgYSBidWcgd2hp
bGUgcmV3cml0aW5nIHRoaXMgY29kZSBpbiBKUy4KKyAgICAgICAgKiB3dGYvUHJpbnRTdHJlYW0u
aDoKKyAgICAgICAgKFdURjo6UHJpbnRTdHJlYW06OnByaW50KToKKyAgICAgICAgKFdURjo6UHJp
bnRTdHJlYW06OnByaW50bG4pOiBUaGlzIGlzIHVzZWZ1bCB0byBoYXZlLgorCiAyMDE2LTA2LTA0
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0IHJp
ZCBvZiBXb3JrSXRlbVdpbgpJbmRleDogU291cmNlL1dURi93dGYvSW5zZXJ0aW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi93dGYvSW5zZXJ0aW9uLmgJKHJldmlzaW9uIDIwMTcxNikKKysr
IFNvdXJjZS9XVEYvd3RmL0luc2VydGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMiArNjAs
MTIgQEAgc2l6ZV90IGV4ZWN1dGVJbnNlcnRpb25zKFRhcmdldFZlY3RvclR5cAogICAgIHNpemVf
dCBudW1JbnNlcnRpb25zID0gaW5zZXJ0aW9ucy5zaXplKCk7CiAgICAgaWYgKCFudW1JbnNlcnRp
b25zKQogICAgICAgICByZXR1cm4gMDsKKyAgICBzaXplX3Qgb3JpZ2luYWxUYXJnZXRTaXplID0g
dGFyZ2V0LnNpemUoKTsKICAgICB0YXJnZXQuZ3Jvdyh0YXJnZXQuc2l6ZSgpICsgbnVtSW5zZXJ0
aW9ucyk7CiAgICAgc2l6ZV90IGxhc3RJbmRleCA9IHRhcmdldC5zaXplKCk7Ci0gICAgc2l6ZV90
IG9yaWdpbmFsVGFyZ2V0U2l6ZSA9IHRhcmdldC5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaW5k
ZXhJbkluc2VydGlvbnMgPSBudW1JbnNlcnRpb25zOyBpbmRleEluSW5zZXJ0aW9ucy0tOykgewog
ICAgICAgICBBU1NFUlQoIWluZGV4SW5JbnNlcnRpb25zIHx8IGluc2VydGlvbnNbaW5kZXhJbklu
c2VydGlvbnNdLmluZGV4KCkgPj0gaW5zZXJ0aW9uc1tpbmRleEluSW5zZXJ0aW9ucyAtIDFdLmlu
ZGV4KCkpOwotICAgICAgICBBU1NFUlRfVU5VU0VEKG9yaWdpbmFsVGFyZ2V0U2l6ZSwgaW5zZXJ0
aW9uc1tpbmRleEluSW5zZXJ0aW9uc10uaW5kZXgoKSA8IG9yaWdpbmFsVGFyZ2V0U2l6ZSk7Cisg
ICAgICAgIEFTU0VSVF9VTlVTRUQob3JpZ2luYWxUYXJnZXRTaXplLCBpbnNlcnRpb25zW2luZGV4
SW5JbnNlcnRpb25zXS5pbmRleCgpIDw9IG9yaWdpbmFsVGFyZ2V0U2l6ZSk7CiAgICAgICAgIHNp
emVfdCBmaXJzdEluZGV4ID0gaW5zZXJ0aW9uc1tpbmRleEluSW5zZXJ0aW9uc10uaW5kZXgoKSAr
IGluZGV4SW5JbnNlcnRpb25zOwogICAgICAgICBzaXplX3QgaW5kZXhPZmZzZXQgPSBpbmRleElu
SW5zZXJ0aW9ucyArIDE7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSBsYXN0SW5kZXg7IC0taSA+
IGZpcnN0SW5kZXg7KQpJbmRleDogU291cmNlL1dURi93dGYvUHJpbnRTdHJlYW0uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5oCShyZXZpc2lvbiAyMDE3MTYpCisr
KyBTb3VyY2UvV1RGL3d0Zi9QcmludFN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3
MCwxMyBAQCBwdWJsaWM6CiAgICAgICAgIHByaW50SW50ZXJuYWwoKnRoaXMsIHZhbHVlKTsKICAg
ICAgICAgcHJpbnQocmVtYWluaW5nVmFsdWVzLi4uKTsKICAgICB9CisgICAgCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gVHlwZXM+CisgICAgdm9pZCBwcmludGxuKGNvbnN0IFR5cGVzJi4uLiB2
YWx1ZXMpCisgICAgeworICAgICAgICBwcmludCh2YWx1ZXMuLi4pOworICAgICAgICBwcmludCgi
XG4iKTsKKyAgICB9CiB9OwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBwcmludEludGVybmFs
KFByaW50U3RyZWFtJiwgY29uc3QgY2hhciopOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>