<?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>209716</bug_id>
          
          <creation_ts>2020-03-28 22:15:37 -0700</creation_ts>
          <short_desc>[ESNext] Implement logical assignment operators</short_desc>
          <delta_ts>2020-06-12 16:15:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210663</blocked>
    
    <blocked>211921</blocked>
    
    <blocked>212679</blocked>
    
    <blocked>213154</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1635309</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-28 22:15:37 -0700</bug_when>
    <thetext>&lt;https://tc39.es/proposal-logical-assignment/&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635310</commentid>
    <comment_count>1</comment_count>
      <attachid>394858</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-28 22:31:08 -0700</bug_when>
    <thetext>Created attachment 394858
[Patch] WIP

Needs tests, but otherwise works! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635365</commentid>
    <comment_count>2</comment_count>
      <attachid>394873</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-29 12:36:02 -0700</bug_when>
    <thetext>Created attachment 394873
Patch

I&apos;m not sure if this is the &quot;right&quot; way of writing a JSC test, but I think I gave it a good try :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635372</commentid>
    <comment_count>3</comment_count>
      <attachid>394873</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-29 13:42:00 -0700</bug_when>
    <thetext>Comment on attachment 394873
Patch

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

&gt; JSTests/stress/logical-assignment-operator-and.js:21
&gt; +shouldBe(`var x; x &amp;&amp;= 42`, undefined);

A few comments on testing for now:
- I personally don&apos;t write shouldBe with a string to eval; I think it&apos;s fine for the test to stop if we can&apos;t pass the basic tests.
- You shouldn&apos;t need to test aspects of the language which don&apos;t interact with the feature -- namely, var/let/const should have no bearing on these operators, so you can just use literals directly (except when you&apos;re actually testing getters and setters later on).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635399</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-03-29 20:59:35 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #3)
&gt; - You shouldn&apos;t need to test aspects of the language which don&apos;t interact
&gt; with the feature -- namely, var/let/const should have no bearing on these
&gt; operators, so you can just use literals directly (except when you&apos;re
&gt; actually testing getters and setters later on).

On the other hand, some important interactions that you do want to test are when using these operators as part of a larger subexpression like `x &amp;&amp;= y &amp;&amp;= z`, `x &amp;&amp;= y ||= z`, `x &amp;&amp;= y = z`, `x &amp;&amp;= y &amp;&amp; z`, ... :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635574</commentid>
    <comment_count>5</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-30 10:28:17 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #4)
&gt; (In reply to Ross Kirsling from comment #3)
&gt; &gt; - You shouldn&apos;t need to test aspects of the language which don&apos;t interact with the feature -- namely, var/let/const should have no bearing on these operators, so you can just use literals directly (except when you&apos;re actually testing getters and setters later on).

I agree with you with respect to `var` vs `let`, as I don&apos;t think they act any differently in any of the cases that would matter for this feature, but I do think there should be tests for `const`, given that there is logic in `ShortCircuitAssignResolveNode` specifically checking for whether the variable being assigned is read-only.  There are other parts that I&apos;m not sure how to test either, like `emitTDZCheckIfNecessary` or `leftHandSideNeedsCopy`, which I plan on finding out about this week.

&gt; On the other hand, some important interactions that you do want to test are when using these operators as part of a larger subexpression like `x &amp;&amp;= y &amp;&amp;= z`, `x &amp;&amp;= y ||= z`, `x &amp;&amp;= y = z`, `x &amp;&amp;= y &amp;&amp; z`, ... :D

Doh!  I completely forgot about chaining assignment operators 🤦‍♂️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635781</commentid>
    <comment_count>6</comment_count>
      <attachid>394873</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-30 15:36:28 -0700</bug_when>
    <thetext>Comment on attachment 394873
Patch

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

&gt; JSTests/stress/logical-assignment-operator-or.js:54
&gt; +shouldThrow(`const x = true; x ||= 42`, TypeError);

This actually shouldn&apos;t throw.  Since these operators short circuit, we should only throw if when we attempt to assign to something that is readonly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635807</commentid>
    <comment_count>7</comment_count>
      <attachid>394873</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-30 16:12:06 -0700</bug_when>
    <thetext>Comment on attachment 394873
Patch

I also think we should add tests for things like:

```
    (function() {
        this ??= 42;
        return this;
    }).call(null);
```

```
    let x = {}
    Object.defineProperty(x, &quot;a&quot;, {
        value: null,
        writable: false,
    });
    x.a ??= 42
```

```
    x ??= 42;
    let x = null;
```

as well as `&quot;use strict&quot;;` variants for many of the existing tests :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635810</commentid>
    <comment_count>8</comment_count>
      <attachid>394873</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-30 16:14:40 -0700</bug_when>
    <thetext>Comment on attachment 394873
Patch

oh and:

```
    let x = null;
    (function() {
        x ??= 42;
    })();
```

with a `const` version too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635955</commentid>
    <comment_count>9</comment_count>
      <attachid>395021</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-03-31 00:31:04 -0700</bug_when>
    <thetext>Created attachment 395021
Patch

Ensure that an error is thrown only when actually assigning to a read-only value.  Remove some unnecessary code.  Add additional tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636550</commentid>
    <comment_count>10</comment_count>
      <attachid>395181</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-01 10:00:33 -0700</bug_when>
    <thetext>Created attachment 395181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639792</commentid>
    <comment_count>11</comment_count>
      <attachid>395181</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-09 12:43:10 -0700</bug_when>
    <thetext>Comment on attachment 395181
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2859
&gt; +// ------------------------------ ShortCircuitAssignResolveNode -----------------------------------

I think these should be renamed ShortCircuitReadModify*Node, if they&apos;re based on ReadModify*Node and not Assign*Node. I got really confused for a bit.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2896
&gt; +            emitShortCircuitAssignment(generator, local.get(), m_operator, shortCircuitLabel.get());

nit: may as well say result.get() instead of local.get()

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2942
&gt; +    generator.emitReadOnlyExceptionIfNeeded(var);

Doesn&apos;t this need a var.isReadOnly guard?

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2943
&gt; +    result = generator.emitNodeInTailPosition(result.get(), m_right);

Seems like emitReadModifyAssignment does a emitExpressionInfo after emitting the node just in this one case. Specifically:
  generator.emitExpressionInfo(divot(), divotStart(), divotEnd());

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2944
&gt; +    result = generator.emitPutToScope(scope.get(), var, result.get(), ThrowIfNotFound, InitializationMode::NotInitialization);

Doesn&apos;t this need a !var.isReadOnly guard?

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3089
&gt; +        RefPtr&lt;RegisterID&gt; thisValue = generator.ensureThis();

We can&apos;t use the thisValue from above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639808</commentid>
    <comment_count>12</comment_count>
      <attachid>395181</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-09 13:03:30 -0700</bug_when>
    <thetext>Comment on attachment 395181
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2859
&gt;&gt; +// ------------------------------ ShortCircuitAssignResolveNode -----------------------------------
&gt; 
&gt; I think these should be renamed ShortCircuitReadModify*Node, if they&apos;re based on ReadModify*Node and not Assign*Node. I got really confused for a bit.

That&apos;s a good point.  I&apos;ll change :)

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2942
&gt;&gt; +    generator.emitReadOnlyExceptionIfNeeded(var);
&gt; 
&gt; Doesn&apos;t this need a var.isReadOnly guard?

I was thinking that this be &quot;skipped&quot; by the jump to `shortCircuitLabel` that&apos;s provided to `emitShortCircuitAssignment`.  Is that not the case?

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2943
&gt;&gt; +    result = generator.emitNodeInTailPosition(result.get(), m_right);
&gt; 
&gt; Seems like emitReadModifyAssignment does a emitExpressionInfo after emitting the node just in this one case. Specifically:
&gt;   generator.emitExpressionInfo(divot(), divotStart(), divotEnd());

Good catch!

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3089
&gt;&gt; +        RefPtr&lt;RegisterID&gt; thisValue = generator.ensureThis();
&gt; 
&gt; We can&apos;t use the thisValue from above?

I thought so as well, but I saw that `ReadModifyDotNode::emitBytecode` did this as well, so I did too.  I wasn&apos;t sure if there was some way that the rhs could have some sort of side effect that could muck with this path.  I don&apos;t think so, but I figured it&apos;d be safer to match existing functionality than possibly be slightly different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639814</commentid>
    <comment_count>13</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-09 13:14:23 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #12)
&gt; &gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2942
&gt; &gt;&gt; +    generator.emitReadOnlyExceptionIfNeeded(var);
&gt; &gt; 
&gt; &gt; Doesn&apos;t this need a var.isReadOnly guard?
&gt; 
&gt; I was thinking that this be &quot;skipped&quot; by the jump to `shortCircuitLabel`
&gt; that&apos;s provided to `emitShortCircuitAssignment`.  Is that not the case?

This is the whole non-local variable path, so we know that the value wasn&apos;t something to short circuit on, but not whether the variable is read-only. I believe the current code will throw when setting any global variable in strict mode?

&gt; &gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3089
&gt; &gt;&gt; +        RefPtr&lt;RegisterID&gt; thisValue = generator.ensureThis();
&gt; &gt; 
&gt; &gt; We can&apos;t use the thisValue from above?
&gt; 
&gt; I thought so as well, but I saw that `ReadModifyDotNode::emitBytecode` did
&gt; this as well, so I did too.  I wasn&apos;t sure if there was some way that the
&gt; rhs could have some sort of side effect that could muck with this path.  I
&gt; don&apos;t think so, but I figured it&apos;d be safer to match existing functionality
&gt; than possibly be slightly different.

Hmm, I now see that AssignBracketNode does what you&apos;re saying, but ReadModifyDotNode / ReadModifyBracketNode don&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639828</commentid>
    <comment_count>14</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-09 13:29:47 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #13)
&gt; (In reply to Devin Rousso from comment #12)
&gt; &gt; &gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2942
&gt; &gt; &gt;&gt; +    generator.emitReadOnlyExceptionIfNeeded(var);
&gt; &gt; &gt; 
&gt; &gt; &gt; Doesn&apos;t this need a var.isReadOnly guard?
&gt; &gt; 
&gt; &gt; I was thinking that this be &quot;skipped&quot; by the jump to `shortCircuitLabel` that&apos;s provided to `emitShortCircuitAssignment`.  Is that not the case?
&gt; 
&gt; This is the whole non-local variable path, so we know that the value wasn&apos;t something to short circuit on, but not whether the variable is read-only. I believe the current code will throw when setting any global variable in strict mode?

That&apos;s not necessarily true though, right?  The short circuiting depends on which operator is used.  Something like
```
    Object.defineProperty(globalThis, &quot;foo&quot;, {
        value: false,
        writable: false,
        configurable: false,
    });

    function bar() {
        foo &amp;&amp;= 42;
    }

    bar();
```
should short circuit and _not_ assign/throw, right?  Shouldn&apos;t the `ReadonlyPropertyWriteError` only be emitted/reachable if we _don&apos;t_ short circuit?

&gt; &gt; &gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3089
&gt; &gt; &gt;&gt; +        RefPtr&lt;RegisterID&gt; thisValue = generator.ensureThis();
&gt; &gt; &gt; 
&gt; &gt; &gt; We can&apos;t use the thisValue from above?
&gt; &gt; 
&gt; &gt; I thought so as well, but I saw that `ReadModifyDotNode::emitBytecode` did this as well, so I did too.  I wasn&apos;t sure if there was some way that the rhs could have some sort of side effect that could muck with this path.  I don&apos;t think so, but I figured it&apos;d be safer to match existing functionality than possibly be slightly different.
&gt; 
&gt; Hmm, I now see that AssignBracketNode does what you&apos;re saying, but ReadModifyDotNode / ReadModifyBracketNode don&apos;t.

Oh!  You&apos;re totally right 🤣  That&apos;ll teach me to only look at one thing 😛</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639834</commentid>
    <comment_count>15</comment_count>
      <attachid>395181</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-09 13:36:36 -0700</bug_when>
    <thetext>Comment on attachment 395181
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2942
&gt;&gt;&gt; +    generator.emitReadOnlyExceptionIfNeeded(var);
&gt;&gt; 
&gt;&gt; Doesn&apos;t this need a var.isReadOnly guard?
&gt; 
&gt; I was thinking that this be &quot;skipped&quot; by the jump to `shortCircuitLabel` that&apos;s provided to `emitShortCircuitAssignment`.  Is that not the case?

After talking with you in Slack, I get what you mean now.  This will always throw in strict mode, even if the `var` is NOT read-only.  We should wrap this in an `isReadOnly` guard.

I was under the assumption/misunderstanding that `BytecodeGenerator::emitReadOnlyExceptionIfNeeded` checked that for me 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639867</commentid>
    <comment_count>16</comment_count>
      <attachid>396009</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-09 14:18:44 -0700</bug_when>
    <thetext>Created attachment 396009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639900</commentid>
    <comment_count>17</comment_count>
      <attachid>396017</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-09 15:01:55 -0700</bug_when>
    <thetext>Created attachment 396017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639906</commentid>
    <comment_count>18</comment_count>
      <attachid>396018</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-09 15:05:49 -0700</bug_when>
    <thetext>Created attachment 396018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639958</commentid>
    <comment_count>19</comment_count>
      <attachid>396025</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-09 16:40:02 -0700</bug_when>
    <thetext>Created attachment 396025
Patch

we nede to throw an exception if the lhs is read-only _after_ emitting the rhs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640805</commentid>
    <comment_count>20</comment_count>
      <attachid>396025</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-04-13 01:30:02 -0700</bug_when>
    <thetext>Comment on attachment 396025
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2861
&gt; +// FIXME: should this be moved to be a method on BytecodeGenerator?

This seems fine in here

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2895
&gt; +            Ref&lt;Label&gt; shortCircuitLabel = generator.newLabel();

Nit: I’d name this something like “skipAssignment”. Also, I tend to name things in without including the type name in variable name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641044</commentid>
    <comment_count>21</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-13 12:43:14 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #20)
&gt; Nit: I’d name this something like “skipAssignment”. Also, I tend to name
&gt; things in without including the type name in variable name.

Or maybe `afterAssignment` so that it names a location instead of an action?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641529</commentid>
    <comment_count>22</comment_count>
      <attachid>396458</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 13:53:46 -0700</bug_when>
    <thetext>Created attachment 396458
Patch

rebase and confirm that existing tests cover the non-local variable resolve assignment path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641573</commentid>
    <comment_count>23</comment_count>
      <attachid>396466</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 15:31:13 -0700</bug_when>
    <thetext>Created attachment 396466
Patch

 - only `emitExpressionInfo` in `ShortCircuitReadModifyResolveNode` if the non-local is not readonly (or we are not in strict mode)
 - use `emitNode` instead of `emitNodeInTailPosition` as technically the entire assignment is in tail position, not just the rhs (it&apos;s equivalent to `a &amp;&amp; (a = b)`, NOT `a &amp;&amp; (a = a &amp;&amp; b)`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641583</commentid>
    <comment_count>24</comment_count>
      <attachid>396466</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-14 16:00:46 -0700</bug_when>
    <thetext>Comment on attachment 396466
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2961
&gt; +    if (!isReadOnly) {
&gt; +        result = generator.emitPutToScope(scope.get(), var, result.get(), ThrowIfNotFound, InitializationMode::NotInitialization);
&gt; +        generator.emitProfileType(result.get(), var, divotStart(), divotEnd());
&gt; +    }
&gt; +
&gt; +    generator.emitLabel(afterAssignment.get());
&gt; +    return generator.move(dst, result.get());

Hmm, but now we don&apos;t emitProfileType in the short-circuit case, which is different from the local() paths. 🤔</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641591</commentid>
    <comment_count>25</comment_count>
      <attachid>396466</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 16:19:52 -0700</bug_when>
    <thetext>Comment on attachment 396466
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2961
&gt;&gt; +    return generator.move(dst, result.get());
&gt; 
&gt; Hmm, but now we don&apos;t emitProfileType in the short-circuit case, which is different from the local() paths. 🤔

Gah, i forgot 🤦‍♂️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641631</commentid>
    <comment_count>26</comment_count>
      <attachid>396486</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 18:06:43 -0700</bug_when>
    <thetext>Created attachment 396486
Patch

After talking with @Ross Kirsling a bit more offline, it looks like the logic we have is correct.

A simple test is to compare the dumped bytecodes for `a ??= b` and `a ?? (a = b)`.

&gt;&gt;&gt; x ?? (x = 42)
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] mov                loc6, Undefined(const0)
[  10] mov                loc6, Undefined(const0)
[  13] resolve_scope      loc6, loc4, 0, GlobalProperty, 0
[  20] get_from_scope     loc7, loc6, 0, 2048&lt;ThrowIfNotFound|GlobalProperty|NotInitialization|NotStrictMode&gt;, 0, 0
[  28] mov                loc6, loc7
[  31] profile_type       loc6, 0, ProfileTypeBytecodeClosureVar, 0, GlobalProperty
[  38] jnundefined_or_null loc6, 28(-&gt;66)
[  41] resolve_scope      loc7, loc4, 0, GlobalProperty, 0
[  48] mov                loc6, Int32: 42(const1)
[  51] put_to_scope       loc7, 0, loc6, 1050624&lt;DoNotThrowIfNotFound|GlobalProperty|NotInitialization|NotStrictMode&gt;, 0, 0
[  59] profile_type       loc6, 0, ProfileTypeBytecodeClosureVar, 0, GlobalProperty
[  66] end                loc6

&gt;&gt;&gt; x ??= 42
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] mov                loc6, Undefined(const0)
[  10] mov                loc6, Undefined(const0)
[  13] resolve_scope      loc7, loc4, 0, GlobalProperty, 0
[  20] get_from_scope     loc6, loc7, 0, 2048&lt;ThrowIfNotFound|GlobalProperty|NotInitialization|NotStrictMode&gt;, 0, 0
[  28] jnundefined_or_null loc6, 21(-&gt;49)
[  31] mov                loc6, Int32: 42(const1)
[  34] put_to_scope       loc7, 0, loc6, 2048&lt;ThrowIfNotFound|GlobalProperty|NotInitialization|NotStrictMode&gt;, 0, 0
[  42] profile_type       loc6, 0, ProfileTypeBytecodeClosureVar, 0, GlobalProperty
[  49] end                loc6

As we can see, we emit the same things other than
 - the `mov` (28) and `profile_type` (31) from the lhs `x` in `x ?? (x = 42)`
 - the second `resolve_scope` (41) from the rhs `x` in `x ?? (x = 42)`
both of which are expected and a benefit of the short circuiting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641656</commentid>
    <comment_count>27</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 19:56:59 -0700</bug_when>
    <thetext>I just did a bit more testing to verify things are as we expect:



$ (function() { const x = null; function capture() { return x; } x ??= 42 })()
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] create_lexical_environment loc7, loc4, Cell: 0x10cfbda08 (0x10d1f8460:[0x4fa9, SymbolTable, {}, NonArray, Leaf]), StructureID: 20393(const1), &lt;JSValue()&gt;(const2)
[  12] mov                loc4, loc7
[  15] new_func           loc8, loc4, 0
[  19] mov                loc6, loc8
[  22] put_to_scope       loc7, 0, Null(const3), 1049604&lt;DoNotThrowIfNotFound|LocalClosureVar|ConstInitialization|NotStrictMode&gt;, 1, 0
[  30] profile_type       Null(const3), 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  37] get_from_scope     loc8, loc7, 0, 2052&lt;ThrowIfNotFound|LocalClosureVar|NotInitialization|NotStrictMode&gt;, 1, 0
[  45] jnundefined_or_null loc8, 9(-&gt;54)
[  48] mov                loc8, Int32: 42(const4)
[  51] throw_static_error String (atomic),8Bit:(1),length:(41): Attempted to assign to readonly property., StructureID: 16209(const5), TypeError
[  54] profile_type       Undefined(const6), 0, ProfileTypeBytecodeFunctionReturnStatement, 0, GlobalProperty
[  61] ret                Undefined(const6)

   vs

$ (function() { const x = null; function capture() { return x; } x ?? (x = 42) })()
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] create_lexical_environment loc7, loc4, Cell: 0x1056bda08 (0x1058f8460:[0xdbc6, SymbolTable, {}, NonArray, Leaf]), StructureID: 56262(const1), &lt;JSValue()&gt;(const2)
[  12] mov                loc4, loc7
[  15] new_func           loc8, loc4, 0
[  19] mov                loc6, loc8
[  22] put_to_scope       loc7, 0, Null(const3), 1049604&lt;DoNotThrowIfNotFound|LocalClosureVar|ConstInitialization|NotStrictMode&gt;, 1, 0
[  30] profile_type       Null(const3), 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  37] get_from_scope     loc9, loc7, 0, 2052&lt;ThrowIfNotFound|LocalClosureVar|NotInitialization|NotStrictMode&gt;, 1, 0
[  45] mov                loc8, loc9
[  48] profile_type       loc8, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  55] jnundefined_or_null loc8, 9(-&gt;64)
[  58] mov                loc8, Int32: 42(const4)
[  61] throw_static_error String (atomic),8Bit:(1),length:(41): Attempted to assign to readonly property., StructureID: 52815(const5), TypeError
[  64] profile_type       Undefined(const6), 0, ProfileTypeBytecodeFunctionReturnStatement, 0, GlobalProperty
[  71] ret                Undefined(const6)



----------



$ (function() { const x = null; x ??= 42 })()
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] mov                loc6, &lt;JSValue()&gt;(const2)
[  10] mov                loc6, Null(const3)
[  13] profile_type       loc6, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  20] jnundefined_or_null loc6, 9(-&gt;29)
[  23] mov                loc6, Int32: 42(const4)
[  26] throw_static_error String (atomic),8Bit:(1),length:(41): Attempted to assign to readonly property., StructureID: 3307(const5), TypeError
[  29] profile_type       loc6, 0, ProfileTypeBytecodeDoesNotHaveGlobalID, 0, GlobalProperty
[  36] profile_type       Undefined(const6), 0, ProfileTypeBytecodeFunctionReturnStatement, 0, GlobalProperty
[  43] ret                Undefined(const6)

   vs

$ (function() { const x = null; x ?? (x = 42) })()
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] mov                loc6, &lt;JSValue()&gt;(const2)
[  10] mov                loc6, Null(const3)
[  13] profile_type       loc6, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  20] profile_type       loc6, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  27] mov                loc7, loc6
[  30] jnundefined_or_null loc7, 16(-&gt;46)
[  33] mov                loc7, Int32: 42(const4)
[  36] throw_static_error String (atomic),8Bit:(1),length:(41): Attempted to assign to readonly property., StructureID: 10823(const5), TypeError
[  39] profile_type       loc7, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  46] profile_type       Undefined(const6), 0, ProfileTypeBytecodeFunctionReturnStatement, 0, GlobalProperty
[  53] ret                Undefined(const6)



so it looks like things are being emitted as we want :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641657</commentid>
    <comment_count>28</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 20:03:10 -0700</bug_when>
    <thetext>Here&apos;s some examples with `let` instead of `const` to hit the non-`isReadOnly` path



$ (function() { let x = null; function capture() { return x; } x ??= 42 })()
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] create_lexical_environment loc7, loc4, Cell: 0x10dcbda08 (0x10def8460:[0x9b9e, SymbolTable, {}, NonArray, Leaf]), StructureID: 39838(const1), &lt;JSValue()&gt;(const2)
[  12] mov                loc4, loc7
[  15] new_func           loc8, loc4, 0
[  19] mov                loc6, loc8
[  22] put_to_scope       loc7, 0, Null(const3), 1048580&lt;DoNotThrowIfNotFound|LocalClosureVar|Initialization|NotStrictMode&gt;, 1, 0
[  30] profile_type       Null(const3), 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  37] get_from_scope     loc8, loc7, 0, 2052&lt;ThrowIfNotFound|LocalClosureVar|NotInitialization|NotStrictMode&gt;, 1, 0
[  45] jnundefined_or_null loc8, 21(-&gt;66)
[  48] mov                loc8, Int32: 42(const4)
[  51] put_to_scope       loc7, 0, loc8, 2052&lt;ThrowIfNotFound|LocalClosureVar|NotInitialization|NotStrictMode&gt;, 1, 0
[  59] profile_type       loc8, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  66] profile_type       Undefined(const5), 0, ProfileTypeBytecodeFunctionReturnStatement, 0, GlobalProperty
[  73] ret                Undefined(const5)

   vs

$ (function() { let x = null; function capture() { return x; } x ?? (x = 42) })()
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] create_lexical_environment loc7, loc4, Cell: 0x1128bda08 (0x112af8460:[0xe4a, SymbolTable, {}, NonArray, Leaf]), StructureID: 3658(const1), &lt;JSValue()&gt;(const2)
[  12] mov                loc4, loc7
[  15] new_func           loc8, loc4, 0
[  19] mov                loc6, loc8
[  22] put_to_scope       loc7, 0, Null(const3), 1048580&lt;DoNotThrowIfNotFound|LocalClosureVar|Initialization|NotStrictMode&gt;, 1, 0
[  30] profile_type       Null(const3), 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  37] get_from_scope     loc9, loc7, 0, 2052&lt;ThrowIfNotFound|LocalClosureVar|NotInitialization|NotStrictMode&gt;, 1, 0
[  45] mov                loc8, loc9
[  48] profile_type       loc8, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  55] jnundefined_or_null loc8, 21(-&gt;76)
[  58] mov                loc8, Int32: 42(const4)
[  61] put_to_scope       loc7, 0, loc8, 1050628&lt;DoNotThrowIfNotFound|LocalClosureVar|NotInitialization|NotStrictMode&gt;, 1, 0
[  69] profile_type       loc8, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  76] profile_type       Undefined(const5), 0, ProfileTypeBytecodeFunctionReturnStatement, 0, GlobalProperty
[  83] ret                Undefined(const5)



----------



$ (function() { let x = null; x ??= 42 })()
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] mov                loc6, &lt;JSValue()&gt;(const2)
[  10] mov                loc6, Null(const3)
[  13] profile_type       loc6, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  20] jnundefined_or_null loc6, 13(-&gt;33)
[  23] mov                loc6, Int32: 42(const4)
[  26] profile_type       loc6, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  33] profile_type       Undefined(const5), 0, ProfileTypeBytecodeFunctionReturnStatement, 0, GlobalProperty
[  40] ret                Undefined(const5)

   vs

$ (function() { let x = null; x ?? (x = 42) })()
[   0] enter              
[   1] get_scope          loc4
[   3] mov                loc5, loc4
[   6] check_traps        
[   7] mov                loc6, &lt;JSValue()&gt;(const2)
[  10] mov                loc6, Null(const3)
[  13] profile_type       loc6, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  20] profile_type       loc6, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  27] mov                loc7, loc6
[  30] jnundefined_or_null loc7, 16(-&gt;46)
[  33] mov                loc6, Int32: 42(const4)
[  36] profile_type       loc6, 1, ProfileTypeBytecodeLocallyResolved, 0, GlobalProperty
[  43] mov                loc7, loc6
[  46] profile_type       Undefined(const5), 0, ProfileTypeBytecodeFunctionReturnStatement, 0, GlobalProperty
[  53] ret                Undefined(const5)



so we&apos;re also good here too :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641658</commentid>
    <comment_count>29</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 20:04:38 -0700</bug_when>
    <thetext>Oh i should&apos;ve mentioned, I did change the code ever so slightly to move the `emitProfileType` to not be emitted if a local variable is short circuited.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641660</commentid>
    <comment_count>30</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 20:19:52 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #27)
&gt; $ (function() { const x = null; x ??= 42 })()
&gt; [   0] enter              
&gt; [   1] get_scope          loc4
&gt; [   3] mov                loc5, loc4
&gt; [   6] check_traps        
&gt; [   7] mov                loc6, &lt;JSValue()&gt;(const2)
&gt; [  10] mov                loc6, Null(const3)
&gt; [  13] profile_type       loc6, 1, ProfileTypeBytecodeLocallyResolved, 0,
&gt; GlobalProperty
&gt; [  20] jnundefined_or_null loc6, 9(-&gt;29)
&gt; [  23] mov                loc6, Int32: 42(const4)
&gt; [  26] throw_static_error String (atomic),8Bit:(1),length:(41): Attempted to
&gt; assign to readonly property., StructureID: 3307(const5), TypeError
&gt; [  29] profile_type       loc6, 0, ProfileTypeBytecodeDoesNotHaveGlobalID,
&gt; 0, GlobalProperty
&gt; [  36] profile_type       Undefined(const6), 0,
&gt; ProfileTypeBytecodeFunctionReturnStatement, 0, GlobalProperty
&gt; [  43] ret                Undefined(const6)
oops, looks like I forgot one additional spot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641661</commentid>
    <comment_count>31</comment_count>
      <attachid>396492</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 20:20:45 -0700</bug_when>
    <thetext>Created attachment 396492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641662</commentid>
    <comment_count>32</comment_count>
      <attachid>396493</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 20:29:16 -0700</bug_when>
    <thetext>Created attachment 396493
Patch

fix dot/bracket too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641663</commentid>
    <comment_count>33</comment_count>
      <attachid>396493</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-14 20:40:48 -0700</bug_when>
    <thetext>Comment on attachment 396493
Patch

Woohoo! Let&apos;s land this once EWS is green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641679</commentid>
    <comment_count>34</comment_count>
      <attachid>396493</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-14 22:05:16 -0700</bug_when>
    <thetext>Comment on attachment 396493
Patch

Oh whoa, a whole results/ directory ended up in the latest patch, it seems. Marking cq- just to be safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641682</commentid>
    <comment_count>35</comment_count>
      <attachid>396500</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-14 22:28:22 -0700</bug_when>
    <thetext>Created attachment 396500
Patch

(In reply to Ross Kirsling from comment #34)
&gt; Comment on attachment 396493 [details]
&gt; Patch
&gt; 
&gt; Oh whoa, a whole results/ directory ended up in the latest patch, it seems. Marking cq- just to be safe.

Oops.  Probably some accidental addition from `run-jsc-stress-tests` :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641698</commentid>
    <comment_count>36</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-15 00:03:00 -0700</bug_when>
    <thetext>Committed r260119: &lt;https://trac.webkit.org/changeset/260119&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396500.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641699</commentid>
    <comment_count>37</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-15 00:04:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/61811886&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641706</commentid>
    <comment_count>38</comment_count>
      <attachid>396500</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-15 00:45:19 -0700</bug_when>
    <thetext>Comment on attachment 396500
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2870
&gt; +    case Operator::NullishEq:

Wait, I missed that this got updated to NullishEq/NULLISHEQUAL somewhere along the line—can you change it back to Coalesce in a follow-up?
?? and ?. together are the nullish operators, &quot;coalesce&quot; is really the word that&apos;s unique to ??.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641824</commentid>
    <comment_count>39</comment_count>
      <attachid>396500</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-15 09:18:57 -0700</bug_when>
    <thetext>Comment on attachment 396500
Patch

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

&gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2870
&gt;&gt; +    case Operator::NullishEq:
&gt; 
&gt; Wait, I missed that this got updated to NullishEq/NULLISHEQUAL somewhere along the line—can you change it back to Coalesce in a follow-up?
&gt; ?? and ?. together are the nullish operators, &quot;coalesce&quot; is really the word that&apos;s unique to ??.

I changed it to &quot;nullish&quot; to match the filename of the tests in test262.  Personally, I find &quot;nullish&quot; to be much clearer than &quot;coalesce&quot; (which I don&apos;t think is a good word for any of this), and as you said they&apos;re all related to &quot;nullish&quot;, so this would be a new &quot;nullish equal&quot; among the already existing &quot;nullish chain&quot; and &quot;nullish or&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641879</commentid>
    <comment_count>40</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-04-15 11:17:32 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #39)
&gt; Comment on attachment 396500 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396500&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2870
&gt; &gt;&gt; +    case Operator::NullishEq:
&gt; &gt; 
&gt; &gt; Wait, I missed that this got updated to NullishEq/NULLISHEQUAL somewhere along the line—can you change it back to Coalesce in a follow-up?
&gt; &gt; ?? and ?. together are the nullish operators, &quot;coalesce&quot; is really the word that&apos;s unique to ??.
&gt; 
&gt; I changed it to &quot;nullish&quot; to match the filename of the tests in test262. 
&gt; Personally, I find &quot;nullish&quot; to be much clearer than &quot;coalesce&quot; (which I
&gt; don&apos;t think is a good word for any of this), and as you said they&apos;re all
&gt; related to &quot;nullish&quot;, so this would be a new &quot;nullish equal&quot; among the
&gt; already existing &quot;nullish chain&quot; and &quot;nullish or&quot;.

Many test262 filenames are quite odd, so I wouldn&apos;t worry about that part... ?? forms a CoalesceExpression in the spec (https://tc39.es/ecma262/#prod-CoalesceExpression) and this is the equals version of that, so it&apos;s quite important that the two match.

Since &quot;logical&quot; means &quot;truthy&quot;, &quot;logical and operator&quot; and &quot;nullish coalesce operator&quot; are in direct alignment in their naming. We don&apos;t refer to just one of the &amp;&amp;, ||, ! trio as &quot;the&quot; logical operator. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641884</commentid>
    <comment_count>41</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-15 11:23:32 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #40)
&gt; (In reply to Devin Rousso from comment #39)
&gt; &gt; Comment on attachment 396500 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=396500&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2870
&gt; &gt; &gt;&gt; +    case Operator::NullishEq:
&gt; &gt; &gt; 
&gt; &gt; &gt; Wait, I missed that this got updated to NullishEq/NULLISHEQUAL somewhere along the line—can you change it back to Coalesce in a follow-up?
&gt; &gt; &gt; ?? and ?. together are the nullish operators, &quot;coalesce&quot; is really the word that&apos;s unique to ??.
&gt; &gt; 
&gt; &gt; I changed it to &quot;nullish&quot; to match the filename of the tests in test262.  Personally, I find &quot;nullish&quot; to be much clearer than &quot;coalesce&quot; (which I don&apos;t think is a good word for any of this), and as you said they&apos;re all related to &quot;nullish&quot;, so this would be a new &quot;nullish equal&quot; among the already existing &quot;nullish chain&quot; and &quot;nullish or&quot;.
&gt; 
&gt; Many test262 filenames are quite odd, so I wouldn&apos;t worry about that part... ?? forms a CoalesceExpression in the spec (https://tc39.es/ecma262/#prod-CoalesceExpression) and this is the equals version of that, so it&apos;s quite important that the two match.
&gt; 
&gt; Since &quot;logical&quot; means &quot;truthy&quot;, &quot;logical and operator&quot; and &quot;nullish coalesce operator&quot; are in direct alignment in their naming. We don&apos;t refer to just one of the &amp;&amp;, ||, ! trio as &quot;the&quot; logical operator. :)

Oh!  I was not aware that it was also called that in the spec.  I&apos;ll change it back :)

Sorry for the trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642763</commentid>
    <comment_count>42</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-04-17 12:10:21 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #41)
&gt; (In reply to Ross Kirsling from comment #40)
&gt; &gt; (In reply to Devin Rousso from comment #39)
&gt; &gt; &gt; Comment on attachment 396500 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=396500&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2870
&gt; &gt; &gt; &gt;&gt; +    case Operator::NullishEq:
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Wait, I missed that this got updated to NullishEq/NULLISHEQUAL somewhere along the line—can you change it back to Coalesce in a follow-up?
&gt; &gt; &gt; &gt; ?? and ?. together are the nullish operators, &quot;coalesce&quot; is really the word that&apos;s unique to ??.
&gt; &gt; &gt; 
&gt; &gt; &gt; I changed it to &quot;nullish&quot; to match the filename of the tests in test262.  Personally, I find &quot;nullish&quot; to be much clearer than &quot;coalesce&quot; (which I don&apos;t think is a good word for any of this), and as you said they&apos;re all related to &quot;nullish&quot;, so this would be a new &quot;nullish equal&quot; among the already existing &quot;nullish chain&quot; and &quot;nullish or&quot;.
&gt; &gt; 
&gt; &gt; Many test262 filenames are quite odd, so I wouldn&apos;t worry about that part... ?? forms a CoalesceExpression in the spec (https://tc39.es/ecma262/#prod-CoalesceExpression) and this is the equals version of that, so it&apos;s quite important that the two match.
&gt; &gt; 
&gt; &gt; Since &quot;logical&quot; means &quot;truthy&quot;, &quot;logical and operator&quot; and &quot;nullish coalesce operator&quot; are in direct alignment in their naming. We don&apos;t refer to just one of the &amp;&amp;, ||, ! trio as &quot;the&quot; logical operator. :)
&gt; 
&gt; Oh!  I was not aware that it was also called that in the spec.  I&apos;ll change it back :)
&gt; 
&gt; Sorry for the trouble.

&lt;https://webkit.org/b/210663&gt; Rename NullishEq / NULLISHEQUAL to CoalesceEq / COALESCEEQUAL to match the spec</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394858</attachid>
            <date>2020-03-28 22:31:08 -0700</date>
            <delta_ts>2020-03-29 12:35:59 -0700</delta_ts>
            <desc>[Patch] WIP</desc>
            <filename>209716.diff</filename>
            <type>text/plain</type>
            <size>26352</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJjNzkyODhjNjA3Li4xZGQ1YmRjMWY0OCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjAtMDMtMjggIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtFU05leHRdIEltcGxlbWVu
dCBsb2dpY2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGxvZ2ljYWwgYXNzaWdubWVudCBv
cGVyYXRvcnMgcHJvcG9zYWwsIHdoaWNoIGlzIGJlaW5nIHByb3Bvc2VkIGZvciBTdGFnZSAzIGF0
CisgICAgICAgIHRoZSA3NXRoIFRDMzkgbWVldGluZyAoTWFyY2gtQXByaWwgMjAyMCkuIEl0IGlu
dHJvZHVjZXMgdGhyZWUgbmV3IGFzc2lnbm1lbnQgb3BlcmF0b3JzIHdoaWNoCisgICAgICAgIHdp
bGwgb25seSBzdG9yZSB0aGUgcmVzdWx0IG9mIHRoZSByaHMgaW4gdGhlIGxocyBpZiB0aGUgbGhz
IG1lZXRzIHRoZSBjb25kaXRpb246CisgICAgICAgICAtIGA/Pz1gLCBmb3IgaWYgdGhlIGxocyBp
cyBudWxsaXNoIChgbnVsbGAgb3IgYHVuZGVmaW5lZGApCisgICAgICAgICAtIGB8fD1gLCBmb3Ig
aWYgdGhlIGxocyBpcyBmYWxzeQorICAgICAgICAgLSBgJiY9YCwgZm9yIGlmIHRoZSBsaHMgaXMg
dHJ1dGh5CisKKyAgICAgICAgVGhpcyBzaG9ydCBjaXJjdWl0aW5nIGNhbiBiZSBiZW5lZmljaWFs
IGFzIGl0IGNhbiBhdm9pZCBhIHJlZHVuZGFudCBzdG9yZSB3aGVuIHVzZWQgaW4gdGhlCisgICAg
ICAgIGNvbW1vbiBKYXZhU2NyaXB0IHByb2dyYW1taW5nIHBhdHRlcm4gb2YgImRlZmF1bHRpbmci
IGEgcGFyYW1ldGVyLgorCisgICAgICAgIGBgYGpzCisgICAgICAgICAgICBmdW5jdGlvbiBmb28o
eCkgeworICAgICAgICAgICAgICAgIHggPSB4IHx8IDQyOworICAgICAgICAgICAgfQorICAgICAg
ICBgYGAKKworICAgICAgICBJZiBgeGAgaXMgYSB0cnV0aHkgdmFsdWUsIGl0IHdvdWxkIHJlc3Vs
dCBpbiB0aGUgcmhzIGB4YCBiZWluZyBzdG9yZWQgYmFjayBpbnRvIHRoZSBsaHMgYHhgLgorICAg
ICAgICBJbiBzb21lIHNpdHVhdGlvbnMsIHRoaXMgY2FuIGhhdmUgbmVnYXRpdmUgdW5pbnRlbmRl
ZCBzaWRlLWVmZmVjdHMsIHN1Y2ggYXMgZm9yIGBpbm5lckhUTUxgLgorCisgICAgICAgIExvZ2lj
YWwgYXNzaWdubWVudCBvcGVyYXRvcnMsIGhvd2V2ZXIsIGFyZSBkZWZpbmVkIHN1Y2ggdGhhdCB0
aGV5IG9ubHkgc3RvcmUgaWYgdGhlIHJocyBpcworICAgICAgICB0byBhY3R1YWxseSBiZSBuZWVk
ZWQvdXNlZCwgc2tpcHBpbmcgdGhlIHJlZHVuZGFudCBzdG9yZSBhbmQgc2ltcGx5IHJldHVybmlu
ZyBsaHMgb3RoZXJ3aXNlLgorCisgICAgICAgICogcGFyc2VyL1BhcnNlclRva2Vucy5oOgorICAg
ICAgICAqIHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6OkxleGVyPFQ+OjpsZXhXaXRo
b3V0Q2xlYXJpbmdMaW5lVGVybWluYXRvcik6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6
CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1lbnRFeHByZXNz
aW9uKToKKworICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFT
VEJ1aWxkZXI6Om1ha2VBc3NpZ25Ob2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAg
ICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpTaG9ydENp
cmN1aXRBc3NpZ25SZXNvbHZlTm9kZTo6U2hvcnRDaXJjdWl0QXNzaWduUmVzb2x2ZU5vZGUpOiBB
ZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0QXNzaWduQnJhY2tldE5vZGU6OlNob3J0
Q2lyY3VpdEFzc2lnbkJyYWNrZXROb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2ly
Y3VpdEFzc2lnbkRvdE5vZGU6OlNob3J0Q2lyY3VpdEFzc2lnbkRvdE5vZGUpOiBBZGRlZC4KKyAg
ICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6ZW1p
dFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJj
dWl0QXNzaWduUmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZSk6IEFkZGVkLgorICAgICAgICAoSlND
OjpTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAg
ICAgKEpTQzo6U2hvcnRDaXJjdWl0QXNzaWduQnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZSk6IEFk
ZGVkLgorCisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorICAgICAgICBBZGQgYSBg
dXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNgIHNldHRpbmcgZm9yIGNvbnRyb2xsaW5nIHRo
aXMgZmVhdHVyZS4KKwogMjAyMC0wMy0yNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdA
c29ueS5jb20+CiAKICAgICAgICAgW0pTQ10gTWFrZSBPcGVyYXRvciBhbiBlbnVtIGNsYXNzIHRv
IGF2b2lkIE9wKiBpZGVudGlmaWVycwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDY0MGIyNDk3NTVlLi44YjZkZTAzMGFk
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcApAQCAtMjg1Niw2ICsyODU2LDEwOCBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5
UmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBS
ZQogICAgIHJldHVybiByZXR1cm5SZXN1bHQ7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBTaG9ydENpcmN1aXRBc3NpZ25SZXNvbHZlTm9kZSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBGSVhNRTogc2hvdWxkIHRoaXMgYmUgbW92ZWQgdG8g
YmUgYSBtZXRob2Qgb24gQnl0ZWNvZGVHZW5lcmF0b3I/CitzdGF0aWMgQUxXQVlTX0lOTElORSB2
b2lkIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0
b3IsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogdmFsdWUsIE9wZXJhdG9yIG9wZXIsIExh
YmVsJiBzaG9ydENpcmN1aXRMYWJlbCkKK3sKKyAgICBzd2l0Y2ggKG9wZXIpIHsKKyAgICBjYXNl
IE9wZXJhdG9yOjpMb2dpY2FsQ29hbGVzY2VFcToKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1w
SWZUcnVlKGdlbmVyYXRvci5lbWl0SXNVbmRlZmluZWRPck51bGwoZ2VuZXJhdG9yLnRlbXBEZXN0
aW5hdGlvbihkc3QpLCB2YWx1ZSksIHNob3J0Q2lyY3VpdExhYmVsKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIE9wZXJhdG9yOjpMb2dpY2FsT3JFcToKKyAgICAgICAgZ2VuZXJhdG9yLmVt
aXRKdW1wSWZUcnVlKHZhbHVlLCBzaG9ydENpcmN1aXRMYWJlbCk7CisgICAgICAgIGJyZWFrOwor
CisgICAgY2FzZSBPcGVyYXRvcjo6TG9naWNhbEFuZEVxOgorICAgICAgICBnZW5lcmF0b3IuZW1p
dEp1bXBJZkZhbHNlKHZhbHVlLCBzaG9ydENpcmN1aXRMYWJlbCk7CisgICAgICAgIGJyZWFrOwor
CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wKHNob3J0Q2lyY3VpdExhYmVsKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorfQorCitSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRBc3NpZ25SZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IGRzdCkKK3sKKyAgICBKU1RleHRQb3NpdGlvbiBuZXdEaXZvdCA9IGRpdm90U3RhcnQoKSArIG1f
aWRlbnQubGVuZ3RoKCk7CisKKyAgICBWYXJpYWJsZSB2YXIgPSBnZW5lcmF0b3IudmFyaWFibGUo
bV9pZGVudCk7CisgICAgaWYgKFJlZlB0cjxSZWdpc3RlcklEPiBsb2NhbCA9IHZhci5sb2NhbCgp
KSB7CisgICAgICAgIGdlbmVyYXRvci5lbWl0VERaQ2hlY2tJZk5lY2Vzc2FyeSh2YXIsIGxvY2Fs
LmdldCgpLCBudWxscHRyKTsKKworICAgICAgICBpZiAodmFyLmlzUmVhZE9ubHkoKSkgeworICAg
ICAgICAgICAgZ2VuZXJhdG9yLmVtaXRSZWFkT25seUV4Y2VwdGlvbklmTmVlZGVkKHZhcik7CisK
KyAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBnZW5lcmF0b3IuZmluYWxE
ZXN0aW5hdGlvbihkc3QpOworCisgICAgICAgICAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExh
YmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgICAgICAgICBlbWl0U2hvcnRDaXJjdWl0
QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbG9jYWwuZ2V0KCksIG1fb3BlcmF0
b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgICAgICAgICAgcmVzdWx0ID0gZ2Vu
ZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKwor
ICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7
CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2
b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92
ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZ2VuZXJhdG9y
LmxlZnRIYW5kU2lkZU5lZWRzQ29weShtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fcmlnaHQtPmlz
UHVyZShnZW5lcmF0b3IpKSkgeworICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3Vs
dCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5tb3Zl
KHJlc3VsdC5nZXQoKSwgbG9jYWwuZ2V0KCkpOworCisgICAgICAgICAgICBSZWY8TGFiZWw+IHNo
b3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgICAgICAgICBlbWl0
U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIGRzdCwgcmVzdWx0LmdldCgpLCBtX29w
ZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICAgICAgICAgIHJlc3VsdCA9
IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7
CisgICAgICAgICAgICBnZW5lcmF0b3IubW92ZShsb2NhbC5nZXQoKSwgcmVzdWx0LmdldCgpKTsK
KworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzaG9ydENpcmN1aXRMYWJlbC5nZXQo
KSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwg
ZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3Iu
bW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gcmVzdWx0ID0gbG9jYWw7CisKKyAgICAgICAgUmVmPExhYmVsPiBzaG9ydENpcmN1
aXRMYWJlbCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgICAgICBlbWl0U2hvcnRDaXJjdWl0
QXNzaWdubWVudChnZW5lcmF0b3IsIGRzdCwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBzaG9y
dENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRO
b2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKworICAgICAgICBnZW5l
cmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAgICAgICAgZ2VuZXJh
dG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQo
KSk7CisgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cisg
ICAgfQorCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhuZXdEaXZvdCwgZGl2b3RT
dGFydCgpLCBuZXdEaXZvdCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNjb3BlID0gZ2VuZXJh
dG9yLmVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgdmFyKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJ
RD4gdmFsdWUgPSBnZW5lcmF0b3IuZW1pdEdldEZyb21TY29wZShnZW5lcmF0b3IubmV3VGVtcG9y
YXJ5KCksIHNjb3BlLmdldCgpLCB2YXIsIFRocm93SWZOb3RGb3VuZCk7CisgICAgZ2VuZXJhdG9y
LmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5KHZhciwgdmFsdWUuZ2V0KCksIG51bGxwdHIpOworICAg
IGlmICh2YXIuaXNSZWFkT25seSgpKSB7CisgICAgICAgIGJvb2wgdGhyZXdFeGNlcHRpb24gPSBn
ZW5lcmF0b3IuZW1pdFJlYWRPbmx5RXhjZXB0aW9uSWZOZWVkZWQodmFyKTsKKyAgICAgICAgaWYg
KHRocmV3RXhjZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldCgpOworICAgIH0K
KworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSB2YWx1ZTsKKworICAgIFJlZjxMYWJl
bD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hv
cnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIGRzdCwgcmVzdWx0LmdldCgpLCBtX29wZXJh
dG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICBpZiAoIXZhci5pc1JlYWRPbmx5
KCkpIHsKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24o
cmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQ
dXRUb1Njb3BlKHNjb3BlLmdldCgpLCB2YXIsIHJlc3VsdC5nZXQoKSwgVGhyb3dJZk5vdEZvdW5k
LCBJbml0aWFsaXphdGlvbk1vZGU6Ok5vdEluaXRpYWxpemF0aW9uKTsKKyAgICB9CisKKyAgICBn
ZW5lcmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAgICBnZW5lcmF0
b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgdmFyLCBkaXZvdFN0YXJ0KCksIGRpdm90
RW5kKCkpOworICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cit9
CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBc3NpZ25SZXNvbHZlTm9kZSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiBzdGF0aWMgSW5pdGlhbGl6YXRp
b25Nb2RlIGluaXRpYWxpemF0aW9uTW9kZUZvckFzc2lnbm1lbnRDb250ZXh0KEFzc2lnbm1lbnRD
b250ZXh0IGFzc2lnbm1lbnRDb250ZXh0KQogewogICAgIHN3aXRjaCAoYXNzaWdubWVudENvbnRl
eHQpIHsKQEAgLTI4NzEsOCArMjk3Myw2IEBAIHN0YXRpYyBJbml0aWFsaXphdGlvbk1vZGUgaW5p
dGlhbGl6YXRpb25Nb2RlRm9yQXNzaWdubWVudENvbnRleHQoQXNzaWdubWVudENvbnRlCiAgICAg
cmV0dXJuIEluaXRpYWxpemF0aW9uTW9kZTo6Tm90SW5pdGlhbGl6YXRpb247CiB9CiAKLS8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBc3NpZ25SZXNvbHZlTm9kZSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBSZWdpc3RlcklEKiBBc3NpZ25SZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IGRzdCkKIHsKICAgICBWYXJpYWJsZSB2YXIgPSBnZW5lcmF0b3IudmFyaWFibGUobV9pZGVudCk7
CkBAIC0yOTczLDYgKzMwNzMsMzcgQEAgUmVnaXN0ZXJJRCogUmVhZE1vZGlmeURvdE5vZGU6OmVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3QKICAgICByZXR1
cm4gcmV0OwogfQogCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2hvcnRDaXJj
dWl0QXNzaWduRG90Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitS
ZWdpc3RlcklEKiBTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFz
ZSwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisK
KyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0ID0gZ2VuZXJhdG9yLmRlc3RpbmF0aW9uRm9y
QXNzaWduUmVzdWx0KGRzdCk7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHN1
YmV4cHJlc3Npb25EaXZvdCgpLCBzdWJleHByZXNzaW9uU3RhcnQoKSwgc3ViZXhwcmVzc2lvbkVu
ZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKSB7CisgICAgICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5zdXJlVGhpcygpOworICAgICAgICBy
ZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihk
c3QpLCBiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1faWRlbnQpOworICAgIH0gZWxzZQor
ICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLnRlbXBEZXN0
aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBtX2lkZW50KTsKKworICAgIFJlZjxMYWJlbD4gc2hv
cnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hvcnRDaXJj
dWl0QXNzaWdubWVudChnZW5lcmF0b3IsIGRzdCwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBz
aG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5v
ZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAgIGdlbmVyYXRvci5l
bWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAg
ICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKSB7CisgICAgICAgIFJlZlB0cjxSZWdpc3RlcklE
PiB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5zdXJlVGhpcygpOworICAgICAgICByZXN1bHQgPSBn
ZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBtX2lkZW50
LCByZXN1bHQuZ2V0KCkpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3Iu
ZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwgbV9pZGVudCwgcmVzdWx0LmdldCgpKTsKKworICAgIGdl
bmVyYXRvci5lbWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAgIGdlbmVyYXRv
ci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkp
OworICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cit9CisKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBc3NpZ25FcnJvck5vZGUgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUmVnaXN0ZXJJRCogQXNzaWduRXJyb3JOb2Rl
OjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCop
CkBAIC0zMDM3LDYgKzMxNjgsMzggQEAgUmVnaXN0ZXJJRCogUmVhZE1vZGlmeUJyYWNrZXROb2Rl
OjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmUKICAgICByZXR1
cm4gdXBkYXRlZFZhbHVlOwogfQogCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
U2hvcnRDaXJjdWl0QXNzaWduQnJhY2tldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworUmVnaXN0ZXJJRCogU2hvcnRDaXJjdWl0QXNzaWduQnJhY2tldE5vZGU6OmVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3Qp
Cit7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JM
ZWZ0SGFuZFNpZGUobV9iYXNlLCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzIHx8IG1fcmlnaHRI
YXNBc3NpZ25tZW50cywgbV9zdWJzY3JpcHQtPmlzUHVyZShnZW5lcmF0b3IpICYmIG1fcmlnaHQt
PmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHkgPSBn
ZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGVGb3JQcm9wZXJ0eShtX3N1YnNjcmlwdCwg
bV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNWYWx1ZTsKKworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBy
ZXN1bHQgPSBnZW5lcmF0b3IuZGVzdGluYXRpb25Gb3JBc3NpZ25SZXN1bHQoZHN0KTsKKworICAg
IGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oc3ViZXhwcmVzc2lvbkRpdm90KCksIHN1YmV4
cHJlc3Npb25TdGFydCgpLCBzdWJleHByZXNzaW9uRW5kKCkpOworICAgIGlmIChtX2Jhc2UtPmlz
U3VwZXJOb2RlKCkpIHsKKyAgICAgICAgdGhpc1ZhbHVlID0gZ2VuZXJhdG9yLmVuc3VyZVRoaXMo
KTsKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0b3IudGVt
cERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgcHJvcGVydHku
Z2V0KCkpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5
VmFsKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgcHJvcGVydHku
Z2V0KCkpOworCisgICAgUmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9IGdlbmVyYXRvci5u
ZXdMYWJlbCgpOworICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgZHN0
LCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKwor
ICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQo
KSwgbV9yaWdodCk7CisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBk
aXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGlmIChtX2Jhc2UtPmlzU3VwZXJOb2RlKCkp
CisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlWYWwoYmFzZS5nZXQoKSwgdGhp
c1ZhbHVlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSwgcmVzdWx0LmdldCgpKTsKKyAgICBlbHNlCisg
ICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlWYWwoYmFzZS5nZXQoKSwgcHJvcGVy
dHkuZ2V0KCksIHJlc3VsdC5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNob3J0
Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3Vs
dC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9y
Lm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gQ29tbWFOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CiBSZWdpc3RlcklEKiBDb21tYU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
QVNUQnVpbGRlci5oCmluZGV4IDQzYjE3MWZiYzRlLi45OGJiY2Q3OTZkMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTE1NDgsNiArMTU0OCw3IEBAIEV4
cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uLCBFeHByCiAKICAgICBpZiAobG9jLT5pc1Jlc29sdmVOb2RlKCkpIHsK
ICAgICAgICAgUmVzb2x2ZU5vZGUqIHJlc29sdmUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSo+
KGxvYyk7CisKICAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpFcXVhbCkgewogICAgICAgICAg
ICAgaWYgKGV4cHItPmlzQmFzZUZ1bmNFeHByTm9kZSgpKSB7CiAgICAgICAgICAgICAgICAgYXV0
byBtZXRhZGF0YSA9IHN0YXRpY19jYXN0PEJhc2VGdW5jRXhwck5vZGUqPihleHByKS0+bWV0YWRh
dGEoKTsKQEAgLTE1NTgsMjEgKzE1NTksNDIgQEAgRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6
Om1ha2VBc3NpZ25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHIKICAg
ICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIHN0YXJ0LCBkaXZvdCwgZW5kKTsK
ICAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wID09
IE9wZXJhdG9yOjpMb2dpY2FsQ29hbGVzY2VFcSB8fCBvcCA9PSBPcGVyYXRvcjo6TG9naWNhbE9y
RXEgfHwgb3AgPT0gT3BlcmF0b3I6OkxvZ2ljYWxBbmRFcSkKKyAgICAgICAgICAgIHJldHVybiBu
ZXcgKG1fcGFyc2VyQXJlbmEpIFNob3J0Q2lyY3VpdEFzc2lnblJlc29sdmVOb2RlKGxvY2F0aW9u
LCByZXNvbHZlLT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMsIGRp
dm90LCBzdGFydCwgZW5kKTsKKwogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBS
ZWFkTW9kaWZ5UmVzb2x2ZU5vZGUobG9jYXRpb24sIHJlc29sdmUtPmlkZW50aWZpZXIoKSwgb3As
IGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwogICAgIH0KKwog
ICAgIGlmIChsb2MtPmlzQnJhY2tldEFjY2Vzc29yTm9kZSgpKSB7CiAgICAgICAgIEJyYWNrZXRB
Y2Nlc3Nvck5vZGUqIGJyYWNrZXQgPSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4o
bG9jKTsKKwogICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkVxdWFsKQogICAgICAgICAgICAg
cmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXNzaWduQnJhY2tldE5vZGUobG9jYXRpb24sIGJy
YWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIGV4cHIsIGxvY0hhc0Fzc2lnbm1l
bnRzLCBleHBySGFzQXNzaWdubWVudHMsIGJyYWNrZXQtPmRpdm90KCksIHN0YXJ0LCBlbmQpOwor
CisgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TG9naWNhbENvYWxlc2NlRXEgfHwgb3AgPT0g
T3BlcmF0b3I6OkxvZ2ljYWxPckVxIHx8IG9wID09IE9wZXJhdG9yOjpMb2dpY2FsQW5kRXEpIHsK
KyAgICAgICAgICAgIGF1dG8qIG5vZGUgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIFNob3J0Q2lyY3Vp
dEFzc2lnbkJyYWNrZXROb2RlKGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1
YnNjcmlwdCgpLCBvcCwgZXhwciwgbG9jSGFzQXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25tZW50
cywgZGl2b3QsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lv
bkluZm8oYnJhY2tldC0+ZGl2b3QoKSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOworICAg
ICAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgICAgIH0KKwogICAgICAgICBSZWFkTW9kaWZ5QnJh
Y2tldE5vZGUqIG5vZGUgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIFJlYWRNb2RpZnlCcmFja2V0Tm9k
ZShsb2NhdGlvbiwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3AsIGV4
cHIsIGxvY0hhc0Fzc2lnbm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwg
ZW5kKTsKICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2b3Qo
KSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOwogICAgICAgICByZXR1cm4gbm9kZTsKICAg
ICB9CisKICAgICBBU1NFUlQobG9jLT5pc0RvdEFjY2Vzc29yTm9kZSgpKTsKICAgICBEb3RBY2Nl
c3Nvck5vZGUqIGRvdCA9IHN0YXRpY19jYXN0PERvdEFjY2Vzc29yTm9kZSo+KGxvYyk7CisKICAg
ICBpZiAob3AgPT0gT3BlcmF0b3I6OkVxdWFsKQogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNl
ckFyZW5hKSBBc3NpZ25Eb3ROb2RlKGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90LT5pZGVudGlm
aWVyKCksIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZG90LT5kaXZvdCgpLCBzdGFydCwgZW5k
KTsKIAorICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TG9naWNhbENvYWxlc2NlRXEgfHwgb3AgPT0g
T3BlcmF0b3I6OkxvZ2ljYWxPckVxIHx8IG9wID09IE9wZXJhdG9yOjpMb2dpY2FsQW5kRXEpIHsK
KyAgICAgICAgYXV0byogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0QXNz
aWduRG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBvcCwg
ZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CisgICAgICAgIG5v
ZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5kaXZvdEVuZCgpLm9m
ZnNldCk7CisgICAgICAgIHJldHVybiBub2RlOworICAgIH0KKwogICAgIFJlYWRNb2RpZnlEb3RO
b2RlKiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBSZWFkTW9kaWZ5RG90Tm9kZShsb2NhdGlv
biwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2ln
bm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbklu
Zm8oZG90LT5kaXZvdCgpLCBkb3QtPmRpdm90RW5kKCkub2Zmc2V0KTsKICAgICByZXR1cm4gbm9k
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKaW5kZXggMWZmYzZlYzIwYzEu
LjJmYjcxN2FjZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xl
eGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAt
MjA5Miw2ICsyMDkyLDExIEBAIHN0YXJ0OgogICAgICAgICBzaGlmdCgpOwogICAgICAgICBpZiAo
bV9jdXJyZW50ID09ICcmJykgewogICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlm
IChVTkxJS0VMWShPcHRpb25zOjp1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycygpICYmIG1f
Y3VycmVudCA9PSAnPScpKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAg
ICAgICB0b2tlbiA9IExPR0lDQUxBTkRFUVVBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHRva2VuID0gQU5EOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KQEAgLTIxMjksNiArMjEzNCwxMSBAQCBzdGFydDoKICAgICAgICAgfQogICAg
ICAgICBpZiAobV9jdXJyZW50ID09ICd8JykgewogICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAg
ICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9y
cygpICYmIG1fY3VycmVudCA9PSAnPScpKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAg
ICAgICAgICAgICAgICB0b2tlbiA9IExPR0lDQUxPUkVRVUFMOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBPUjsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC0yMTY1LDYgKzIxNzUsMTEgQEAgc3RhcnQ6CiAgICAgICAg
IHNoaWZ0KCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJz8nKSB7CiAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxvZ2ljYWxBc3Np
Z25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gTE9HSUNBTENPQUxFU0NFRVFVQUw7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tl
biA9IENPQUxFU0NFOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggZmQ5N2EwY2E5
MzUuLmIwMzI1ZGMxNzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVDb25zdHJ1Y3RvcnMuaApAQCAtNzE4LDYgKzcxOCwxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICB7CiAgICAgfQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdEFzc2lnblJlc29sdmVOb2RlOjpT
aG9ydENpcmN1aXRBc3NpZ25SZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0
aW9uLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhwcmVzc2lvbk5v
ZGUqICByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisg
ICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90
RW5kKQorICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkK
KyAgICAgICAgLCBtX29wZXJhdG9yKG9wZXIpCisgICAgICAgICwgbV9yaWdodEhhc0Fzc2lnbm1l
bnRzKHJpZ2h0SGFzQXNzaWdubWVudHMpCisgICAgeworICAgIH0KKwogICAgIGlubGluZSBBc3Np
Z25SZXNvbHZlTm9kZTo6QXNzaWduUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBs
b2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwg
QXNzaWdubWVudENvbnRleHQgYXNzaWdubWVudENvbnRleHQpCiAgICAgICAgIDogRXhwcmVzc2lv
bk5vZGUobG9jYXRpb24pCiAgICAgICAgICwgbV9pZGVudChpZGVudCkKQEAgLTczOSw2ICs3NDks
MTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENp
cmN1aXRBc3NpZ25CcmFja2V0Tm9kZTo6U2hvcnRDaXJjdWl0QXNzaWduQnJhY2tldE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJl
c3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yIG9wZXIsIEV4cHJlc3Npb25Ob2RlKiByaWdo
dCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRz
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVz
c2lvbk5vZGUobG9jYXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEo
ZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKQorICAgICAgICAsIG1fYmFzZShiYXNlKQorICAg
ICAgICAsIG1fc3Vic2NyaXB0KHN1YnNjcmlwdCkKKyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQor
ICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3N1YnNjcmlwdEhhc0Fzc2ln
bm1lbnRzKHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzKQorICAgICAgICAsIG1fcmlnaHRIYXNBc3Np
Z25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUg
QXNzaWduQnJhY2tldE5vZGU6OkFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2Ny
aXB0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMs
IGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90RW5kKQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIFRo
cm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKQEAgLTc3
MSw2ICs3OTMsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGlu
ZSBTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlOjpTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25z
dCBJZGVudGlmaWVyJiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdEVuZCkKKyAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBU
aHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisg
ICAgICAgICwgbV9iYXNlKGJhc2UpCisgICAgICAgICwgbV9pZGVudChpZGVudCkKKyAgICAgICAg
LCBtX3JpZ2h0KHJpZ2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBt
X3JpZ2h0SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7CisgICAgfQor
CiAgICAgaW5saW5lIEFzc2lnbkVycm9yTm9kZTo6QXNzaWduRXJyb3JOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCkKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBUaHJvd2Fi
bGVFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggMjJkZjVhZTRkMDguLjIwNGM0YzhkODFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC02OCw2ICs2OCw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBCaXRPckVxLAogICAgICAgICBNb2RFcSwKICAgICAgICAgUG93RXEs
CisgICAgICAgIExvZ2ljYWxDb2FsZXNjZUVxLAorICAgICAgICBMb2dpY2FsT3JFcSwKKyAgICAg
ICAgTG9naWNhbEFuZEVxLAogICAgICAgICBMU2hpZnQsCiAgICAgICAgIFJTaGlmdCwKICAgICAg
ICAgVVJTaGlmdApAQCAtMTM4OSw2ICsxMzkyLDE5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50czsKICAgICB9OwogCisgICAgY2xhc3MgU2hvcnRD
aXJjdWl0QXNzaWduUmVzb2x2ZU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1
YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBTaG9y
dENpcmN1aXRBc3NpZ25SZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJ
ZGVudGlmaWVyJiwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiAgcmlnaHQsIGJvb2wgcmlnaHRI
YXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKwor
ICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAgY29uc3QgSWRl
bnRpZmllciYgbV9pZGVudDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CisgICAg
ICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1l
bnRzOworICAgIH07CisKICAgICBjbGFzcyBBc3NpZ25SZXNvbHZlTm9kZSBmaW5hbCA6IHB1Ymxp
YyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIEFzc2lnblJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYs
IGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIEFzc2lnbm1lbnRDb250
ZXh0KTsKQEAgLTE0MTgsNiArMTQzNCwyMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9v
bCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOwogICAgIH07CiAKKyAgICBjbGFzcyBTaG9ydENp
cmN1aXRBc3NpZ25CcmFja2V0Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVi
bGljIFRocm93YWJsZVN1YkV4cHJlc3Npb25EYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNo
b3J0Q2lyY3VpdEFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJl
c3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBPcGVyYXRvciwgRXhw
cmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJp
Z2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7
CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworCisgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBtX2Jhc2U7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsK
KyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3Bl
cmF0b3I7CisgICAgICAgIGJvb2wgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyA6IDE7CisgICAg
ICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKKyAgICB9OworCiAgICAgY2xhc3Mg
QXNzaWduQnJhY2tldE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBU
aHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBBc3NpZ25CcmFj
a2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhw
cmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNj
cmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CkBAIC0xNDU5LDYgKzE0OTAsMjAgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKICAgICB9
OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0QXNzaWduRG90Tm9kZSBmaW5hbCA6IHB1YmxpYyBF
eHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZVN1YkV4cHJlc3Npb25EYXRhIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIFNob3J0Q2lyY3VpdEFzc2lnbkRvdE5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRv
ciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRlOgorICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IDApIG92ZXJyaWRlOworCisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CisgICAg
ICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBt
X3JpZ2h0OworICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBib29sIG1fcmln
aHRIYXNBc3NpZ25tZW50cyA6IDE7CisgICAgfTsKKwogICAgIGNsYXNzIEFzc2lnbkVycm9yTm9k
ZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Np
b25EYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2lnbkVycm9yTm9kZShjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IDczZTgzZjNhNDIwLi4yZGQ2
MGJmNWExNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMzgz
Myw3ICszODMzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVz
c2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KIAogICAgIGZhaWxJZkZhbHNl
KGxocywgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIik7CiAgICAgaWYgKGluaXRpYWxOb25MSFND
b3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAgICAgIGlmIChtX3Rva2Vu
Lm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBCSVRPUkVRVUFMKQorICAgICAg
ICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gTE9HSUNB
TEFOREVRVUFMKQogICAgICAgICAgICAgc2VtYW50aWNGYWlsKCJMZWZ0IGhhbmQgc2lkZSBvZiBv
cGVyYXRvciAnIiwgZ2V0VG9rZW4oKSwgIicgbXVzdCBiZSBhIHJlZmVyZW5jZSIpOwogCiAgICAg
ICAgIHJldHVybiBsaHM7CkBAIC0zODU3LDYgKzM4NTcsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2ln
bm1lbgogICAgICAgICBjYXNlIEJJVE9SRVFVQUw6IG9wID0gT3BlcmF0b3I6OkJpdE9yRXE7IGJy
ZWFrOwogICAgICAgICBjYXNlIE1PREVRVUFMOiBvcCA9IE9wZXJhdG9yOjpNb2RFcTsgYnJlYWs7
CiAgICAgICAgIGNhc2UgUE9XRVFVQUw6IG9wID0gT3BlcmF0b3I6OlBvd0VxOyBicmVhazsKKyAg
ICAgICAgY2FzZSBMT0dJQ0FMQ09BTEVTQ0VFUVVBTDogb3AgPSBPcGVyYXRvcjo6TG9naWNhbENv
YWxlc2NlRXE7IGJyZWFrOworICAgICAgICBjYXNlIExPR0lDQUxPUkVRVUFMOiBvcCA9IE9wZXJh
dG9yOjpMb2dpY2FsT3JFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgTE9HSUNBTEFOREVRVUFMOiBv
cCA9IE9wZXJhdG9yOjpMb2dpY2FsQW5kRXE7IGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgIH0KQEAgLTM4NzYsNyArMzg3OSw3IEBAIHRlbXBs
YXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlw
ZT46OnBhcnNlQXNzaWdubWVuCiAgICAgICAgIGxocyA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Np
b24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKGxocywgIkNhbm5vdCBwYXJzZSB0aGUg
cmlnaHQgaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiIpOwogICAgICAgICBp
ZiAoaW5pdGlhbE5vbkxIU0NvdW50ICE9IG1fcGFyc2VyU3RhdGUubm9uTEhTQ291bnQpIHsKLSAg
ICAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8
PSBCSVRPUkVRVUFMKQorICAgICAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYm
IG1fdG9rZW4ubV90eXBlIDw9IExPR0lDQUxBTkRFUVVBTCkKICAgICAgICAgICAgICAgICBzZW1h
bnRpY0ZhaWwoIkxlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAiJyBt
dXN0IGJlIGEgcmVmZXJlbmNlIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggNDgxODFhZTBk
NGIuLmFkNjAxYmJkYzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlclRva2Vucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
VG9rZW5zLmgKQEAgLTEzNCw2ICsxMzQsOSBAQCBlbnVtIEpTVG9rZW5UeXBlIHsKICAgICBCSVRB
TkRFUVVBTCwKICAgICBCSVRYT1JFUVVBTCwKICAgICBCSVRPUkVRVUFMLAorICAgIExPR0lDQUxD
T0FMRVNDRUVRVUFMLAorICAgIExPR0lDQUxPUkVRVUFMLAorICAgIExPR0lDQUxBTkRFUVVBTCwK
ICAgICBET1RET1RET1QsCiAgICAgQVJST1dGVU5DVElPTiwKICAgICBRVUVTVElPTkRPVCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IGI4NWI4Mjg4
ZWRmLi42ZWQ0MmQ0MDcyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zTGlzdC5oCkBAIC01MDAsNiArNTAwLDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNz
ZW1ibHlTdHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2KEJvb2wsIGZvcmNlT1NSRXhpdFRvTExJ
bnQsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSBhbHdheXMgZXhpdCB0byB0aGUgTExJbnQu
IElmIGZhbHNlLCB3ZSBleGl0IHRvIHdoYXRldmVyIGlzIG1vc3QgY29udmVuaWVudC4iKSBcCiAg
ICAgdihVbnNpZ25lZCwgZ2V0QnlWYWxJQ01heE51bWJlck9mSWRlbnRpZmllcnMsIDQsIE5vcm1h
bCwgIk51bWJlciBvZiBpZGVudGlmaWVycyB3ZSBzZWUgaW4gdGhlIExMSW50IHRoYXQgY291bGQg
Y2F1c2UgdXMgdG8gYmFpbCBvbiBnZW5lcmF0aW5nIGFuIElDIGZvciBnZXRfYnlfdmFsLiIpIFwK
ICAgICB2KEJvb2wsIHVzZVB1YmxpY0NsYXNzRmllbGRzLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVl
LCB0aGUgcGFyc2VyIHdpbGwgdW5kZXJzdGFuZCBwdWJsaWMgZGF0YSBmaWVsZHMgaW5zaWRlIGNs
YXNzZXMuIikgXAorICAgIHYoQm9vbCwgdXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMsIGZh
bHNlLCBOb3JtYWwsICJFbmFibGUgc3VwcG9ydCBmb3IgXD9cPz0sIHx8PSwgYW5kICYmPSBsb2dp
Y2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzLiIpIFwKIAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7
CiAgICAgU2FtZU9wdGlvbiwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394873</attachid>
            <date>2020-03-29 12:36:02 -0700</date>
            <delta_ts>2020-03-31 00:31:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200329133601.patch</filename>
            <type>text/plain</type>
            <size>92065</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGY5NTUyMTdjYTdjOTUwYzg1Nzg0NWI4N2IyYTY1
MDA2YTk0OWViM2IuLmEwMWJiMTc2YzdmMDNiMTBlMGI1NjUxZTRkNzhmZGY1MzlmOTRmOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTAzLTI4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBiZWluZyBwcm9wb3NlZCBmb3IgU3RhZ2UgMyBh
dAorICAgICAgICB0aGUgNzV0aCBUQzM5IG1lZXRpbmcgKE1hcmNoLUFwcmlsIDIwMjApLiBJdCBp
bnRyb2R1Y2VzIHRocmVlIG5ldyBhc3NpZ25tZW50IG9wZXJhdG9ycyB3aGljaAorICAgICAgICB3
aWxsIG9ubHkgc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGUgcmhzIGluIHRoZSBsaHMgaWYgdGhlIGxo
cyBtZWV0cyB0aGUgY29uZGl0aW9uOgorICAgICAgICAgLSBgPz89YCwgZm9yIGlmIHRoZSBsaHMg
aXMgbnVsbGlzaCAoYG51bGxgIG9yIGB1bmRlZmluZWRgKQorICAgICAgICAgLSBgfHw9YCwgZm9y
IGlmIHRoZSBsaHMgaXMgZmFsc3kKKyAgICAgICAgIC0gYCYmPWAsIGZvciBpZiB0aGUgbGhzIGlz
IHRydXRoeQorCisgICAgICAgIFRoaXMgc2hvcnQgY2lyY3VpdGluZyBjYW4gYmUgYmVuZWZpY2lh
bCBhcyBpdCBjYW4gYXZvaWQgYSByZWR1bmRhbnQgc3RvcmUgd2hlbiB1c2VkIGluIHRoZQorICAg
ICAgICBjb21tb24gSmF2YVNjcmlwdCBwcm9ncmFtbWluZyBwYXR0ZXJuIG9mICJkZWZhdWx0aW5n
IiBhIHBhcmFtZXRlci4KKworICAgICAgICBgYGBqcworICAgICAgICAgICAgZnVuY3Rpb24gZm9v
KHgpIHsKKyAgICAgICAgICAgICAgICB4ID0geCB8fCA0MjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgYGBgCisKKyAgICAgICAgSWYgYHhgIGlzIGEgdHJ1dGh5IHZhbHVlLCBpdCB3b3VsZCByZXN1
bHQgaW4gdGhlIHJocyBgeGAgYmVpbmcgc3RvcmVkIGJhY2sgaW50byB0aGUgbGhzIGB4YC4KKyAg
ICAgICAgSW4gc29tZSBzaXR1YXRpb25zLCB0aGlzIGNhbiBoYXZlIG5lZ2F0aXZlIHVuaW50ZW5k
ZWQgc2lkZS1lZmZlY3RzLCBzdWNoIGFzIGZvciBgaW5uZXJIVE1MYC4KKworICAgICAgICBMb2dp
Y2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzLCBob3dldmVyLCBhcmUgZGVmaW5lZCBzdWNoIHRoYXQg
dGhleSBvbmx5IHN0b3JlIGlmIHRoZSByaHMgaXMKKyAgICAgICAgdG8gYWN0dWFsbHkgYmUgbmVl
ZGVkL3VzZWQsIHNraXBwaW5nIHRoZSByZWR1bmRhbnQgc3RvcmUgYW5kIHNpbXBseSByZXR1cm5p
bmcgbGhzIG90aGVyd2lzZS4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tlbnMuaDoKKyAg
ICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4V2l0
aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3Bw
OgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW50RXhwcmVz
c2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpB
U1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6Cisg
ICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0QXNzaWduUmVzb2x2ZU5vZGU6OlNob3J0Q2lyY3VpdEFzc2lnblJlc29sdmVOb2RlKTog
QWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdEFzc2lnbkJyYWNrZXROb2RlOjpTaG9y
dENpcmN1aXRBc3NpZ25CcmFja2V0Tm9kZSk6IEFkZGVkLgorICAgICAgICAoSlNDOjpTaG9ydENp
cmN1aXRBc3NpZ25Eb3ROb2RlOjpTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlKTogQWRkZWQuCisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVt
aXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2ly
Y3VpdEFzc2lnblJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0QXNzaWduRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAg
ICAgIChKU0M6OlNob3J0Q2lyY3VpdEFzc2lnbkJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBB
ZGRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEg
YHVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0
aGlzIGZlYXR1cmUuCisKIDIwMjAtMDMtMjggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHN1cHBvcnQgZWRpdGluZyBjb29raWUga2V5
L3ZhbHVlcyBmcm9tIGluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDY0MGIyNDk3NTVlMTBlY2RkOWE4M2I5
ZTE0YjA5N2FiMzlmZDA5NGYuLjg2OGM5YjFhZmI4ZDcyNDA0MGIyMTNkMGViYmY3ZjVjZmJmNWFl
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKQEAgLTI4NTYsNiArMjg1NiwxMDggQEAgUmVnaXN0ZXJJRCogUmVhZE1vZGlm
eVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmUKICAgICByZXR1cm4gcmV0dXJuUmVzdWx0OwogfQogCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0QXNzaWduUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gRklYTUU6IHNob3VsZCB0aGlzIGJlIG1vdmVkIHRv
IGJlIGEgbWV0aG9kIG9uIEJ5dGVjb2RlR2VuZXJhdG9yPworc3RhdGljIEFMV0FZU19JTkxJTkUg
dm9pZCBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJh
dG9yLCBSZWdpc3RlcklEKiB2YWx1ZSwgT3BlcmF0b3Igb3BlciwgTGFiZWwmIHNob3J0Q2lyY3Vp
dExhYmVsKQoreworICAgIHN3aXRjaCAob3BlcikgeworICAgIGNhc2UgT3BlcmF0b3I6OkNvYWxl
c2NlRXE6CisgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElmRmFsc2UoZ2VuZXJhdG9yLmVtaXRJ
c1VuZGVmaW5lZE9yTnVsbChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHZhbHVlKSwgc2hvcnRD
aXJjdWl0TGFiZWwpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgT3BlcmF0b3I6Ok9yRXE6
CisgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElmVHJ1ZSh2YWx1ZSwgc2hvcnRDaXJjdWl0TGFi
ZWwpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgT3BlcmF0b3I6OkFuZEVxOgorICAgICAg
ICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKHZhbHVlLCBzaG9ydENpcmN1aXRMYWJlbCk7Cisg
ICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wKHNob3J0Q2lyY3VpdExhYmVs
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRB
c3NpZ25SZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0
b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBKU1RleHRQb3NpdGlvbiBuZXdEaXZvdCA9IGRp
dm90U3RhcnQoKSArIG1faWRlbnQubGVuZ3RoKCk7CisKKyAgICBWYXJpYWJsZSB2YXIgPSBnZW5l
cmF0b3IudmFyaWFibGUobV9pZGVudCk7CisgICAgaWYgKFJlZlB0cjxSZWdpc3RlcklEPiBsb2Nh
bCA9IHZhci5sb2NhbCgpKSB7CisgICAgICAgIGdlbmVyYXRvci5lbWl0VERaQ2hlY2tJZk5lY2Vz
c2FyeSh2YXIsIGxvY2FsLmdldCgpLCBudWxscHRyKTsKKworICAgICAgICBpZiAodmFyLmlzUmVh
ZE9ubHkoKSkgeworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRSZWFkT25seUV4Y2VwdGlvbklm
TmVlZGVkKHZhcik7CisKKyAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBn
ZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpOworCisgICAgICAgICAgICBSZWY8TGFiZWw+
IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgICAgICAgICBl
bWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIGxvY2FsLmdldCgpLCBtX29wZXJh
dG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGdl
bmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisK
KyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkp
OworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRp
dm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLm1v
dmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGdlbmVyYXRv
ci5sZWZ0SGFuZFNpZGVOZWVkc0NvcHkobV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX3JpZ2h0LT5p
c1B1cmUoZ2VuZXJhdG9yKSkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1
bHQgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgICAgICAgICBnZW5lcmF0b3IubW92
ZShyZXN1bHQuZ2V0KCksIGxvY2FsLmdldCgpKTsKKworICAgICAgICAgICAgUmVmPExhYmVsPiBz
aG9ydENpcmN1aXRMYWJlbCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgICAgICAgICAgZW1p
dFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0
b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgICAgICAgICAgcmVzdWx0ID0gZ2Vu
ZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAg
ICAgICAgICAgIGdlbmVyYXRvci5tb3ZlKGxvY2FsLmdldCgpLCByZXN1bHQuZ2V0KCkpOworCisg
ICAgICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsK
KyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0LmdldCgpLCBkaXZv
dFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3Zl
KGRzdCwgcmVzdWx0LmdldCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiByZXN1bHQgPSBsb2NhbDsKKworICAgICAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExh
YmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgICAgIGVtaXRTaG9ydENpcmN1aXRBc3Np
Z25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRM
YWJlbC5nZXQoKSk7CisKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWls
UG9zaXRpb24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKworICAgICAgICBnZW5lcmF0b3IuZW1p
dExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQ
cm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAg
ICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgfQorCisg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhuZXdEaXZvdCwgZGl2b3RTdGFydCgpLCBu
ZXdEaXZvdCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRS
ZXNvbHZlU2NvcGUobnVsbHB0ciwgdmFyKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUg
PSBnZW5lcmF0b3IuZW1pdEdldEZyb21TY29wZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHNj
b3BlLmdldCgpLCB2YXIsIFRocm93SWZOb3RGb3VuZCk7CisgICAgZ2VuZXJhdG9yLmVtaXRURFpD
aGVja0lmTmVjZXNzYXJ5KHZhciwgdmFsdWUuZ2V0KCksIG51bGxwdHIpOworICAgIGlmICh2YXIu
aXNSZWFkT25seSgpKSB7CisgICAgICAgIGJvb2wgdGhyZXdFeGNlcHRpb24gPSBnZW5lcmF0b3Iu
ZW1pdFJlYWRPbmx5RXhjZXB0aW9uSWZOZWVkZWQodmFyKTsKKyAgICAgICAgaWYgKHRocmV3RXhj
ZXB0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmdldCgpOworICAgIH0KKworICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSB2YWx1ZTsKKworICAgIFJlZjxMYWJlbD4gc2hvcnRD
aXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hvcnRDaXJjdWl0
QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJj
dWl0TGFiZWwuZ2V0KCkpOworCisgICAgaWYgKCF2YXIuaXNSZWFkT25seSgpKSB7CisgICAgICAg
IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwg
bV9yaWdodCk7CisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0VG9TY29wZShzY29w
ZS5nZXQoKSwgdmFyLCByZXN1bHQuZ2V0KCksIFRocm93SWZOb3RGb3VuZCwgSW5pdGlhbGl6YXRp
b25Nb2RlOjpOb3RJbml0aWFsaXphdGlvbik7CisgICAgfQorCisgICAgZ2VuZXJhdG9yLmVtaXRM
YWJlbChzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxl
VHlwZShyZXN1bHQuZ2V0KCksIHZhciwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBy
ZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXNzaWduUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogc3RhdGljIEluaXRpYWxpemF0aW9uTW9kZSBpbml0aWFs
aXphdGlvbk1vZGVGb3JBc3NpZ25tZW50Q29udGV4dChBc3NpZ25tZW50Q29udGV4dCBhc3NpZ25t
ZW50Q29udGV4dCkKIHsKICAgICBzd2l0Y2ggKGFzc2lnbm1lbnRDb250ZXh0KSB7CkBAIC0yODcx
LDggKzI5NzMsNiBAQCBzdGF0aWMgSW5pdGlhbGl6YXRpb25Nb2RlIGluaXRpYWxpemF0aW9uTW9k
ZUZvckFzc2lnbm1lbnRDb250ZXh0KEFzc2lnbm1lbnRDb250ZQogICAgIHJldHVybiBJbml0aWFs
aXphdGlvbk1vZGU6Ok5vdEluaXRpYWxpemF0aW9uOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gQXNzaWduUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQogUmVnaXN0ZXJJRCogQXNzaWduUmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAg
VmFyaWFibGUgdmFyID0gZ2VuZXJhdG9yLnZhcmlhYmxlKG1faWRlbnQpOwpAQCAtMjk3Myw2ICsz
MDczLDM3IEBAIFJlZ2lzdGVySUQqIFJlYWRNb2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0CiAgICAgcmV0dXJuIHJldDsKIH0KIAor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNob3J0Q2lyY3VpdEFzc2lnbkRvdE5v
ZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogU2hv
cnRDaXJjdWl0QXNzaWduRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBn
ZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFz
ZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2Jhc2UsIG1fcmlnaHRIYXNB
c3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOworCisgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5kZXN0aW5hdGlvbkZvckFzc2lnblJlc3VsdChk
c3QpOworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2
b3QoKSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7CisgICAgaWYg
KG1fYmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGhp
c1ZhbHVlID0gZ2VuZXJhdG9yLmVuc3VyZVRoaXMoKTsKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJh
dG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQo
KSwgdGhpc1ZhbHVlLmdldCgpLCBtX2lkZW50KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVzdWx0
ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwg
YmFzZS5nZXQoKSwgbV9pZGVudCk7CisKKyAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVs
ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQo
Z2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdl
dCgpKTsKKworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJl
c3VsdC5nZXQoKSwgbV9yaWdodCk7CisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhk
aXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGlmIChtX2Jhc2UtPmlzU3Vw
ZXJOb2RlKCkpIHsKKyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNWYWx1ZSA9IGdlbmVy
YXRvci5lbnN1cmVUaGlzKCk7CisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlJ
ZChiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1faWRlbnQsIHJlc3VsdC5nZXQoKSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdl
dCgpLCBtX2lkZW50LCByZXN1bHQuZ2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChz
aG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShy
ZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgcmV0dXJuIGdlbmVy
YXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEFzc2lnbkVycm9yTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCiBSZWdpc3RlcklEKiBBc3NpZ25FcnJvck5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikKQEAgLTMwMzcsNiArMzE2OCwz
OCBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogICAgIHJldHVybiB1cGRhdGVkVmFsdWU7CiB9
CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRBc3NpZ25C
cmFja2V0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3Rl
cklEKiBTaG9ydENpcmN1aXRBc3NpZ25CcmFja2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2Jhc2Us
IG1fc3Vic2NyaXB0SGFzQXNzaWdubWVudHMgfHwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX3N1
YnNjcmlwdC0+aXNQdXJlKGdlbmVyYXRvcikgJiYgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikp
OworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZv
ckxlZnRIYW5kU2lkZUZvclByb3BlcnR5KG1fc3Vic2NyaXB0LCBtX3JpZ2h0SGFzQXNzaWdubWVu
dHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
dGhpc1ZhbHVlOworCisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5k
ZXN0aW5hdGlvbkZvckFzc2lnblJlc3VsdChkc3QpOworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHBy
ZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3QoKSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1
YmV4cHJlc3Npb25FbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAg
ICAgICB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5zdXJlVGhpcygpOworICAgICAgICByZXN1bHQg
PSBnZW5lcmF0b3IuZW1pdEdldEJ5VmFsKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwg
YmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSk7CisgICAgfSBlbHNl
CisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlWYWwoZ2VuZXJhdG9yLnRlbXBE
ZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSk7CisKKyAgICBSZWY8
TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgZW1p
dFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0
b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5l
bWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisgICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkp
OworICAgIGlmIChtX2Jhc2UtPmlzU3VwZXJOb2RlKCkpCisgICAgICAgIHJlc3VsdCA9IGdlbmVy
YXRvci5lbWl0UHV0QnlWYWwoYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBwcm9wZXJ0eS5n
ZXQoKSwgcmVzdWx0LmdldCgpKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRv
ci5lbWl0UHV0QnlWYWwoYmFzZS5nZXQoKSwgcHJvcGVydHkuZ2V0KCksIHJlc3VsdC5nZXQoKSk7
CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAg
ICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBk
aXZvdEVuZCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkp
OworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29tbWFOb2RlIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZWdpc3RlcklEKiBDb21tYU5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBk
c3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDQzYjE3
MWZiYzRlN2IzNTlkYmU2ODI3ZmE1ZGM1Yjg1YTg5ZWJmYzAuLmMxZWMzNDI5MTliN2ZhZDQwMGY2
Y2UyOTc4NWMxMWFlNWFiNDNiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNU
QnVpbGRlci5oCkBAIC0xNTQ4LDYgKzE1NDgsNyBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRl
cjo6bWFrZUFzc2lnbk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcgog
CiAgICAgaWYgKGxvYy0+aXNSZXNvbHZlTm9kZSgpKSB7CiAgICAgICAgIFJlc29sdmVOb2RlKiBy
ZXNvbHZlID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPihsb2MpOworCiAgICAgICAgIGlmIChv
cCA9PSBPcGVyYXRvcjo6RXF1YWwpIHsKICAgICAgICAgICAgIGlmIChleHByLT5pc0Jhc2VGdW5j
RXhwck5vZGUoKSkgewogICAgICAgICAgICAgICAgIGF1dG8gbWV0YWRhdGEgPSBzdGF0aWNfY2Fz
dDxCYXNlRnVuY0V4cHJOb2RlKj4oZXhwciktPm1ldGFkYXRhKCk7CkBAIC0xNTU4LDIxICsxNTU5
LDQyIEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByCiAgICAgICAgICAgICBzZXRFeGNlcHRpb25M
b2NhdGlvbihub2RlLCBzdGFydCwgZGl2b3QsIGVuZCk7CiAgICAgICAgICAgICByZXR1cm4gbm9k
ZTsKICAgICAgICAgfQorCisgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6Q29hbGVzY2VFcSB8
fCBvcCA9PSBPcGVyYXRvcjo6T3JFcSB8fCBvcCA9PSBPcGVyYXRvcjo6QW5kRXEpCisgICAgICAg
ICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRBc3NpZ25SZXNvbHZl
Tm9kZShsb2NhdGlvbiwgcmVzb2x2ZS0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fz
c2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CisKICAgICAgICAgcmV0dXJuIG5ldyAobV9w
YXJzZXJBcmVuYSkgUmVhZE1vZGlmeVJlc29sdmVOb2RlKGxvY2F0aW9uLCByZXNvbHZlLT5pZGVu
dGlmaWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5k
KTsKICAgICB9CisKICAgICBpZiAobG9jLT5pc0JyYWNrZXRBY2Nlc3Nvck5vZGUoKSkgewogICAg
ICAgICBCcmFja2V0QWNjZXNzb3JOb2RlKiBicmFja2V0ID0gc3RhdGljX2Nhc3Q8QnJhY2tldEFj
Y2Vzc29yTm9kZSo+KGxvYyk7CisKICAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpFcXVhbCkK
ICAgICAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIEFzc2lnbkJyYWNrZXROb2Rl
KGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBleHByLCBs
b2NIYXNBc3NpZ25tZW50cywgZXhwckhhc0Fzc2lnbm1lbnRzLCBicmFja2V0LT5kaXZvdCgpLCBz
dGFydCwgZW5kKTsKKworICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkNvYWxlc2NlRXEgfHwg
b3AgPT0gT3BlcmF0b3I6Ok9yRXEgfHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVxKSB7CisgICAgICAg
ICAgICBhdXRvKiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRBc3NpZ25C
cmFja2V0Tm9kZShsb2NhdGlvbiwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQo
KSwgb3AsIGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90
LCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGJy
YWNrZXQtPmRpdm90KCksIGJyYWNrZXQtPmRpdm90RW5kKCkub2Zmc2V0KTsKKyAgICAgICAgICAg
IHJldHVybiBub2RlOworICAgICAgICB9CisKICAgICAgICAgUmVhZE1vZGlmeUJyYWNrZXROb2Rl
KiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBSZWFkTW9kaWZ5QnJhY2tldE5vZGUobG9jYXRp
b24sIGJyYWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIG9wLCBleHByLCBsb2NI
YXNBc3NpZ25tZW50cywgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAg
ICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGJyYWNrZXQtPmRpdm90KCksIGJyYWNr
ZXQtPmRpdm90RW5kKCkub2Zmc2V0KTsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQorCiAg
ICAgQVNTRVJUKGxvYy0+aXNEb3RBY2Nlc3Nvck5vZGUoKSk7CiAgICAgRG90QWNjZXNzb3JOb2Rl
KiBkb3QgPSBzdGF0aWNfY2FzdDxEb3RBY2Nlc3Nvck5vZGUqPihsb2MpOworCiAgICAgaWYgKG9w
ID09IE9wZXJhdG9yOjpFcXVhbCkKICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkg
QXNzaWduRG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBl
eHByLCBleHBySGFzQXNzaWdubWVudHMsIGRvdC0+ZGl2b3QoKSwgc3RhcnQsIGVuZCk7CiAKKyAg
ICBpZiAob3AgPT0gT3BlcmF0b3I6OkNvYWxlc2NlRXEgfHwgb3AgPT0gT3BlcmF0b3I6Ok9yRXEg
fHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVxKSB7CisgICAgICAgIGF1dG8qIG5vZGUgPSBuZXcgKG1f
cGFyc2VyQXJlbmEpIFNob3J0Q2lyY3VpdEFzc2lnbkRvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFz
ZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2
b3QsIHN0YXJ0LCBlbmQpOworICAgICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhkb3Qt
PmRpdm90KCksIGRvdC0+ZGl2b3RFbmQoKS5vZmZzZXQpOworICAgICAgICByZXR1cm4gbm9kZTsK
KyAgICB9CisKICAgICBSZWFkTW9kaWZ5RG90Tm9kZSogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVu
YSkgUmVhZE1vZGlmeURvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50aWZp
ZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwog
ICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5kaXZvdEVu
ZCgpLm9mZnNldCk7CiAgICAgcmV0dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
TGV4ZXIuY3BwCmluZGV4IDFmZmM2ZWMyMGMxODA4N2M5NmQxODZhMDI2Y2Y4YTMyOTI2NTM4ZTgu
LmE0ZmZjYzc0Yzc0NGE3NWVlZTNmMjczNjBmNzg4MWU2Yjk4NzUwNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC0yMDkyLDYgKzIwOTIsMTEgQEAgc3RhcnQ6CiAg
ICAgICAgIHNoaWZ0KCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJyYnKSB7CiAgICAgICAg
ICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxvZ2lj
YWxBc3NpZ25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAgICAg
ICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gQU5ERVFVQUw7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tlbiA9IEFO
RDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMTI5LDYgKzIxMzQsMTEgQEAg
c3RhcnQ6CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnfCcpIHsKICAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlTG9n
aWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0nKSkgeworICAgICAg
ICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBPUkVRVUFMOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBP
UjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMTY1LDYgKzIxNzUsMTEgQEAg
c3RhcnQ6CiAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJz8nKSB7
CiAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6
OnVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsK
KyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gQ09BTEVT
Q0VFUVVBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHRva2VuID0gQ09BTEVTQ0U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCBm
ZDk3YTBjYTkzNWU3ZTU3NzhhMDkzODUwMjJmOTg2NzgwMTRhMzI0Li5iMDMyNWRjMTc3Mzc4ZmFh
MDA1YzNiMWYyZDdjYjEyOTczOWRhMmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaApAQCAtNzE4LDYgKzcxOCwxNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICB7CiAgICAgfQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdEFzc2lnblJlc29s
dmVOb2RlOjpTaG9ydENpcmN1aXRBc3NpZ25SZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhw
cmVzc2lvbk5vZGUqICByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9j
YXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3Rh
cnQsIGRpdm90RW5kKQorICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdo
dChyaWdodCkKKyAgICAgICAgLCBtX29wZXJhdG9yKG9wZXIpCisgICAgICAgICwgbV9yaWdodEhh
c0Fzc2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdubWVudHMpCisgICAgeworICAgIH0KKwogICAgIGlu
bGluZSBBc3NpZ25SZXNvbHZlTm9kZTo6QXNzaWduUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEV4cHJlc3Npb25Ob2Rl
KiByaWdodCwgQXNzaWdubWVudENvbnRleHQgYXNzaWdubWVudENvbnRleHQpCiAgICAgICAgIDog
RXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCiAgICAgICAgICwgbV9pZGVudChpZGVudCkKQEAgLTcz
OSw2ICs3NDksMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGlu
ZSBTaG9ydENpcmN1aXRBc3NpZ25CcmFja2V0Tm9kZTo6U2hvcnRDaXJjdWl0QXNzaWduQnJhY2tl
dE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJh
c2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yIG9wZXIsIEV4cHJlc3Npb25O
b2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fz
c2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAg
IDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlU3ViRXhwcmVz
c2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKQorICAgICAgICAsIG1fYmFzZShi
YXNlKQorICAgICAgICAsIG1fc3Vic2NyaXB0KHN1YnNjcmlwdCkKKyAgICAgICAgLCBtX3JpZ2h0
KHJpZ2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3N1YnNjcmlw
dEhhc0Fzc2lnbm1lbnRzKHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzKQorICAgICAgICAsIG1fcmln
aHRIYXNBc3NpZ25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisKICAg
ICBpbmxpbmUgQXNzaWduQnJhY2tldE5vZGU6OkFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9k
ZSogc3Vic2NyaXB0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNz
aWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAg
ICAgICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVu
ZCkKQEAgLTc3MSw2ICs3OTMsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAor
ICAgIGlubGluZSBTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlOjpTaG9ydENpcmN1aXRBc3NpZ25E
b3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBi
YXNlLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhwcmVzc2lvbk5v
ZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdEVuZCkKKyAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAg
ICAgICAgLCBUaHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2
b3RFbmQpCisgICAgICAgICwgbV9iYXNlKGJhc2UpCisgICAgICAgICwgbV9pZGVudChpZGVudCkK
KyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAg
ICAgICAgLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7
CisgICAgfQorCiAgICAgaW5saW5lIEFzc2lnbkVycm9yTm9kZTo6QXNzaWduRXJyb3JOb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdEVuZCkKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAg
LCBUaHJvd2FibGVFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggMjJkZjVhZTRkMDhlNTg2ZTc4Zjhi
MzliMmJiZjVhNjhmZjE4ZTY1ZC4uYzZlYjg3MjllYWIxMDIyMGFjY2E3NWI2MmMzNDNhZWY2NjAx
OGFhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtNjgsNiArNjgsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQml0T3JFcSwKICAgICAgICAgTW9kRXEsCiAgICAg
ICAgIFBvd0VxLAorICAgICAgICBDb2FsZXNjZUVxLAorICAgICAgICBPckVxLAorICAgICAgICBB
bmRFcSwKICAgICAgICAgTFNoaWZ0LAogICAgICAgICBSU2hpZnQsCiAgICAgICAgIFVSU2hpZnQK
QEAgLTEzODksNiArMTM5MiwxOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBtX3Jp
Z2h0SGFzQXNzaWdubWVudHM7CiAgICAgfTsKIAorICAgIGNsYXNzIFNob3J0Q2lyY3VpdEFzc2ln
blJlc29sdmVOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dh
YmxlRXhwcmVzc2lvbkRhdGEgeworICAgIHB1YmxpYzoKKyAgICAgICAgU2hvcnRDaXJjdWl0QXNz
aWduUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYs
IE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVu
dHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRl
OgorICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworCisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1f
aWRlbnQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OworICAgICAgICBPcGVyYXRv
ciBtX29wZXJhdG9yOworICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50czsKKyAgICB9
OworCiAgICAgY2xhc3MgQXNzaWduUmVzb2x2ZU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lv
bk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAg
ICAgICBBc3NpZ25SZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVu
dGlmaWVyJiwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBBc3NpZ25tZW50Q29udGV4dCk7CkBAIC0x
NDE4LDYgKzE0MzQsMjEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhh
c0Fzc2lnbm1lbnRzIDogMTsKICAgICB9OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0QXNzaWdu
QnJhY2tldE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2Fi
bGVTdWJFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBTaG9ydENpcmN1aXRB
c3NpZ25CcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSog
YmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2Rl
KiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2ln
bm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworCisgICAgcHJp
dmF0ZToKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBFeHByZXNzaW9uTm9kZSog
bV9iYXNlOworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9zdWJzY3JpcHQ7CisgICAgICAgIEV4
cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OworICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAg
ICAgICBib29sIG1fc3Vic2NyaXB0SGFzQXNzaWdubWVudHMgOiAxOworICAgICAgICBib29sIG1f
cmlnaHRIYXNBc3NpZ25tZW50cyA6IDE7CisgICAgfTsKKwogICAgIGNsYXNzIEFzc2lnbkJyYWNr
ZXROb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhw
cmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduQnJhY2tldE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2Rl
KiBzdWJzY3JpcHQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3Np
Z25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3RFbmQpOwpAQCAtMTQ1OSw2ICsxNDkwLDIwIEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50cyA6IDE7CiAgICAgfTsKIAorICAgIGNs
YXNzIFNob3J0Q2lyY3VpdEFzc2lnbkRvdE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5v
ZGUsIHB1YmxpYyBUaHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGljOgorICAg
ICAgICBTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4
cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3IsIEV4cHJlc3Np
b25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RFbmQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVy
cmlkZTsKKworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOworICAgICAgICBjb25zdCBJ
ZGVudGlmaWVyJiBtX2lkZW50OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAg
ICAgICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsKKyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdu
bWVudHMgOiAxOworICAgIH07CisKICAgICBjbGFzcyBBc3NpZ25FcnJvck5vZGUgZmluYWwgOiBw
dWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAg
ICAgcHVibGljOgogICAgICAgICBBc3NpZ25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCA3M2U4M2YzYTQyMDA4Yzk3ZWQ2ZTIyNDYzZDdj
ZWI2Y2E0ZTdmOTBiLi5jZWQ1Yzk3Y2I2YjRjNDQ5MmUzZjQ3ZGY3NmI4ZTI5ZDVkNjU2NGI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0zODMzLDcgKzM4MzMs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1lbgogCiAgICAgZmFpbElmRmFsc2UobGhzLCAiQ2Fu
bm90IHBhcnNlIGV4cHJlc3Npb24iKTsKICAgICBpZiAoaW5pdGlhbE5vbkxIU0NvdW50ICE9IG1f
cGFyc2VyU3RhdGUubm9uTEhTQ291bnQpIHsKLSAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49
IEVRVUFMICYmIG1fdG9rZW4ubV90eXBlIDw9IEJJVE9SRVFVQUwpCisgICAgICAgIGlmIChtX3Rv
a2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBBTkRFUVVBTCkKICAgICAg
ICAgICAgIHNlbWFudGljRmFpbCgiTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJyIsIGdldFRv
a2VuKCksICInIG11c3QgYmUgYSByZWZlcmVuY2UiKTsKIAogICAgICAgICByZXR1cm4gbGhzOwpA
QCAtMzg1Nyw2ICszODU3LDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVl
RXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAgICAgY2Fz
ZSBCSVRPUkVRVUFMOiBvcCA9IE9wZXJhdG9yOjpCaXRPckVxOyBicmVhazsKICAgICAgICAgY2Fz
ZSBNT0RFUVVBTDogb3AgPSBPcGVyYXRvcjo6TW9kRXE7IGJyZWFrOwogICAgICAgICBjYXNlIFBP
V0VRVUFMOiBvcCA9IE9wZXJhdG9yOjpQb3dFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgQ09BTEVT
Q0VFUVVBTDogb3AgPSBPcGVyYXRvcjo6Q29hbGVzY2VFcTsgYnJlYWs7CisgICAgICAgIGNhc2Ug
T1JFUVVBTDogb3AgPSBPcGVyYXRvcjo6T3JFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgQU5ERVFV
QUw6IG9wID0gT3BlcmF0b3I6OkFuZEVxOyBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIGdvdG8gZW5kOwogICAgICAgICB9CkBAIC0zODc2LDcgKzM4NzksNyBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+
OjpwYXJzZUFzc2lnbm1lbgogICAgICAgICBsaHMgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9u
KGNvbnRleHQpOwogICAgICAgICBmYWlsSWZGYWxzZShsaHMsICJDYW5ub3QgcGFyc2UgdGhlIHJp
Z2h0IGhhbmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGV4cHJlc3Npb24iKTsKICAgICAgICAgaWYg
KGluaXRpYWxOb25MSFNDb3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAg
ICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0g
QklUT1JFUVVBTCkKKyAgICAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBt
X3Rva2VuLm1fdHlwZSA8PSBBTkRFUVVBTCkKICAgICAgICAgICAgICAgICBzZW1hbnRpY0ZhaWwo
IkxlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAiJyBtdXN0IGJlIGEg
cmVmZXJlbmNlIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggNDgxODFhZTBkNGI5MzM4OTRm
OGU0ZjJiZGZkYjYyZTgxMzgzZDJjNS4uZGUwZWJlYWY4NWZkNzEyMzcxN2Y4NzcxMTI3ZjcxOTIz
ZmZlNjc0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJU
b2tlbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5o
CkBAIC0xMzQsNiArMTM0LDkgQEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgQklUQU5ERVFVQUws
CiAgICAgQklUWE9SRVFVQUwsCiAgICAgQklUT1JFUVVBTCwKKyAgICBDT0FMRVNDRUVRVUFMLAor
ICAgIE9SRVFVQUwsCisgICAgQU5ERVFVQUwsCiAgICAgRE9URE9URE9ULAogICAgIEFSUk9XRlVO
Q1RJT04sCiAgICAgUVVFU1RJT05ET1QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9uc0xpc3QuaAppbmRleCBiODViODI4OGVkZjYyODRlZDgzY2FmNmM2ZDk4ZjMyN2ZhMmRj
NGNmLi42ZWQ0MmQ0MDcyYzhmNmVjMmU4OTA1OGFhY2NlNTdjMzRlYTYxZmM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTUwMCw2ICs1MDAsNyBA
QCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwog
ICAgIHYoQm9vbCwgZm9yY2VPU1JFeGl0VG9MTEludCwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUs
IHdlIGFsd2F5cyBleGl0IHRvIHRoZSBMTEludC4gSWYgZmFsc2UsIHdlIGV4aXQgdG8gd2hhdGV2
ZXIgaXMgbW9zdCBjb252ZW5pZW50LiIpIFwKICAgICB2KFVuc2lnbmVkLCBnZXRCeVZhbElDTWF4
TnVtYmVyT2ZJZGVudGlmaWVycywgNCwgTm9ybWFsLCAiTnVtYmVyIG9mIGlkZW50aWZpZXJzIHdl
IHNlZSBpbiB0aGUgTExJbnQgdGhhdCBjb3VsZCBjYXVzZSB1cyB0byBiYWlsIG9uIGdlbmVyYXRp
bmcgYW4gSUMgZm9yIGdldF9ieV92YWwuIikgXAogICAgIHYoQm9vbCwgdXNlUHVibGljQ2xhc3NG
aWVsZHMsIHRydWUsIE5vcm1hbCwgIklmIHRydWUsIHRoZSBwYXJzZXIgd2lsbCB1bmRlcnN0YW5k
IHB1YmxpYyBkYXRhIGZpZWxkcyBpbnNpZGUgY2xhc3Nlcy4iKSBcCisgICAgdihCb29sLCB1c2VM
b2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycywgZmFsc2UsIE5vcm1hbCwgIkVuYWJsZSBzdXBwb3J0
IGZvciBcP1w/PSwgfHw9LCBhbmQgJiY9IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMuIikg
XAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKICAgICBTYW1lT3B0aW9uLApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY3Zjc5MzExNzhjY2E5
OGI3NGYyYmE5NDM4MGVlODc3MjFkZDNhNWEuLjAyZTQwMGIyYjg2Y2MwODM4ZGI5ZTE4OTFkZDJl
YmEwZTk1ZDJhYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wMy0yOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CisKKyAgICAgICAgW0VTTmV4dF0gSW1wbGVtZW50IGxvZ2ljYWwgYXNzaWdu
bWVudCBvcGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAyMC0wMy0yOCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JF
U1NJT04ocjI1Nzk2MykgVUkgcHJvY2VzcyBjcmFzaGVzIHdoZW4gc2V0dGluZyBuYXZpZ2F0aW9u
IGRlbGVnYXRlIGluc2lkZSBuYXZpZ2F0aW9uIGRlbGVnYXRlIGNhbGxiYWNrcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVu
LWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggMmZiZTNiNGJhOGVhNzA3M2RhMmE4ZjY3M2NhMGJiZTY5
ZTY5N2JjZS4uZGM3MmE2NDk5NDg3NjIwZjVjZjM0NWVkNDcwMTVjYmRhMGFkYmQ1NCAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cworKysgYi9Ub29scy9TY3Jp
cHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBAIC03ODYsNiArNzg2LDEwIEBAIGRlZiBydW5NaW5p
TW9kZSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJ1bigibWluaS1tb2RlIiwg
Ii0tZm9yY2VNaW5pVk1Nb2RlPXRydWUiLCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQog
ZW5kCiAKK2RlZiBydW5Mb2dpY2FsQXNzaWdubWVudE9wZXJhdG9yc0VuYWJsZWQoKm9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykKKyAgICBydW4oImxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRv
cnMtZW5hYmxlZCIsICItLXVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzPXRydWUiICwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCitlbmQKKwogZGVmIGRl
ZmF1bHRSdW4KICAgICBpZiAkbW9kZSA9PSAicXVpY2siCiAgICAgICAgIGRlZmF1bHRRdWlja1J1
bgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCA1ZGJiZDc1ZjhhYzhlNTA2MzY4ZGQzYzhjZGZlNWY3MzBmNDVhYTZkLi5hYmYyMThmMGE5ZmY2
NzZhMjU4NjdhMTI1NTVjZTJkMzJlODc1YTJiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTI5ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBs
ZW1lbnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9w
ZXJhdG9yLWFuZC5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVu
dC1vcGVyYXRvci1jb2FsZXNjZS5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwt
YXNzaWdubWVudC1vcGVyYXRvci1vci5qczogQWRkZWQuCisKIDIwMjAtMDMtMjggIENhaW8gTGlt
YSAgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgogCiAgICAgICAgIHN0cmVzcy90ZXN0LW91dC1vZi1t
ZW1vcnkuanMgdGVzdCBnYWRlcm5pbmcKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2xvZ2lj
YWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFz
c2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMmRhYjE2YjY3NzY0OWI0NzU1
ZDc2MWQ5N2Q1ZTZlNzliNDU3OGMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9s
b2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzCkBAIC0wLDAgKzEsNjMzIEBACisvL0Ag
cnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkCisKK2Z1bmN0aW9uIHNob3VsZEJl
KHNjcmlwdCwgZXhwZWN0ZWQpIHsKKyAgICBsZXQgYWN0dWFsID0gZXZhbChzY3JpcHQpOworICAg
IGlmICh0eXBlb2YgZXhwZWN0ZWQgPT09ICJmdW5jdGlvbiIgPyAhKGFjdHVhbCBpbnN0YW5jZW9m
IGV4cGVjdGVkKSA6IGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cihgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShleHBlY3RlZCl9IGJ1dCBnb3QgJHtKU09OLnN0
cmluZ2lmeShhY3R1YWwpfWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhzY3JpcHQsIGVy
cm9yVHlwZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlw
dCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAg
aWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9IGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5u
YW1lfSFgKTsKK30KKworc2hvdWxkQmUoYHZhciB4OyB4ICYmPSA0MmAsIHVuZGVmaW5lZCk7Citz
aG91bGRCZShgdmFyIHggPSB1bmRlZmluZWQ7IHggJiY9IG51bGxgLCB1bmRlZmluZWQpOworc2hv
dWxkQmUoYHZhciB4ID0gbnVsbDsgeCAmJj0gdW5kZWZpbmVkYCwgbnVsbCk7CitzaG91bGRCZShg
dmFyIHggPSB1bmRlZmluZWQ7IHggJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGB2YXIg
eCA9IG51bGw7IHggJiY9IDQyYCwgbnVsbCk7CitzaG91bGRCZShgdmFyIHggPSB0cnVlOyB4ICYm
PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IGZhbHNlOyB4ICYmPSA0MmAsIGZhbHNlKTsK
K3Nob3VsZEJlKGB2YXIgeCA9IDA7IHggJiY9IDQyYCwgMCk7CitzaG91bGRCZShgdmFyIHggPSAx
OyB4ICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9ICIiOyB4ICYmPSA0MmAsICIiKTsK
K3Nob3VsZEJlKGB2YXIgeCA9ICJ0ZXN0IjsgeCAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgdmFy
IHggPSB7fTsgeCAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSBbXTsgeCAmJj0gNDJg
LCA0Mik7CisKK3Nob3VsZEJlKGBsZXQgeDsgeCAmJj0gNDJgLCB1bmRlZmluZWQpOworc2hvdWxk
QmUoYGxldCB4ID0gdW5kZWZpbmVkOyB4ICYmPSBudWxsYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJl
KGBsZXQgeCA9IG51bGw7IHggJiY9IHVuZGVmaW5lZGAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4
ID0gdW5kZWZpbmVkOyB4ICYmPSA0MmAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSBu
dWxsOyB4ICYmPSA0MmAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZTsgeCAmJj0gNDJg
LCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBmYWxzZTsgeCAmJj0gNDJgLCBmYWxzZSk7CitzaG91
bGRCZShgbGV0IHggPSAwOyB4ICYmPSA0MmAsIDApOworc2hvdWxkQmUoYGxldCB4ID0gMTsgeCAm
Jj0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSAiIjsgeCAmJj0gNDJgLCAiIik7CitzaG91
bGRCZShgbGV0IHggPSAidGVzdCI7IHggJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0g
e307IHggJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gW107IHggJiY9IDQyYCwgNDIp
OworCitzaG91bGRUaHJvdyhgY29uc3QgeDsgeCAmJj0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91
bGRUaHJvdyhgY29uc3QgeCA9IHVuZGVmaW5lZDsgeCAmJj0gbnVsbGAsIFR5cGVFcnJvcik7Citz
aG91bGRUaHJvdyhgY29uc3QgeCA9IG51bGw7IHggJiY9IHVuZGVmaW5lZGAsIFR5cGVFcnJvcik7
CitzaG91bGRUaHJvdyhgY29uc3QgeCA9IHVuZGVmaW5lZDsgeCAmJj0gNDJgLCBUeXBlRXJyb3Ip
Oworc2hvdWxkVGhyb3coYGNvbnN0IHggPSBudWxsOyB4ICYmPSA0MmAsIFR5cGVFcnJvcik7Citz
aG91bGRUaHJvdyhgY29uc3QgeCA9IHRydWU7IHggJiY9IDQyYCwgVHlwZUVycm9yKTsKK3Nob3Vs
ZFRocm93KGBjb25zdCB4ID0gZmFsc2U7IHggJiY9IDQyYCwgVHlwZUVycm9yKTsKK3Nob3VsZFRo
cm93KGBjb25zdCB4ID0gMDsgeCAmJj0gNDJgLCBUeXBlRXJyb3IpOworc2hvdWxkVGhyb3coYGNv
bnN0IHggPSAxOyB4ICYmPSA0MmAsIFR5cGVFcnJvcik7CitzaG91bGRUaHJvdyhgY29uc3QgeCA9
ICIiOyB4ICYmPSA0MmAsIFR5cGVFcnJvcik7CitzaG91bGRUaHJvdyhgY29uc3QgeCA9ICJ0ZXN0
IjsgeCAmJj0gNDJgLCBUeXBlRXJyb3IpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSB7fTsgeCAm
Jj0gNDJgLCBUeXBlRXJyb3IpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSBbXTsgeCAmJj0gNDJg
LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShgdmFyIHggPSB7fTsgeC5hICYmPSA0MmAsIHVuZGVm
aW5lZCk7CitzaG91bGRCZShgdmFyIHggPSB7fTsgeC5hICYmPSA0MjsgeC5hYCwgdW5kZWZpbmVk
KTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgJiY9IG51bGxgLCB1bmRl
ZmluZWQpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSAmJj0gbnVsbDsg
eC5hYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBudWxsfTsgeC5hICYmPSB1
bmRlZmluZWRgLCBudWxsKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBudWxsfTsgeC5hICYmPSB1
bmRlZmluZWQ7IHguYWAsIG51bGwpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHVuZGVmaW5lZH07
IHguYSAmJj0gNDJgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHVuZGVmaW5l
ZH07IHguYSAmJj0gNDI7IHguYWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgdmFyIHggPSB7YTog
bnVsbH07IHguYSAmJj0gNDJgLCBudWxsKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBudWxsfTsg
eC5hICYmPSA0MjsgeC5hYCwgbnVsbCk7CitzaG91bGRCZShgdmFyIHggPSB7YTogdHJ1ZX07IHgu
YSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSB7YTogdHJ1ZX07IHguYSAmJj0gNDI7
IHguYWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBmYWxzZX07IHguYSAmJj0gNDJgLCBm
YWxzZSk7CitzaG91bGRCZShgdmFyIHggPSB7YTogZmFsc2V9OyB4LmEgJiY9IDQyOyB4LmFgLCBm
YWxzZSk7CitzaG91bGRCZShgdmFyIHggPSB7YTogMH07IHguYSAmJj0gNDJgLCAwKTsKK3Nob3Vs
ZEJlKGB2YXIgeCA9IHthOiAwfTsgeC5hICYmPSA0MjsgeC5hYCwgMCk7CitzaG91bGRCZShgdmFy
IHggPSB7YTogMX07IHguYSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSB7YTogMX07
IHguYSAmJj0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiAiIn07IHguYSAm
Jj0gNDJgLCAiIik7CitzaG91bGRCZShgdmFyIHggPSB7YTogIiJ9OyB4LmEgJiY9IDQyOyB4LmFg
LCAiIik7CitzaG91bGRCZShgdmFyIHggPSB7YTogInRlc3QifTsgeC5hICYmPSA0MmAsIDQyKTsK
K3Nob3VsZEJlKGB2YXIgeCA9IHthOiAidGVzdCJ9OyB4LmEgJiY9IDQyOyB4LmFgLCA0Mik7Citz
aG91bGRCZShgdmFyIHggPSB7YToge319OyB4LmEgJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZh
ciB4ID0ge2E6IHt9fTsgeC5hICYmPSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0g
e2E6IFtdfTsgeC5hICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBbXX07IHgu
YSAmJj0gNDI7IHguYWAsIDQyKTsKKworc2hvdWxkQmUoYGxldCB4ID0ge307IHguYSAmJj0gNDJg
LCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0ge307IHguYSAmJj0gNDI7IHguYWAsIHVu
ZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeC5hICYmPSBudWxs
YCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgJiY9
IG51bGw7IHguYWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHgu
YSAmJj0gdW5kZWZpbmVkYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHgu
YSAmJj0gdW5kZWZpbmVkOyB4LmFgLCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1bmRl
ZmluZWR9OyB4LmEgJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1
bmRlZmluZWR9OyB4LmEgJiY9IDQyOyB4LmFgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4
ID0ge2E6IG51bGx9OyB4LmEgJiY9IDQyYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSB7YTog
bnVsbH07IHguYSAmJj0gNDI7IHguYWAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHRy
dWV9OyB4LmEgJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHRydWV9OyB4LmEg
JiY9IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogZmFsc2V9OyB4LmEgJiY9
IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IGZhbHNlfTsgeC5hICYmPSA0Mjsg
eC5hYCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDB9OyB4LmEgJiY9IDQyYCwgMCk7
CitzaG91bGRCZShgbGV0IHggPSB7YTogMH07IHguYSAmJj0gNDI7IHguYWAsIDApOworc2hvdWxk
QmUoYGxldCB4ID0ge2E6IDF9OyB4LmEgJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0g
e2E6IDF9OyB4LmEgJiY9IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogIiJ9
OyB4LmEgJiY9IDQyYCwgIiIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6ICIifTsgeC5hICYmPSA0
MjsgeC5hYCwgIiIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6ICJ0ZXN0In07IHguYSAmJj0gNDJg
LCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogInRlc3QifTsgeC5hICYmPSA0MjsgeC5hYCwg
NDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHt9fTsgeC5hICYmPSA0MmAsIDQyKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IHthOiB7fX07IHguYSAmJj0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHthOiBbXX07IHguYSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTog
W119OyB4LmEgJiY9IDQyOyB4LmFgLCA0Mik7CisKK3Nob3VsZEJlKGBjb25zdCB4ID0ge307IHgu
YSAmJj0gNDJgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7fTsgeC5hICYmPSA0
MjsgeC5hYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07
IHguYSAmJj0gbnVsbGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRl
ZmluZWR9OyB4LmEgJiY9IG51bGw7IHguYWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3Qg
eCA9IHthOiBudWxsfTsgeC5hICYmPSB1bmRlZmluZWRgLCBudWxsKTsKK3Nob3VsZEJlKGBjb25z
dCB4ID0ge2E6IG51bGx9OyB4LmEgJiY9IHVuZGVmaW5lZDsgeC5hYCwgbnVsbCk7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3No
b3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSAmJj0gNDI7IHguYWAsIHVuZGVm
aW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeC5hICYmPSA0MmAsIG51bGwp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHguYSAmJj0gNDI7IHguYWAsIG51bGwp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdHJ1ZX07IHguYSAmJj0gNDJgLCA0Mik7CitzaG91
bGRCZShgY29uc3QgeCA9IHthOiB0cnVlfTsgeC5hICYmPSA0MjsgeC5hYCwgNDIpOworc2hvdWxk
QmUoYGNvbnN0IHggPSB7YTogZmFsc2V9OyB4LmEgJiY9IDQyYCwgZmFsc2UpOworc2hvdWxkQmUo
YGNvbnN0IHggPSB7YTogZmFsc2V9OyB4LmEgJiY9IDQyOyB4LmFgLCBmYWxzZSk7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiAwfTsgeC5hICYmPSA0MmAsIDApOworc2hvdWxkQmUoYGNvbnN0IHgg
PSB7YTogMH07IHguYSAmJj0gNDI7IHguYWAsIDApOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTog
MX07IHguYSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAxfTsgeC5hICYm
PSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogIiJ9OyB4LmEgJiY9IDQy
YCwgIiIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogIiJ9OyB4LmEgJiY9IDQyOyB4LmFgLCAi
Iik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAidGVzdCJ9OyB4LmEgJiY9IDQyYCwgNDIpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSB7YTogInRlc3QifTsgeC5hICYmPSA0MjsgeC5hYCwgNDIpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSB7YToge319OyB4LmEgJiY9IDQyYCwgNDIpOworc2hvdWxkQmUo
YGNvbnN0IHggPSB7YToge319OyB4LmEgJiY9IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShgY29u
c3QgeCA9IHthOiBbXX07IHguYSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHth
OiBbXX07IHguYSAmJj0gNDI7IHguYWAsIDQyKTsKKworc2hvdWxkQmUoYHZhciB4ID0ge307IHhb
ImEiXSAmJj0gNDJgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYHZhciB4ID0ge307IHhbImEiXSAm
Jj0gNDI7IHhbImEiXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgdmFyIHggPSB7YTogdW5kZWZp
bmVkfTsgeFsiYSJdICYmPSBudWxsYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHth
OiB1bmRlZmluZWR9OyB4WyJhIl0gJiY9IG51bGw7IHhbImEiXWAsIHVuZGVmaW5lZCk7CitzaG91
bGRCZShgdmFyIHggPSB7YTogbnVsbH07IHhbImEiXSAmJj0gdW5kZWZpbmVkYCwgbnVsbCk7Citz
aG91bGRCZShgdmFyIHggPSB7YTogbnVsbH07IHhbImEiXSAmJj0gdW5kZWZpbmVkOyB4WyJhIl1g
LCBudWxsKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gJiY9IDQy
YCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0g
JiY9IDQyOyB4WyJhIl1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IG51bGx9
OyB4WyJhIl0gJiY9IDQyYCwgbnVsbCk7CitzaG91bGRCZShgdmFyIHggPSB7YTogbnVsbH07IHhb
ImEiXSAmJj0gNDI7IHhbImEiXWAsIG51bGwpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHRydWV9
OyB4WyJhIl0gJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHRydWV9OyB4WyJh
Il0gJiY9IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSB7YTogZmFsc2V9OyB4
WyJhIl0gJiY9IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IGZhbHNlfTsgeFsi
YSJdICYmPSA0MjsgeFsiYSJdYCwgZmFsc2UpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IDB9OyB4
WyJhIl0gJiY9IDQyYCwgMCk7CitzaG91bGRCZShgdmFyIHggPSB7YTogMH07IHhbImEiXSAmJj0g
NDI7IHhbImEiXWAsIDApOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IDF9OyB4WyJhIl0gJiY9IDQy
YCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IDF9OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1g
LCA0Mik7CitzaG91bGRCZShgdmFyIHggPSB7YTogIiJ9OyB4WyJhIl0gJiY9IDQyYCwgIiIpOwor
c2hvdWxkQmUoYHZhciB4ID0ge2E6ICIifTsgeFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgIiIpOwor
c2hvdWxkQmUoYHZhciB4ID0ge2E6ICJ0ZXN0In07IHhbImEiXSAmJj0gNDJgLCA0Mik7CitzaG91
bGRCZShgdmFyIHggPSB7YTogInRlc3QifTsgeFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgNDIpOwor
c2hvdWxkQmUoYHZhciB4ID0ge2E6IHt9fTsgeFsiYSJdICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJl
KGB2YXIgeCA9IHthOiB7fX07IHhbImEiXSAmJj0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJl
KGB2YXIgeCA9IHthOiBbXX07IHhbImEiXSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgdmFyIHgg
PSB7YTogW119OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCA0Mik7CisKK3Nob3VsZEJlKGBsZXQg
eCA9IHt9OyB4WyJhIl0gJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHt9
OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0g
e2E6IHVuZGVmaW5lZH07IHhbImEiXSAmJj0gbnVsbGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShg
bGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdICYmPSBudWxsOyB4WyJhIl1gLCB1bmRlZmlu
ZWQpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gJiY9IHVuZGVmaW5lZGAs
IG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gJiY9IHVuZGVmaW5l
ZDsgeFsiYSJdYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsi
YSJdICYmPSA0MmAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogdW5kZWZpbmVk
fTsgeFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IHthOiBudWxsfTsgeFsiYSJdICYmPSA0MmAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6
IG51bGx9OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IHthOiB0cnVlfTsgeFsiYSJdICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB0
cnVlfTsgeFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6
IGZhbHNlfTsgeFsiYSJdICYmPSA0MmAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBm
YWxzZX07IHhbImEiXSAmJj0gNDI7IHhbImEiXWAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IHthOiAwfTsgeFsiYSJdICYmPSA0MmAsIDApOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDB9OyB4
WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCAwKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAxfTsgeFsi
YSJdICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAxfTsgeFsiYSJdICYmPSA0
MjsgeFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6ICIifTsgeFsiYSJdICYmPSA0
MmAsICIiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAiIn07IHhbImEiXSAmJj0gNDI7IHhbImEi
XWAsICIiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAidGVzdCJ9OyB4WyJhIl0gJiY9IDQyYCwg
NDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6ICJ0ZXN0In07IHhbImEiXSAmJj0gNDI7IHhbImEi
XWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB7fX07IHhbImEiXSAmJj0gNDJgLCA0Mik7
CitzaG91bGRCZShgbGV0IHggPSB7YToge319OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCA0Mik7
CitzaG91bGRCZShgbGV0IHggPSB7YTogW119OyB4WyJhIl0gJiY9IDQyYCwgNDIpOworc2hvdWxk
QmUoYGxldCB4ID0ge2E6IFtdfTsgeFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgNDIpOworCitzaG91
bGRCZShgY29uc3QgeCA9IHt9OyB4WyJhIl0gJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJl
KGBjb25zdCB4ID0ge307IHhbImEiXSAmJj0gNDI7IHhbImEiXWAsIHVuZGVmaW5lZCk7CitzaG91
bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gJiY9IG51bGxgLCB1bmRlZmlu
ZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdICYmPSBudWxs
OyB4WyJhIl1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHhb
ImEiXSAmJj0gdW5kZWZpbmVkYCwgbnVsbCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxs
fTsgeFsiYSJdICYmPSB1bmRlZmluZWQ7IHhbImEiXWAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0
IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdICYmPSA0MmAsIHVuZGVmaW5lZCk7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCB1bmRl
ZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHhbImEiXSAmJj0gNDJgLCBu
dWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gJiY9IDQyOyB4WyJh
Il1gLCBudWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHRydWV9OyB4WyJhIl0gJiY9IDQy
YCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdHJ1ZX07IHhbImEiXSAmJj0gNDI7IHhb
ImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IGZhbHNlfTsgeFsiYSJdICYmPSA0
MmAsIGZhbHNlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IGZhbHNlfTsgeFsiYSJdICYmPSA0
MjsgeFsiYSJdYCwgZmFsc2UpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMH07IHhbImEiXSAm
Jj0gNDJgLCAwKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDB9OyB4WyJhIl0gJiY9IDQyOyB4
WyJhIl1gLCAwKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDF9OyB4WyJhIl0gJiY9IDQyYCwg
NDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMX07IHhbImEiXSAmJj0gNDI7IHhbImEiXWAs
IDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6ICIifTsgeFsiYSJdICYmPSA0MmAsICIiKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6ICIifTsgeFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgIiIp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogInRlc3QifTsgeFsiYSJdICYmPSA0MmAsIDQyKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6ICJ0ZXN0In07IHhbImEiXSAmJj0gNDI7IHhbImEiXWAs
IDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHt9fTsgeFsiYSJdICYmPSA0MmAsIDQyKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHt9fTsgeFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgNDIp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogW119OyB4WyJhIl0gJiY9IDQyYCwgNDIpOworc2hv
dWxkQmUoYGNvbnN0IHggPSB7YTogW119OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCA0Mik7CisK
K3Nob3VsZEJlKGB2YXIgeCA9IFtdOyB4WzBdICYmPSA0MmAsIHVuZGVmaW5lZCk7CitzaG91bGRC
ZShgdmFyIHggPSBbXTsgeFswXSAmJj0gNDI7IHhbMF1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUo
YHZhciB4ID0gW3VuZGVmaW5lZF07IHhbMF0gJiY9IG51bGxgLCB1bmRlZmluZWQpOworc2hvdWxk
QmUoYHZhciB4ID0gW3VuZGVmaW5lZF07IHhbMF0gJiY9IG51bGw7IHhbMF1gLCB1bmRlZmluZWQp
Oworc2hvdWxkQmUoYHZhciB4ID0gW251bGxdOyB4WzBdICYmPSB1bmRlZmluZWRgLCBudWxsKTsK
K3Nob3VsZEJlKGB2YXIgeCA9IFtudWxsXTsgeFswXSAmJj0gdW5kZWZpbmVkOyB4WzBdYCwgbnVs
bCk7CitzaG91bGRCZShgdmFyIHggPSBbdW5kZWZpbmVkXTsgeFswXSAmJj0gNDJgLCB1bmRlZmlu
ZWQpOworc2hvdWxkQmUoYHZhciB4ID0gW3VuZGVmaW5lZF07IHhbMF0gJiY9IDQyOyB4WzBdYCwg
dW5kZWZpbmVkKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFtudWxsXTsgeFswXSAmJj0gNDJgLCBudWxs
KTsKK3Nob3VsZEJlKGB2YXIgeCA9IFtudWxsXTsgeFswXSAmJj0gNDI7IHhbMF1gLCBudWxsKTsK
K3Nob3VsZEJlKGB2YXIgeCA9IFt0cnVlXTsgeFswXSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShg
dmFyIHggPSBbdHJ1ZV07IHhbMF0gJiY9IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYHZhciB4
ID0gW2ZhbHNlXTsgeFswXSAmJj0gNDJgLCBmYWxzZSk7CitzaG91bGRCZShgdmFyIHggPSBbZmFs
c2VdOyB4WzBdICYmPSA0MjsgeFswXWAsIGZhbHNlKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFswXTsg
eFswXSAmJj0gNDJgLCAwKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFswXTsgeFswXSAmJj0gNDI7IHhb
MF1gLCAwKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFsxXTsgeFswXSAmJj0gNDJgLCA0Mik7CitzaG91
bGRCZShgdmFyIHggPSBbMV07IHhbMF0gJiY9IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYHZh
ciB4ID0gWyIiXTsgeFswXSAmJj0gNDJgLCAiIik7CitzaG91bGRCZShgdmFyIHggPSBbIiJdOyB4
WzBdICYmPSA0MjsgeFswXWAsICIiKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFsidGVzdCJdOyB4WzBd
ICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFsidGVzdCJdOyB4WzBdICYmPSA0Mjsg
eFswXWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFt7fV07IHhbMF0gJiY9IDQyYCwgNDIpOwor
c2hvdWxkQmUoYHZhciB4ID0gW3t9XTsgeFswXSAmJj0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRC
ZShgdmFyIHggPSBbW11dOyB4WzBdICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFtb
XV07IHhbMF0gJiY9IDQyOyB4WzBdYCwgNDIpOworCitzaG91bGRCZShgbGV0IHggPSBbXTsgeFsw
XSAmJj0gNDJgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0gW107IHhbMF0gJiY9IDQy
OyB4WzBdYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt1bmRlZmluZWRdOyB4WzBd
ICYmPSBudWxsYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt1bmRlZmluZWRdOyB4
WzBdICYmPSBudWxsOyB4WzBdYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtudWxs
XTsgeFswXSAmJj0gdW5kZWZpbmVkYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSBbbnVsbF07
IHhbMF0gJiY9IHVuZGVmaW5lZDsgeFswXWAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0gW3Vu
ZGVmaW5lZF07IHhbMF0gJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt1
bmRlZmluZWRdOyB4WzBdICYmPSA0MjsgeFswXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0
IHggPSBbbnVsbF07IHhbMF0gJiY9IDQyYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSBbbnVs
bF07IHhbMF0gJiY9IDQyOyB4WzBdYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSBbdHJ1ZV07
IHhbMF0gJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gW3RydWVdOyB4WzBdICYmPSA0
MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtmYWxzZV07IHhbMF0gJiY9IDQyYCwg
ZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0gW2ZhbHNlXTsgeFswXSAmJj0gNDI7IHhbMF1gLCBm
YWxzZSk7CitzaG91bGRCZShgbGV0IHggPSBbMF07IHhbMF0gJiY9IDQyYCwgMCk7CitzaG91bGRC
ZShgbGV0IHggPSBbMF07IHhbMF0gJiY9IDQyOyB4WzBdYCwgMCk7CitzaG91bGRCZShgbGV0IHgg
PSBbMV07IHhbMF0gJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gWzFdOyB4WzBdICYm
PSA0MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFsiIl07IHhbMF0gJiY9IDQyYCwg
IiIpOworc2hvdWxkQmUoYGxldCB4ID0gWyIiXTsgeFswXSAmJj0gNDI7IHhbMF1gLCAiIik7Citz
aG91bGRCZShgbGV0IHggPSBbInRlc3QiXTsgeFswXSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShg
bGV0IHggPSBbInRlc3QiXTsgeFswXSAmJj0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgbGV0
IHggPSBbe31dOyB4WzBdICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt7fV07IHhb
MF0gJiY9IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gW1tdXTsgeFswXSAmJj0g
NDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBbW11dOyB4WzBdICYmPSA0MjsgeFswXWAsIDQy
KTsKKworc2hvdWxkQmUoYGNvbnN0IHggPSBbXTsgeFswXSAmJj0gNDJgLCB1bmRlZmluZWQpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSBbXTsgeFswXSAmJj0gNDI7IHhbMF1gLCB1bmRlZmluZWQpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSBbdW5kZWZpbmVkXTsgeFswXSAmJj0gbnVsbGAsIHVuZGVmaW5l
ZCk7CitzaG91bGRCZShgY29uc3QgeCA9IFt1bmRlZmluZWRdOyB4WzBdICYmPSBudWxsOyB4WzBd
YCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW251bGxdOyB4WzBdICYmPSB1bmRl
ZmluZWRgLCBudWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW251bGxdOyB4WzBdICYmPSB1bmRl
ZmluZWQ7IHhbMF1gLCBudWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW3VuZGVmaW5lZF07IHhb
MF0gJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW3VuZGVmaW5lZF07
IHhbMF0gJiY9IDQyOyB4WzBdYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW251
bGxdOyB4WzBdICYmPSA0MmAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbbnVsbF07IHhb
MF0gJiY9IDQyOyB4WzBdYCwgbnVsbCk7CitzaG91bGRCZShgY29uc3QgeCA9IFt0cnVlXTsgeFsw
XSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFt0cnVlXTsgeFswXSAmJj0gNDI7
IHhbMF1gLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFtmYWxzZV07IHhbMF0gJiY9IDQyYCwg
ZmFsc2UpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbZmFsc2VdOyB4WzBdICYmPSA0MjsgeFswXWAs
IGZhbHNlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gWzBdOyB4WzBdICYmPSA0MmAsIDApOworc2hv
dWxkQmUoYGNvbnN0IHggPSBbMF07IHhbMF0gJiY9IDQyOyB4WzBdYCwgMCk7CitzaG91bGRCZShg
Y29uc3QgeCA9IFsxXTsgeFswXSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFsx
XTsgeFswXSAmJj0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFsiIl07IHhb
MF0gJiY9IDQyYCwgIiIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbIiJdOyB4WzBdICYmPSA0Mjsg
eFswXWAsICIiKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gWyJ0ZXN0Il07IHhbMF0gJiY9IDQyYCwg
NDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbInRlc3QiXTsgeFswXSAmJj0gNDI7IHhbMF1gLCA0
Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFt7fV07IHhbMF0gJiY9IDQyYCwgNDIpOworc2hvdWxk
QmUoYGNvbnN0IHggPSBbe31dOyB4WzBdICYmPSA0MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBj
b25zdCB4ID0gW1tdXTsgeFswXSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFtb
XV07IHhbMF0gJiY9IDQyOyB4WzBdYCwgNDIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107
CisKK2xldCBhID0gdHJ1ZTsKK2xldCB4ID0geworICAgIGdldCBhKCkgeworICAgICAgICBsb2cu
cHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAgc2V0IGEodikgewor
ICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAgIH0sCit9OworCit4
LmEgJiY9IDQyOworeC5hICYmPSA0MjsKK3guYSAmJj0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAi
ICIgKyBhYCwgImdldCBzZXQgZ2V0IHNldCBnZXQgc2V0IDQyIik7CisKK3Nob3VsZEJlKGAKK2xl
dCBsb2cgPSBbXTsKKworbGV0IGEgPSBmYWxzZTsKK2xldCB4ID0geworICAgIGdldCBhKCkgewor
ICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAg
c2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAg
IH0sCit9OworCit4LmEgJiY9IDQyOworeC5hICYmPSA0MjsKK3guYSAmJj0gNDI7CisKK2xvZy5q
b2luKCIgIikgKyAiICIgKyBhYCwgImdldCBnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGAK
K2xldCBsb2cgPSBbXTsKKworbGV0IGEgPSB1bmRlZmluZWQ7CitsZXQgeCA9IHsKKyAgICBnZXQg
YSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1cm4gYTsKKyAgICB9
LAorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICBhID0g
djsKKyAgICB9LAorfTsKKworeC5hICYmPSA0MjsKK3guYSAmJj0gNDI7Cit4LmEgJiY9IDQyOwor
Citsb2cuam9pbigiICIpICsgIiAiICsgYWAsICJnZXQgZ2V0IGdldCB1bmRlZmluZWQiKTsKKwor
c2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitsZXQgYSA9IHRydWU7CitsZXQgeCA9IHsKKyAg
ICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1cm4gYTsK
KyAgICB9LAorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAg
ICBhID0gdjsKKyAgICB9LAorfTsKKworeFsiYSJdICYmPSA0MjsKK3hbImEiXSAmJj0gNDI7Cit4
WyJhIl0gJiY9IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsgYWAsICJnZXQgc2V0IGdldCBz
ZXQgZ2V0IHNldCA0MiIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2xldCBhID0g
ZmFsc2U7CitsZXQgeCA9IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldCIp
OworICAgICAgICByZXR1cm4gYTsKKyAgICB9LAorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9n
LnB1c2goInNldCIpOworICAgICAgICBhID0gdjsKKyAgICB9LAorfTsKKworeFsiYSJdICYmPSA0
MjsKK3hbImEiXSAmJj0gNDI7Cit4WyJhIl0gJiY9IDQyOworCitsb2cuam9pbigiICIpICsgIiAi
ICsgYWAsICJnZXQgZ2V0IGdldCBmYWxzZSIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107
CisKK2xldCBhID0gdW5kZWZpbmVkOworbGV0IHggPSB7CisgICAgZ2V0IGEoKSB7CisgICAgICAg
IGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgcmV0dXJuIGE7CisgICAgfSwKKyAgICBzZXQgYSh2
KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgYSA9IHY7CisgICAgfSwKK307
CisKK3hbImEiXSAmJj0gNDI7Cit4WyJhIl0gJiY9IDQyOworeFsiYSJdICYmPSA0MjsKKworbG9n
LmpvaW4oIiAiKSArICIgIiArIGFgLCAiZ2V0IGdldCBnZXQgdW5kZWZpbmVkIik7CisKK3Nob3Vs
ZEJlKGAKK2xldCBsb2cgPSBbXTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAg
ICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7Cisg
ICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAg
ICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVu
dCB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAg
ICAgcmV0dXJuIHN1cGVyLmE7CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1
c2goInNldC1jaGlsZCIpOworICAgICAgICBzdXBlci5hICYmPSB2OworICAgIH0KK30KKworbGV0
IHggPSBuZXcgQ2hpbGQ7Cit4Ll9hID0gdHJ1ZTsKK3guYSA9IDQyOworeC5hID0gNDI7Cit4LmEg
PSA0MjsKKworbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2FgLCAic2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IHNldC1jaGlsZCBn
ZXQtcGFyZW50IHNldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOwor
CitjbGFzcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LXBh
cmVudCIpOworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEodikgewor
ICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hICYmPSB2Owor
ICAgIH0KK30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAg
ICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAg
ICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAg
ICAgIHN1cGVyLmEgJiY9IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsKK3guX2Eg
PSBmYWxzZTsKK3guYSA9IDQyOworeC5hID0gNDI7Cit4LmEgPSA0MjsKKworbG9nLmpvaW4oIiAi
KSArICIgIiArIHguX2FgLCAic2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9
IFtdOworCitjbGFzcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgi
Z2V0LXBhcmVudCIpOworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEo
dikgeworICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hICYm
PSB2OworICAgIH0KK30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgp
IHsKKyAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXIu
YTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7
CisgICAgICAgIHN1cGVyLmEgJiY9IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsK
K3guX2EgPSB1bmRlZmluZWQ7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xv
Zy5qb2luKCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGls
ZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIpOworCitzaG91bGRC
ZShgCitsZXQgbG9nID0gW107CisKK2NsYXNzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7CisgICAg
ICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9hOworICAg
IH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAg
ICAgIHRoaXMuX2EgJiY9IHY7CisgICAgfQorfQorY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQg
eworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAg
IHJldHVybiBzdXBlclsiYSJdOworICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5w
dXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgc3VwZXJbImEiXSAmJj0gdjsKKyAgICB9Cit9CisK
K2xldCB4ID0gbmV3IENoaWxkOworeC5fYSA9IHRydWU7Cit4LmEgPSA0MjsKK3guYSA9IDQyOwor
eC5hID0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQt
cGFyZW50IHNldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBzZXQtY2hp
bGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBb
XTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdl
dC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgfQorICAgIHNldCBhKHYp
IHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgdGhpcy5fYSAmJj0g
djsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7
CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyWyJh
Il07CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIp
OworICAgICAgICBzdXBlclsiYSJdICYmPSB2OworICAgIH0KK30KKworbGV0IHggPSBuZXcgQ2hp
bGQ7Cit4Ll9hID0gZmFsc2U7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xv
Zy5qb2luKCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGls
ZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGAK
K2xldCBsb2cgPSBbXTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAg
bG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgfQor
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAg
dGhpcy5fYSAmJj0gdjsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7Cisg
ICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgcmV0
dXJuIHN1cGVyWyJhIl07CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2go
InNldC1jaGlsZCIpOworICAgICAgICBzdXBlclsiYSJdICYmPSB2OworICAgIH0KK30KKworbGV0
IHggPSBuZXcgQ2hpbGQ7Cit4Ll9hID0gdW5kZWZpbmVkOworeC5hID0gNDI7Cit4LmEgPSA0MjsK
K3guYSA9IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsgeC5fYWAsICJzZXQtY2hpbGQgZ2V0
LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCB1bmRlZmlu
ZWQiKTsKKworc2hvdWxkQmUoYHVuZGVmaW5lZCAmJj0gNDJgLCB1bmRlZmluZWQpOworc2hvdWxk
VGhyb3coYG51bGwgJiY9IDQyYCwgU3ludGF4RXJyb3IpOworc2hvdWxkVGhyb3coYHRydWUgJiY9
IDQyYCwgU3ludGF4RXJyb3IpOworc2hvdWxkVGhyb3coYGZhbHNlICYmPSA0MmAsIFN5bnRheEVy
cm9yKTsKK3Nob3VsZFRocm93KGAwICYmPSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93
KGAxICYmPSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGAiIiAmJj0gNDJgLCBTeW50
YXhFcnJvcik7CitzaG91bGRUaHJvdyhgInRlc3QiICYmPSA0MmAsIFN5bnRheEVycm9yKTsKK3No
b3VsZFRocm93KGB7fSAmJj0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhgW10gJiY9
IDQyYCwgU3ludGF4RXJyb3IpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1h
c3NpZ25tZW50LW9wZXJhdG9yLWNvYWxlc2NlLmpzIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1h
c3NpZ25tZW50LW9wZXJhdG9yLWNvYWxlc2NlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZTVkNTg4MGMzYzhh
OWI2MWY2ZmY5ZWViNjFiNjQwNmFmMDZmNTIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItY29hbGVzY2UuanMKQEAgLTAsMCArMSw2
MzMgQEAKKy8vQCBydW5Mb2dpY2FsQXNzaWdubWVudE9wZXJhdG9yc0VuYWJsZWQKKworZnVuY3Rp
b24gc2hvdWxkQmUoc2NyaXB0LCBleHBlY3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBldmFsKHNj
cmlwdCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFs
IGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdv
dCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93
KHNjcmlwdCwgZXJyb3JUeXBlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAg
IGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAg
ICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vycm9y
ICYmIGVycm9yLm5hbWV9IWApOworfQorCitzaG91bGRCZShgdmFyIHg7IHggPz89IDQyYCwgNDIp
Oworc2hvdWxkQmUoYHZhciB4ID0gdW5kZWZpbmVkOyB4ID8/PSBudWxsYCwgbnVsbCk7CitzaG91
bGRCZShgdmFyIHggPSBudWxsOyB4ID8/PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOworc2hvdWxk
QmUoYHZhciB4ID0gdW5kZWZpbmVkOyB4ID8/PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9
IG51bGw7IHggPz89IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0gdHJ1ZTsgeCA/Pz0gNDJg
LCB0cnVlKTsKK3Nob3VsZEJlKGB2YXIgeCA9IGZhbHNlOyB4ID8/PSA0MmAsIGZhbHNlKTsKK3No
b3VsZEJlKGB2YXIgeCA9IDA7IHggPz89IDQyYCwgMCk7CitzaG91bGRCZShgdmFyIHggPSAxOyB4
ID8/PSA0MmAsIDEpOworc2hvdWxkQmUoYHZhciB4ID0gIiI7IHggPz89IDQyYCwgIiIpOworc2hv
dWxkQmUoYHZhciB4ID0gInRlc3QiOyB4ID8/PSA0MmAsICJ0ZXN0Iik7CitzaG91bGRCZShgdmFy
IHggPSB7fTsgeCA/Pz0gNDJgLCBPYmplY3QpOworc2hvdWxkQmUoYHZhciB4ID0gW107IHggPz89
IDQyYCwgQXJyYXkpOworCitzaG91bGRCZShgbGV0IHg7IHggPz89IDQyYCwgNDIpOworc2hvdWxk
QmUoYGxldCB4ID0gdW5kZWZpbmVkOyB4ID8/PSBudWxsYCwgbnVsbCk7CitzaG91bGRCZShgbGV0
IHggPSBudWxsOyB4ID8/PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4
ID0gdW5kZWZpbmVkOyB4ID8/PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IG51bGw7IHgg
Pz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZTsgeCA/Pz0gNDJgLCB0cnVlKTsK
K3Nob3VsZEJlKGBsZXQgeCA9IGZhbHNlOyB4ID8/PSA0MmAsIGZhbHNlKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IDA7IHggPz89IDQyYCwgMCk7CitzaG91bGRCZShgbGV0IHggPSAxOyB4ID8/PSA0MmAs
IDEpOworc2hvdWxkQmUoYGxldCB4ID0gIiI7IHggPz89IDQyYCwgIiIpOworc2hvdWxkQmUoYGxl
dCB4ID0gInRlc3QiOyB4ID8/PSA0MmAsICJ0ZXN0Iik7CitzaG91bGRCZShgbGV0IHggPSB7fTsg
eCA/Pz0gNDJgLCBPYmplY3QpOworc2hvdWxkQmUoYGxldCB4ID0gW107IHggPz89IDQyYCwgQXJy
YXkpOworCitzaG91bGRUaHJvdyhgY29uc3QgeDsgeCA/Pz0gNDJgLCBTeW50YXhFcnJvcik7Citz
aG91bGRUaHJvdyhgY29uc3QgeCA9IHVuZGVmaW5lZDsgeCA/Pz0gbnVsbGAsIFR5cGVFcnJvcik7
CitzaG91bGRUaHJvdyhgY29uc3QgeCA9IG51bGw7IHggPz89IHVuZGVmaW5lZGAsIFR5cGVFcnJv
cik7CitzaG91bGRUaHJvdyhgY29uc3QgeCA9IHVuZGVmaW5lZDsgeCA/Pz0gNDJgLCBUeXBlRXJy
b3IpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSBudWxsOyB4ID8/PSA0MmAsIFR5cGVFcnJvcik7
CitzaG91bGRUaHJvdyhgY29uc3QgeCA9IHRydWU7IHggPz89IDQyYCwgVHlwZUVycm9yKTsKK3No
b3VsZFRocm93KGBjb25zdCB4ID0gZmFsc2U7IHggPz89IDQyYCwgVHlwZUVycm9yKTsKK3Nob3Vs
ZFRocm93KGBjb25zdCB4ID0gMDsgeCA/Pz0gNDJgLCBUeXBlRXJyb3IpOworc2hvdWxkVGhyb3co
YGNvbnN0IHggPSAxOyB4ID8/PSA0MmAsIFR5cGVFcnJvcik7CitzaG91bGRUaHJvdyhgY29uc3Qg
eCA9ICIiOyB4ID8/PSA0MmAsIFR5cGVFcnJvcik7CitzaG91bGRUaHJvdyhgY29uc3QgeCA9ICJ0
ZXN0IjsgeCA/Pz0gNDJgLCBUeXBlRXJyb3IpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSB7fTsg
eCA/Pz0gNDJgLCBUeXBlRXJyb3IpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSBbXTsgeCA/Pz0g
NDJgLCBUeXBlRXJyb3IpOworCitzaG91bGRCZShgdmFyIHggPSB7fTsgeC5hID8/PSA0MmAsIDQy
KTsKK3Nob3VsZEJlKGB2YXIgeCA9IHt9OyB4LmEgPz89IDQyOyB4LmFgLCA0Mik7CitzaG91bGRC
ZShgdmFyIHggPSB7YTogdW5kZWZpbmVkfTsgeC5hID8/PSBudWxsYCwgbnVsbCk7CitzaG91bGRC
ZShgdmFyIHggPSB7YTogdW5kZWZpbmVkfTsgeC5hID8/PSBudWxsOyB4LmFgLCBudWxsKTsKK3No
b3VsZEJlKGB2YXIgeCA9IHthOiBudWxsfTsgeC5hID8/PSB1bmRlZmluZWRgLCB1bmRlZmluZWQp
Oworc2hvdWxkQmUoYHZhciB4ID0ge2E6IG51bGx9OyB4LmEgPz89IHVuZGVmaW5lZDsgeC5hYCwg
dW5kZWZpbmVkKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgPz89IDQy
YCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSA/Pz0gNDI7IHgu
YWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBudWxsfTsgeC5hID8/PSA0MmAsIDQyKTsK
K3Nob3VsZEJlKGB2YXIgeCA9IHthOiBudWxsfTsgeC5hID8/PSA0MjsgeC5hYCwgNDIpOworc2hv
dWxkQmUoYHZhciB4ID0ge2E6IHRydWV9OyB4LmEgPz89IDQyYCwgdHJ1ZSk7CitzaG91bGRCZShg
dmFyIHggPSB7YTogdHJ1ZX07IHguYSA/Pz0gNDI7IHguYWAsIHRydWUpOworc2hvdWxkQmUoYHZh
ciB4ID0ge2E6IGZhbHNlfTsgeC5hID8/PSA0MmAsIGZhbHNlKTsKK3Nob3VsZEJlKGB2YXIgeCA9
IHthOiBmYWxzZX07IHguYSA/Pz0gNDI7IHguYWAsIGZhbHNlKTsKK3Nob3VsZEJlKGB2YXIgeCA9
IHthOiAwfTsgeC5hID8/PSA0MmAsIDApOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IDB9OyB4LmEg
Pz89IDQyOyB4LmFgLCAwKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiAxfTsgeC5hID8/PSA0MmAs
IDEpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IDF9OyB4LmEgPz89IDQyOyB4LmFgLCAxKTsKK3No
b3VsZEJlKGB2YXIgeCA9IHthOiAiIn07IHguYSA/Pz0gNDJgLCAiIik7CitzaG91bGRCZShgdmFy
IHggPSB7YTogIiJ9OyB4LmEgPz89IDQyOyB4LmFgLCAiIik7CitzaG91bGRCZShgdmFyIHggPSB7
YTogInRlc3QifTsgeC5hID8/PSA0MmAsICJ0ZXN0Iik7CitzaG91bGRCZShgdmFyIHggPSB7YTog
InRlc3QifTsgeC5hID8/PSA0MjsgeC5hYCwgInRlc3QiKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHth
OiB7fX07IHguYSA/Pz0gNDJgLCBPYmplY3QpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHt9fTsg
eC5hID8/PSA0MjsgeC5hYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBbXX07IHgu
YSA/Pz0gNDJgLCBBcnJheSk7CitzaG91bGRCZShgdmFyIHggPSB7YTogW119OyB4LmEgPz89IDQy
OyB4LmFgLCBBcnJheSk7CisKK3Nob3VsZEJlKGBsZXQgeCA9IHt9OyB4LmEgPz89IDQyYCwgNDIp
Oworc2hvdWxkQmUoYGxldCB4ID0ge307IHguYSA/Pz0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJl
KGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgPz89IG51bGxgLCBudWxsKTsKK3Nob3VsZEJl
KGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgPz89IG51bGw7IHguYWAsIG51bGwpOworc2hv
dWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4LmEgPz89IHVuZGVmaW5lZGAsIHVuZGVmaW5lZCk7
CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHguYSA/Pz0gdW5kZWZpbmVkOyB4LmFgLCB1
bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSA/Pz0gNDJg
LCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeC5hID8/PSA0MjsgeC5h
YCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4LmEgPz89IDQyYCwgNDIpOwor
c2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4LmEgPz89IDQyOyB4LmFgLCA0Mik7CitzaG91
bGRCZShgbGV0IHggPSB7YTogdHJ1ZX07IHguYSA/Pz0gNDJgLCB0cnVlKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHthOiB0cnVlfTsgeC5hID8/PSA0MjsgeC5hYCwgdHJ1ZSk7CitzaG91bGRCZShgbGV0
IHggPSB7YTogZmFsc2V9OyB4LmEgPz89IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0g
e2E6IGZhbHNlfTsgeC5hID8/PSA0MjsgeC5hYCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0g
e2E6IDB9OyB4LmEgPz89IDQyYCwgMCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogMH07IHguYSA/
Pz0gNDI7IHguYWAsIDApOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDF9OyB4LmEgPz89IDQyYCwg
MSk7CitzaG91bGRCZShgbGV0IHggPSB7YTogMX07IHguYSA/Pz0gNDI7IHguYWAsIDEpOworc2hv
dWxkQmUoYGxldCB4ID0ge2E6ICIifTsgeC5hID8/PSA0MmAsICIiKTsKK3Nob3VsZEJlKGBsZXQg
eCA9IHthOiAiIn07IHguYSA/Pz0gNDI7IHguYWAsICIiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHth
OiAidGVzdCJ9OyB4LmEgPz89IDQyYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAi
dGVzdCJ9OyB4LmEgPz89IDQyOyB4LmFgLCAidGVzdCIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6
IHt9fTsgeC5hID8/PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShgbGV0IHggPSB7YToge319OyB4
LmEgPz89IDQyOyB4LmFgLCBPYmplY3QpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IFtdfTsgeC5h
ID8/PSA0MmAsIEFycmF5KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBbXX07IHguYSA/Pz0gNDI7
IHguYWAsIEFycmF5KTsKKworc2hvdWxkQmUoYGNvbnN0IHggPSB7fTsgeC5hID8/PSA0MmAsIDQy
KTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge307IHguYSA/Pz0gNDI7IHguYWAsIDQyKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSA/Pz0gbnVsbGAsIG51bGwpOworc2hv
dWxkQmUoYGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsgeC5hID8/PSBudWxsOyB4LmFgLCBudWxs
KTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IG51bGx9OyB4LmEgPz89IHVuZGVmaW5lZGAsIHVu
ZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeC5hID8/PSB1bmRlZmlu
ZWQ7IHguYWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9
OyB4LmEgPz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsg
eC5hID8/PSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHgu
YSA/Pz0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeC5hID8/PSA0
MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdHJ1ZX07IHguYSA/Pz0gNDJg
LCB0cnVlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHRydWV9OyB4LmEgPz89IDQyOyB4LmFg
LCB0cnVlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IGZhbHNlfTsgeC5hID8/PSA0MmAsIGZh
bHNlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IGZhbHNlfTsgeC5hID8/PSA0MjsgeC5hYCwg
ZmFsc2UpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMH07IHguYSA/Pz0gNDJgLCAwKTsKK3No
b3VsZEJlKGBjb25zdCB4ID0ge2E6IDB9OyB4LmEgPz89IDQyOyB4LmFgLCAwKTsKK3Nob3VsZEJl
KGBjb25zdCB4ID0ge2E6IDF9OyB4LmEgPz89IDQyYCwgMSk7CitzaG91bGRCZShgY29uc3QgeCA9
IHthOiAxfTsgeC5hID8/PSA0MjsgeC5hYCwgMSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAi
In07IHguYSA/Pz0gNDJgLCAiIik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAiIn07IHguYSA/
Pz0gNDI7IHguYWAsICIiKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6ICJ0ZXN0In07IHguYSA/
Pz0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogInRlc3QifTsgeC5hID8/
PSA0MjsgeC5hYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHt9fTsgeC5hID8/
PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB7fX07IHguYSA/Pz0gNDI7
IHguYWAsIE9iamVjdCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHguYSA/Pz0gNDJg
LCBBcnJheSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHguYSA/Pz0gNDI7IHguYWAs
IEFycmF5KTsKKworc2hvdWxkQmUoYHZhciB4ID0ge307IHhbImEiXSA/Pz0gNDJgLCA0Mik7Citz
aG91bGRCZShgdmFyIHggPSB7fTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgNDIpOworc2hvdWxk
QmUoYHZhciB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSA/Pz0gbnVsbGAsIG51bGwpOworc2hv
dWxkQmUoYHZhciB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSA/Pz0gbnVsbDsgeFsiYSJdYCwg
bnVsbCk7CitzaG91bGRCZShgdmFyIHggPSB7YTogbnVsbH07IHhbImEiXSA/Pz0gdW5kZWZpbmVk
YCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBudWxsfTsgeFsiYSJdID8/PSB1
bmRlZmluZWQ7IHhbImEiXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgdmFyIHggPSB7YTogdW5k
ZWZpbmVkfTsgeFsiYSJdID8/PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiB1bmRl
ZmluZWR9OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSB7
YTogbnVsbH07IHhbImEiXSA/Pz0gNDJgLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSB7YTogbnVs
bH07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiB0
cnVlfTsgeFsiYSJdID8/PSA0MmAsIHRydWUpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHRydWV9
OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCB0cnVlKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBm
YWxzZX07IHhbImEiXSA/Pz0gNDJgLCBmYWxzZSk7CitzaG91bGRCZShgdmFyIHggPSB7YTogZmFs
c2V9OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCBmYWxzZSk7CitzaG91bGRCZShgdmFyIHggPSB7
YTogMH07IHhbImEiXSA/Pz0gNDJgLCAwKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiAwfTsgeFsi
YSJdID8/PSA0MjsgeFsiYSJdYCwgMCk7CitzaG91bGRCZShgdmFyIHggPSB7YTogMX07IHhbImEi
XSA/Pz0gNDJgLCAxKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiAxfTsgeFsiYSJdID8/PSA0Mjsg
eFsiYSJdYCwgMSk7CitzaG91bGRCZShgdmFyIHggPSB7YTogIiJ9OyB4WyJhIl0gPz89IDQyYCwg
IiIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6ICIifTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwg
IiIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6ICJ0ZXN0In07IHhbImEiXSA/Pz0gNDJgLCAidGVz
dCIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6ICJ0ZXN0In07IHhbImEiXSA/Pz0gNDI7IHhbImEi
XWAsICJ0ZXN0Iik7CitzaG91bGRCZShgdmFyIHggPSB7YToge319OyB4WyJhIl0gPz89IDQyYCwg
T2JqZWN0KTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiB7fX07IHhbImEiXSA/Pz0gNDI7IHhbImEi
XWAsIE9iamVjdCk7CitzaG91bGRCZShgdmFyIHggPSB7YTogW119OyB4WyJhIl0gPz89IDQyYCwg
QXJyYXkpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IFtdfTsgeFsiYSJdID8/PSA0MjsgeFsiYSJd
YCwgQXJyYXkpOworCitzaG91bGRCZShgbGV0IHggPSB7fTsgeFsiYSJdID8/PSA0MmAsIDQyKTsK
K3Nob3VsZEJlKGBsZXQgeCA9IHt9OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91
bGRCZShgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdID8/PSBudWxsYCwgbnVsbCk7Citz
aG91bGRCZShgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdID8/PSBudWxsOyB4WyJhIl1g
LCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBudWxsfTsgeFsiYSJdID8/PSB1bmRlZmlu
ZWRgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gPz89
IHVuZGVmaW5lZDsgeFsiYSJdYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1
bmRlZmluZWR9OyB4WyJhIl0gPz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHVu
ZGVmaW5lZH07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IHthOiBudWxsfTsgeFsiYSJdID8/PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBu
dWxsfTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6
IHRydWV9OyB4WyJhIl0gPz89IDQyYCwgdHJ1ZSk7CitzaG91bGRCZShgbGV0IHggPSB7YTogdHJ1
ZX07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIHRydWUpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6
IGZhbHNlfTsgeFsiYSJdID8/PSA0MmAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBm
YWxzZX07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IHthOiAwfTsgeFsiYSJdID8/PSA0MmAsIDApOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDB9OyB4
WyJhIl0gPz89IDQyOyB4WyJhIl1gLCAwKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAxfTsgeFsi
YSJdID8/PSA0MmAsIDEpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDF9OyB4WyJhIl0gPz89IDQy
OyB4WyJhIl1gLCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAiIn07IHhbImEiXSA/Pz0gNDJg
LCAiIik7CitzaG91bGRCZShgbGV0IHggPSB7YTogIiJ9OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1g
LCAiIik7CitzaG91bGRCZShgbGV0IHggPSB7YTogInRlc3QifTsgeFsiYSJdID8/PSA0MmAsICJ0
ZXN0Iik7CitzaG91bGRCZShgbGV0IHggPSB7YTogInRlc3QifTsgeFsiYSJdID8/PSA0MjsgeFsi
YSJdYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB7fX07IHhbImEiXSA/Pz0gNDJg
LCBPYmplY3QpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHt9fTsgeFsiYSJdID8/PSA0MjsgeFsi
YSJdYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBbXX07IHhbImEiXSA/Pz0gNDJg
LCBBcnJheSk7CitzaG91bGRCZShgbGV0IHggPSB7YTogW119OyB4WyJhIl0gPz89IDQyOyB4WyJh
Il1gLCBBcnJheSk7CisKK3Nob3VsZEJlKGBjb25zdCB4ID0ge307IHhbImEiXSA/Pz0gNDJgLCA0
Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHt9OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCA0Mik7
CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gPz89IG51bGxgLCBu
dWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSA/Pz0gbnVs
bDsgeFsiYSJdYCwgbnVsbCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeFsiYSJd
ID8/PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVs
bH07IHhbImEiXSA/Pz0gdW5kZWZpbmVkOyB4WyJhIl1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUo
YGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdID8/PSA0MmAsIDQyKTsKK3Nob3VsZEJl
KGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIDQyKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gPz89IDQyYCwgNDIpOworc2hv
dWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIDQyKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHRydWV9OyB4WyJhIl0gPz89IDQyYCwgdHJ1ZSk7Citz
aG91bGRCZShgY29uc3QgeCA9IHthOiB0cnVlfTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgdHJ1
ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBmYWxzZX07IHhbImEiXSA/Pz0gNDJgLCBmYWxz
ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBmYWxzZX07IHhbImEiXSA/Pz0gNDI7IHhbImEi
XWAsIGZhbHNlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDB9OyB4WyJhIl0gPz89IDQyYCwg
MCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAwfTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwg
MCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAxfTsgeFsiYSJdID8/PSA0MmAsIDEpOworc2hv
dWxkQmUoYGNvbnN0IHggPSB7YTogMX07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIDEpOworc2hv
dWxkQmUoYGNvbnN0IHggPSB7YTogIiJ9OyB4WyJhIl0gPz89IDQyYCwgIiIpOworc2hvdWxkQmUo
YGNvbnN0IHggPSB7YTogIiJ9OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCAiIik7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiAidGVzdCJ9OyB4WyJhIl0gPz89IDQyYCwgInRlc3QiKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0ge2E6ICJ0ZXN0In07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsICJ0ZXN0
Iik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB7fX07IHhbImEiXSA/Pz0gNDJgLCBPYmplY3Qp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB7YToge319OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCBP
YmplY3QpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogW119OyB4WyJhIl0gPz89IDQyYCwgQXJy
YXkpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogW119OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1g
LCBBcnJheSk7CisKK3Nob3VsZEJlKGB2YXIgeCA9IFtdOyB4WzBdID8/PSA0MmAsIDQyKTsKK3No
b3VsZEJlKGB2YXIgeCA9IFtdOyB4WzBdID8/PSA0MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGB2
YXIgeCA9IFt1bmRlZmluZWRdOyB4WzBdID8/PSBudWxsYCwgbnVsbCk7CitzaG91bGRCZShgdmFy
IHggPSBbdW5kZWZpbmVkXTsgeFswXSA/Pz0gbnVsbDsgeFswXWAsIG51bGwpOworc2hvdWxkQmUo
YHZhciB4ID0gW251bGxdOyB4WzBdID8/PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOworc2hvdWxk
QmUoYHZhciB4ID0gW251bGxdOyB4WzBdID8/PSB1bmRlZmluZWQ7IHhbMF1gLCB1bmRlZmluZWQp
Oworc2hvdWxkQmUoYHZhciB4ID0gW3VuZGVmaW5lZF07IHhbMF0gPz89IDQyYCwgNDIpOworc2hv
dWxkQmUoYHZhciB4ID0gW3VuZGVmaW5lZF07IHhbMF0gPz89IDQyOyB4WzBdYCwgNDIpOworc2hv
dWxkQmUoYHZhciB4ID0gW251bGxdOyB4WzBdID8/PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIg
eCA9IFtudWxsXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSBb
dHJ1ZV07IHhbMF0gPz89IDQyYCwgdHJ1ZSk7CitzaG91bGRCZShgdmFyIHggPSBbdHJ1ZV07IHhb
MF0gPz89IDQyOyB4WzBdYCwgdHJ1ZSk7CitzaG91bGRCZShgdmFyIHggPSBbZmFsc2VdOyB4WzBd
ID8/PSA0MmAsIGZhbHNlKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFtmYWxzZV07IHhbMF0gPz89IDQy
OyB4WzBdYCwgZmFsc2UpOworc2hvdWxkQmUoYHZhciB4ID0gWzBdOyB4WzBdID8/PSA0MmAsIDAp
Oworc2hvdWxkQmUoYHZhciB4ID0gWzBdOyB4WzBdID8/PSA0MjsgeFswXWAsIDApOworc2hvdWxk
QmUoYHZhciB4ID0gWzFdOyB4WzBdID8/PSA0MmAsIDEpOworc2hvdWxkQmUoYHZhciB4ID0gWzFd
OyB4WzBdID8/PSA0MjsgeFswXWAsIDEpOworc2hvdWxkQmUoYHZhciB4ID0gWyIiXTsgeFswXSA/
Pz0gNDJgLCAiIik7CitzaG91bGRCZShgdmFyIHggPSBbIiJdOyB4WzBdID8/PSA0MjsgeFswXWAs
ICIiKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFsidGVzdCJdOyB4WzBdID8/PSA0MmAsICJ0ZXN0Iik7
CitzaG91bGRCZShgdmFyIHggPSBbInRlc3QiXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCAidGVzdCIp
Oworc2hvdWxkQmUoYHZhciB4ID0gW3t9XTsgeFswXSA/Pz0gNDJgLCBPYmplY3QpOworc2hvdWxk
QmUoYHZhciB4ID0gW3t9XTsgeFswXSA/Pz0gNDI7IHhbMF1gLCBPYmplY3QpOworc2hvdWxkQmUo
YHZhciB4ID0gW1tdXTsgeFswXSA/Pz0gNDJgLCBBcnJheSk7CitzaG91bGRCZShgdmFyIHggPSBb
W11dOyB4WzBdID8/PSA0MjsgeFswXWAsIEFycmF5KTsKKworc2hvdWxkQmUoYGxldCB4ID0gW107
IHhbMF0gPz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gW107IHhbMF0gPz89IDQyOyB4
WzBdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gW3VuZGVmaW5lZF07IHhbMF0gPz89IG51bGxg
LCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt1bmRlZmluZWRdOyB4WzBdID8/PSBudWxsOyB4
WzBdYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSBbbnVsbF07IHhbMF0gPz89IHVuZGVmaW5l
ZGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSBbbnVsbF07IHhbMF0gPz89IHVuZGVm
aW5lZDsgeFswXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSBbdW5kZWZpbmVkXTsg
eFswXSA/Pz0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBbdW5kZWZpbmVkXTsgeFswXSA/
Pz0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBbbnVsbF07IHhbMF0gPz89IDQy
YCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gW251bGxdOyB4WzBdID8/PSA0MjsgeFswXWAsIDQy
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt0cnVlXTsgeFswXSA/Pz0gNDJgLCB0cnVlKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IFt0cnVlXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCB0cnVlKTsKK3Nob3VsZEJl
KGBsZXQgeCA9IFtmYWxzZV07IHhbMF0gPz89IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4
ID0gW2ZhbHNlXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCBmYWxzZSk7CitzaG91bGRCZShgbGV0IHgg
PSBbMF07IHhbMF0gPz89IDQyYCwgMCk7CitzaG91bGRCZShgbGV0IHggPSBbMF07IHhbMF0gPz89
IDQyOyB4WzBdYCwgMCk7CitzaG91bGRCZShgbGV0IHggPSBbMV07IHhbMF0gPz89IDQyYCwgMSk7
CitzaG91bGRCZShgbGV0IHggPSBbMV07IHhbMF0gPz89IDQyOyB4WzBdYCwgMSk7CitzaG91bGRC
ZShgbGV0IHggPSBbIiJdOyB4WzBdID8/PSA0MmAsICIiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFsi
Il07IHhbMF0gPz89IDQyOyB4WzBdYCwgIiIpOworc2hvdWxkQmUoYGxldCB4ID0gWyJ0ZXN0Il07
IHhbMF0gPz89IDQyYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFsidGVzdCJdOyB4WzBd
ID8/PSA0MjsgeFswXWAsICJ0ZXN0Iik7CitzaG91bGRCZShgbGV0IHggPSBbe31dOyB4WzBdID8/
PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShgbGV0IHggPSBbe31dOyB4WzBdID8/PSA0MjsgeFsw
XWAsIE9iamVjdCk7CitzaG91bGRCZShgbGV0IHggPSBbW11dOyB4WzBdID8/PSA0MmAsIEFycmF5
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtbXV07IHhbMF0gPz89IDQyOyB4WzBdYCwgQXJyYXkpOwor
CitzaG91bGRCZShgY29uc3QgeCA9IFtdOyB4WzBdID8/PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBj
b25zdCB4ID0gW107IHhbMF0gPz89IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHgg
PSBbdW5kZWZpbmVkXTsgeFswXSA/Pz0gbnVsbGAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHgg
PSBbdW5kZWZpbmVkXTsgeFswXSA/Pz0gbnVsbDsgeFswXWAsIG51bGwpOworc2hvdWxkQmUoYGNv
bnN0IHggPSBbbnVsbF07IHhbMF0gPz89IHVuZGVmaW5lZGAsIHVuZGVmaW5lZCk7CitzaG91bGRC
ZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSA/Pz0gdW5kZWZpbmVkOyB4WzBdYCwgdW5kZWZpbmVk
KTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW3VuZGVmaW5lZF07IHhbMF0gPz89IDQyYCwgNDIpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSBbdW5kZWZpbmVkXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCA0Mik7
CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSA/Pz0gNDJgLCA0Mik7CitzaG91bGRC
ZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShg
Y29uc3QgeCA9IFt0cnVlXTsgeFswXSA/Pz0gNDJgLCB0cnVlKTsKK3Nob3VsZEJlKGBjb25zdCB4
ID0gW3RydWVdOyB4WzBdID8/PSA0MjsgeFswXWAsIHRydWUpOworc2hvdWxkQmUoYGNvbnN0IHgg
PSBbZmFsc2VdOyB4WzBdID8/PSA0MmAsIGZhbHNlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW2Zh
bHNlXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCBmYWxzZSk7CitzaG91bGRCZShgY29uc3QgeCA9IFsw
XTsgeFswXSA/Pz0gNDJgLCAwKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gWzBdOyB4WzBdID8/PSA0
MjsgeFswXWAsIDApOworc2hvdWxkQmUoYGNvbnN0IHggPSBbMV07IHhbMF0gPz89IDQyYCwgMSk7
CitzaG91bGRCZShgY29uc3QgeCA9IFsxXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCAxKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0gWyIiXTsgeFswXSA/Pz0gNDJgLCAiIik7CitzaG91bGRCZShgY29uc3Qg
eCA9IFsiIl07IHhbMF0gPz89IDQyOyB4WzBdYCwgIiIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBb
InRlc3QiXTsgeFswXSA/Pz0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbInRl
c3QiXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCAidGVzdCIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBb
e31dOyB4WzBdID8/PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShgY29uc3QgeCA9IFt7fV07IHhb
MF0gPz89IDQyOyB4WzBdYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW1tdXTsgeFsw
XSA/Pz0gNDJgLCBBcnJheSk7CitzaG91bGRCZShgY29uc3QgeCA9IFtbXV07IHhbMF0gPz89IDQy
OyB4WzBdYCwgQXJyYXkpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2xldCBhID0g
dHJ1ZTsKK2xldCB4ID0geworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0Iik7
CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAgc2V0IGEodikgeworICAgICAgICBsb2cu
cHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAgIH0sCit9OworCit4LmEgPz89IDQyOwor
eC5hID8/PSA0MjsKK3guYSA/Pz0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyBhYCwgImdl
dCBnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitsZXQgYSA9
IGZhbHNlOworbGV0IHggPSB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQi
KTsKKyAgICAgICAgcmV0dXJuIGE7CisgICAgfSwKKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxv
Zy5wdXNoKCJzZXQiKTsKKyAgICAgICAgYSA9IHY7CisgICAgfSwKK307CisKK3guYSA/Pz0gNDI7
Cit4LmEgPz89IDQyOworeC5hID8/PSA0MjsKKworbG9nLmpvaW4oIiAiKSArICIgIiArIGFgLCAi
Z2V0IGdldCBnZXQgZmFsc2UiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitsZXQg
YSA9IHVuZGVmaW5lZDsKK2xldCB4ID0geworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVz
aCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAgc2V0IGEodikgeworICAg
ICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAgIH0sCit9OworCit4LmEg
Pz89IDQyOworeC5hID8/PSA0MjsKK3guYSA/Pz0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIg
KyBhYCwgImdldCBzZXQgZ2V0IGdldCA0MiIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107
CisKK2xldCBhID0gdHJ1ZTsKK2xldCB4ID0geworICAgIGdldCBhKCkgeworICAgICAgICBsb2cu
cHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAgc2V0IGEodikgewor
ICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAgIH0sCit9OworCit4
WyJhIl0gPz89IDQyOworeFsiYSJdID8/PSA0MjsKK3hbImEiXSA/Pz0gNDI7CisKK2xvZy5qb2lu
KCIgIikgKyAiICIgKyBhYCwgImdldCBnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUoYAorbGV0
IGxvZyA9IFtdOworCitsZXQgYSA9IGZhbHNlOworbGV0IHggPSB7CisgICAgZ2V0IGEoKSB7Cisg
ICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgcmV0dXJuIGE7CisgICAgfSwKKyAgICBz
ZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgYSA9IHY7CisgICAg
fSwKK307CisKK3hbImEiXSA/Pz0gNDI7Cit4WyJhIl0gPz89IDQyOworeFsiYSJdID8/PSA0MjsK
KworbG9nLmpvaW4oIiAiKSArICIgIiArIGFgLCAiZ2V0IGdldCBnZXQgZmFsc2UiKTsKKworc2hv
dWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitsZXQgYSA9IHVuZGVmaW5lZDsKK2xldCB4ID0gewor
ICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBh
OworICAgIH0sCisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAg
ICAgIGEgPSB2OworICAgIH0sCit9OworCit4WyJhIl0gPz89IDQyOworeFsiYSJdID8/PSA0MjsK
K3hbImEiXSA/Pz0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyBhYCwgImdldCBzZXQgZ2V0
IGdldCA0MiIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2NsYXNzIFBhcmVudCB7
CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAg
IHJldHVybiB0aGlzLl9hOworICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNo
KCJzZXQtcGFyZW50Iik7CisgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgfQorfQorY2xhc3Mg
Q2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgi
Z2V0LWNoaWxkIik7CisgICAgICAgIHJldHVybiBzdXBlci5hOworICAgIH0KKyAgICBzZXQgYSh2
KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgc3VwZXIuYSA/Pz0g
djsKKyAgICB9Cit9CisKK2xldCB4ID0gbmV3IENoaWxkOworeC5fYSA9IHRydWU7Cit4LmEgPSA0
MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hYCwg
InNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQt
cGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitjbGFzcyBQYXJl
bnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAg
ICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cu
cHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hID8/PSB2OworICAgIH0KK30KK2Ns
YXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1
c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICB9CisgICAgc2V0
IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgIHN1cGVyLmEg
Pz89IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsKK3guX2EgPSBmYWxzZTsKK3gu
YSA9IDQyOworeC5hID0gNDI7Cit4LmEgPSA0MjsKKworbG9nLmpvaW4oIiAiKSArICIgIiArIHgu
X2FgLCAic2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxk
IGdldC1wYXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitjbGFz
cyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIp
OworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAg
ICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hID8/PSB2OworICAgIH0K
K30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAg
bG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICB9Cisg
ICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgIHN1
cGVyLmEgPz89IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsKK3guX2EgPSB1bmRl
ZmluZWQ7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xvZy5qb2luKCIgIikg
KyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgc2V0LWNoaWxk
IGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUoYAorbGV0
IGxvZyA9IFtdOworCitjbGFzcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cu
cHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAg
c2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlz
Ll9hID8/PSB2OworICAgIH0KK30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBn
ZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4g
c3VwZXJbImEiXTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0
LWNoaWxkIik7CisgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7CisgICAgfQorfQorCitsZXQgeCA9
IG5ldyBDaGlsZDsKK3guX2EgPSB0cnVlOworeC5hID0gNDI7Cit4LmEgPSA0MjsKK3guYSA9IDQy
OworCitsb2cuam9pbigiICIpICsgIiAiICsgeC5fYWAsICJzZXQtY2hpbGQgZ2V0LXBhcmVudCBz
ZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7CisKK3Nob3Vs
ZEJlKGAKK2xldCBsb2cgPSBbXTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAg
ICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7Cisg
ICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAg
ICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVu
dCB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAg
ICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9n
LnB1c2goInNldC1jaGlsZCIpOworICAgICAgICBzdXBlclsiYSJdID8/PSB2OworICAgIH0KK30K
KworbGV0IHggPSBuZXcgQ2hpbGQ7Cit4Ll9hID0gZmFsc2U7Cit4LmEgPSA0MjsKK3guYSA9IDQy
OworeC5hID0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBn
ZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNl
Iik7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBbXTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBn
ZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJu
IHRoaXMuX2E7CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1w
YXJlbnQiKTsKKyAgICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBl
eHRlbmRzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hp
bGQiKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgfQorICAgIHNldCBhKHYpIHsK
KyAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICBzdXBlclsiYSJdID8/PSB2
OworICAgIH0KK30KKworbGV0IHggPSBuZXcgQ2hpbGQ7Cit4Ll9hID0gdW5kZWZpbmVkOworeC5h
ID0gNDI7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsgeC5f
YWAsICJzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50
IHNldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGB1bmRlZmluZWQgPz89IDQy
YCwgNDIpOworc2hvdWxkVGhyb3coYG51bGwgPz89IDQyYCwgU3ludGF4RXJyb3IpOworc2hvdWxk
VGhyb3coYHRydWUgPz89IDQyYCwgU3ludGF4RXJyb3IpOworc2hvdWxkVGhyb3coYGZhbHNlID8/
PSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGAwID8/PSA0MmAsIFN5bnRheEVycm9y
KTsKK3Nob3VsZFRocm93KGAxID8/PSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGAi
IiA/Pz0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhgInRlc3QiID8/PSA0MmAsIFN5
bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGB7fSA/Pz0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91
bGRUaHJvdyhgW10gPz89IDQyYCwgU3ludGF4RXJyb3IpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
bG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMjkyMjY0NDNh
MzcyNDdmZGFkMjAxNTE1MjM5MzQwNjM3M2NmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3Itb3IuanMKQEAgLTAsMCArMSw2MzMg
QEAKKy8vQCBydW5Mb2dpY2FsQXNzaWdubWVudE9wZXJhdG9yc0VuYWJsZWQKKworZnVuY3Rpb24g
c2hvdWxkQmUoc2NyaXB0LCBleHBlY3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBldmFsKHNjcmlw
dCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGlu
c3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAk
e0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KHNj
cmlwdCwgZXJyb3JUeXBlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGV2
YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9
CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vycm9yICYm
IGVycm9yLm5hbWV9IWApOworfQorCitzaG91bGRCZShgdmFyIHg7IHggfHw9IDQyYCwgNDIpOwor
c2hvdWxkQmUoYHZhciB4ID0gdW5kZWZpbmVkOyB4IHx8PSBudWxsYCwgbnVsbCk7CitzaG91bGRC
ZShgdmFyIHggPSBudWxsOyB4IHx8PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOworc2hvdWxkQmUo
YHZhciB4ID0gdW5kZWZpbmVkOyB4IHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IG51
bGw7IHggfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0gdHJ1ZTsgeCB8fD0gNDJgLCB0
cnVlKTsKK3Nob3VsZEJlKGB2YXIgeCA9IGZhbHNlOyB4IHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJl
KGB2YXIgeCA9IDA7IHggfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0gMTsgeCB8fD0g
NDJgLCAxKTsKK3Nob3VsZEJlKGB2YXIgeCA9ICIiOyB4IHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJl
KGB2YXIgeCA9ICJ0ZXN0IjsgeCB8fD0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUoYHZhciB4ID0g
e307IHggfHw9IDQyYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGB2YXIgeCA9IFtdOyB4IHx8PSA0MmAs
IEFycmF5KTsKKworc2hvdWxkQmUoYGxldCB4OyB4IHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHVuZGVmaW5lZDsgeCB8fD0gbnVsbGAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0g
bnVsbDsgeCB8fD0gdW5kZWZpbmVkYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHVu
ZGVmaW5lZDsgeCB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBudWxsOyB4IHx8PSA0
MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHRydWU7IHggfHw9IDQyYCwgdHJ1ZSk7CitzaG91
bGRCZShgbGV0IHggPSBmYWxzZTsgeCB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSAw
OyB4IHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IDE7IHggfHw9IDQyYCwgMSk7Citz
aG91bGRCZShgbGV0IHggPSAiIjsgeCB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSAi
dGVzdCI7IHggfHw9IDQyYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHt9OyB4IHx8PSA0
MmAsIE9iamVjdCk7CitzaG91bGRCZShgbGV0IHggPSBbXTsgeCB8fD0gNDJgLCBBcnJheSk7CisK
K3Nob3VsZFRocm93KGBjb25zdCB4OyB4IHx8PSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRo
cm93KGBjb25zdCB4ID0gdW5kZWZpbmVkOyB4IHx8PSBudWxsYCwgVHlwZUVycm9yKTsKK3Nob3Vs
ZFRocm93KGBjb25zdCB4ID0gbnVsbDsgeCB8fD0gdW5kZWZpbmVkYCwgVHlwZUVycm9yKTsKK3No
b3VsZFRocm93KGBjb25zdCB4ID0gdW5kZWZpbmVkOyB4IHx8PSA0MmAsIFR5cGVFcnJvcik7Citz
aG91bGRUaHJvdyhgY29uc3QgeCA9IG51bGw7IHggfHw9IDQyYCwgVHlwZUVycm9yKTsKK3Nob3Vs
ZFRocm93KGBjb25zdCB4ID0gdHJ1ZTsgeCB8fD0gNDJgLCBUeXBlRXJyb3IpOworc2hvdWxkVGhy
b3coYGNvbnN0IHggPSBmYWxzZTsgeCB8fD0gNDJgLCBUeXBlRXJyb3IpOworc2hvdWxkVGhyb3co
YGNvbnN0IHggPSAwOyB4IHx8PSA0MmAsIFR5cGVFcnJvcik7CitzaG91bGRUaHJvdyhgY29uc3Qg
eCA9IDE7IHggfHw9IDQyYCwgVHlwZUVycm9yKTsKK3Nob3VsZFRocm93KGBjb25zdCB4ID0gIiI7
IHggfHw9IDQyYCwgVHlwZUVycm9yKTsKK3Nob3VsZFRocm93KGBjb25zdCB4ID0gInRlc3QiOyB4
IHx8PSA0MmAsIFR5cGVFcnJvcik7CitzaG91bGRUaHJvdyhgY29uc3QgeCA9IHt9OyB4IHx8PSA0
MmAsIFR5cGVFcnJvcik7CitzaG91bGRUaHJvdyhgY29uc3QgeCA9IFtdOyB4IHx8PSA0MmAsIFR5
cGVFcnJvcik7CisKK3Nob3VsZEJlKGB2YXIgeCA9IHt9OyB4LmEgfHw9IDQyYCwgNDIpOworc2hv
dWxkQmUoYHZhciB4ID0ge307IHguYSB8fD0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIg
eCA9IHthOiB1bmRlZmluZWR9OyB4LmEgfHw9IG51bGxgLCBudWxsKTsKK3Nob3VsZEJlKGB2YXIg
eCA9IHthOiB1bmRlZmluZWR9OyB4LmEgfHw9IG51bGw7IHguYWAsIG51bGwpOworc2hvdWxkQmUo
YHZhciB4ID0ge2E6IG51bGx9OyB4LmEgfHw9IHVuZGVmaW5lZGAsIHVuZGVmaW5lZCk7CitzaG91
bGRCZShgdmFyIHggPSB7YTogbnVsbH07IHguYSB8fD0gdW5kZWZpbmVkOyB4LmFgLCB1bmRlZmlu
ZWQpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSB8fD0gNDJgLCA0Mik7
CitzaG91bGRCZShgdmFyIHggPSB7YTogdW5kZWZpbmVkfTsgeC5hIHx8PSA0MjsgeC5hYCwgNDIp
Oworc2hvdWxkQmUoYHZhciB4ID0ge2E6IG51bGx9OyB4LmEgfHw9IDQyYCwgNDIpOworc2hvdWxk
QmUoYHZhciB4ID0ge2E6IG51bGx9OyB4LmEgfHw9IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShg
dmFyIHggPSB7YTogdHJ1ZX07IHguYSB8fD0gNDJgLCB0cnVlKTsKK3Nob3VsZEJlKGB2YXIgeCA9
IHthOiB0cnVlfTsgeC5hIHx8PSA0MjsgeC5hYCwgdHJ1ZSk7CitzaG91bGRCZShgdmFyIHggPSB7
YTogZmFsc2V9OyB4LmEgfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IGZhbHNl
fTsgeC5hIHx8PSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IDB9OyB4LmEg
fHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IDB9OyB4LmEgfHw9IDQyOyB4LmFg
LCA0Mik7CitzaG91bGRCZShgdmFyIHggPSB7YTogMX07IHguYSB8fD0gNDJgLCAxKTsKK3Nob3Vs
ZEJlKGB2YXIgeCA9IHthOiAxfTsgeC5hIHx8PSA0MjsgeC5hYCwgMSk7CitzaG91bGRCZShgdmFy
IHggPSB7YTogIiJ9OyB4LmEgfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6ICIi
fTsgeC5hIHx8PSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6ICJ0ZXN0In07
IHguYSB8fD0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6ICJ0ZXN0In07IHgu
YSB8fD0gNDI7IHguYWAsICJ0ZXN0Iik7CitzaG91bGRCZShgdmFyIHggPSB7YToge319OyB4LmEg
fHw9IDQyYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiB7fX07IHguYSB8fD0gNDI7
IHguYWAsIE9iamVjdCk7CitzaG91bGRCZShgdmFyIHggPSB7YTogW119OyB4LmEgfHw9IDQyYCwg
QXJyYXkpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IFtdfTsgeC5hIHx8PSA0MjsgeC5hYCwgQXJy
YXkpOworCitzaG91bGRCZShgbGV0IHggPSB7fTsgeC5hIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJl
KGBsZXQgeCA9IHt9OyB4LmEgfHw9IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7
YTogdW5kZWZpbmVkfTsgeC5hIHx8PSBudWxsYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSB7
YTogdW5kZWZpbmVkfTsgeC5hIHx8PSBudWxsOyB4LmFgLCBudWxsKTsKK3Nob3VsZEJlKGBsZXQg
eCA9IHthOiBudWxsfTsgeC5hIHx8PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOworc2hvdWxkQmUo
YGxldCB4ID0ge2E6IG51bGx9OyB4LmEgfHw9IHVuZGVmaW5lZDsgeC5hYCwgdW5kZWZpbmVkKTsK
K3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgfHw9IDQyYCwgNDIpOworc2hv
dWxkQmUoYGxldCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSB8fD0gNDI7IHguYWAsIDQyKTsKK3No
b3VsZEJlKGBsZXQgeCA9IHthOiBudWxsfTsgeC5hIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHthOiBudWxsfTsgeC5hIHx8PSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYGxldCB4
ID0ge2E6IHRydWV9OyB4LmEgfHw9IDQyYCwgdHJ1ZSk7CitzaG91bGRCZShgbGV0IHggPSB7YTog
dHJ1ZX07IHguYSB8fD0gNDI7IHguYWAsIHRydWUpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IGZh
bHNlfTsgeC5hIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBmYWxzZX07IHgu
YSB8fD0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAwfTsgeC5hIHx8PSA0
MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAwfTsgeC5hIHx8PSA0MjsgeC5hYCwgNDIp
Oworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDF9OyB4LmEgfHw9IDQyYCwgMSk7CitzaG91bGRCZShg
bGV0IHggPSB7YTogMX07IHguYSB8fD0gNDI7IHguYWAsIDEpOworc2hvdWxkQmUoYGxldCB4ID0g
e2E6ICIifTsgeC5hIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAiIn07IHgu
YSB8fD0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAidGVzdCJ9OyB4LmEg
fHw9IDQyYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAidGVzdCJ9OyB4LmEgfHw9
IDQyOyB4LmFgLCAidGVzdCIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHt9fTsgeC5hIHx8PSA0
MmAsIE9iamVjdCk7CitzaG91bGRCZShgbGV0IHggPSB7YToge319OyB4LmEgfHw9IDQyOyB4LmFg
LCBPYmplY3QpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IFtdfTsgeC5hIHx8PSA0MmAsIEFycmF5
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBbXX07IHguYSB8fD0gNDI7IHguYWAsIEFycmF5KTsK
Kworc2hvdWxkQmUoYGNvbnN0IHggPSB7fTsgeC5hIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBj
b25zdCB4ID0ge307IHguYSB8fD0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0g
e2E6IHVuZGVmaW5lZH07IHguYSB8fD0gbnVsbGAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHgg
PSB7YTogdW5kZWZpbmVkfTsgeC5hIHx8PSBudWxsOyB4LmFgLCBudWxsKTsKK3Nob3VsZEJlKGBj
b25zdCB4ID0ge2E6IG51bGx9OyB4LmEgfHw9IHVuZGVmaW5lZGAsIHVuZGVmaW5lZCk7CitzaG91
bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeC5hIHx8PSB1bmRlZmluZWQ7IHguYWAsIHVuZGVm
aW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgfHw9IDQyYCwg
NDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsgeC5hIHx8PSA0MjsgeC5h
YCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHguYSB8fD0gNDJgLCA0Mik7
CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeC5hIHx8PSA0MjsgeC5hYCwgNDIpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdHJ1ZX07IHguYSB8fD0gNDJgLCB0cnVlKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0ge2E6IHRydWV9OyB4LmEgfHw9IDQyOyB4LmFgLCB0cnVlKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0ge2E6IGZhbHNlfTsgeC5hIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBj
b25zdCB4ID0ge2E6IGZhbHNlfTsgeC5hIHx8PSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYGNv
bnN0IHggPSB7YTogMH07IHguYSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHth
OiAwfTsgeC5hIHx8PSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMX07
IHguYSB8fD0gNDJgLCAxKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDF9OyB4LmEgfHw9IDQy
OyB4LmFgLCAxKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6ICIifTsgeC5hIHx8PSA0MmAsIDQy
KTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6ICIifTsgeC5hIHx8PSA0MjsgeC5hYCwgNDIpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSB7YTogInRlc3QifTsgeC5hIHx8PSA0MmAsICJ0ZXN0Iik7Citz
aG91bGRCZShgY29uc3QgeCA9IHthOiAidGVzdCJ9OyB4LmEgfHw9IDQyOyB4LmFgLCAidGVzdCIp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB7YToge319OyB4LmEgfHw9IDQyYCwgT2JqZWN0KTsKK3No
b3VsZEJlKGBjb25zdCB4ID0ge2E6IHt9fTsgeC5hIHx8PSA0MjsgeC5hYCwgT2JqZWN0KTsKK3No
b3VsZEJlKGBjb25zdCB4ID0ge2E6IFtdfTsgeC5hIHx8PSA0MmAsIEFycmF5KTsKK3Nob3VsZEJl
KGBjb25zdCB4ID0ge2E6IFtdfTsgeC5hIHx8PSA0MjsgeC5hYCwgQXJyYXkpOworCitzaG91bGRC
ZShgdmFyIHggPSB7fTsgeFsiYSJdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHt9
OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSB7YTogdW5k
ZWZpbmVkfTsgeFsiYSJdIHx8PSBudWxsYCwgbnVsbCk7CitzaG91bGRCZShgdmFyIHggPSB7YTog
dW5kZWZpbmVkfTsgeFsiYSJdIHx8PSBudWxsOyB4WyJhIl1gLCBudWxsKTsKK3Nob3VsZEJlKGB2
YXIgeCA9IHthOiBudWxsfTsgeFsiYSJdIHx8PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOworc2hv
dWxkQmUoYHZhciB4ID0ge2E6IG51bGx9OyB4WyJhIl0gfHw9IHVuZGVmaW5lZDsgeFsiYSJdYCwg
dW5kZWZpbmVkKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gfHw9
IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSB8fD0g
NDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBudWxsfTsgeFsiYSJdIHx8
PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBudWxsfTsgeFsiYSJdIHx8PSA0Mjsg
eFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IHRydWV9OyB4WyJhIl0gfHw9IDQy
YCwgdHJ1ZSk7CitzaG91bGRCZShgdmFyIHggPSB7YTogdHJ1ZX07IHhbImEiXSB8fD0gNDI7IHhb
ImEiXWAsIHRydWUpOworc2hvdWxkQmUoYHZhciB4ID0ge2E6IGZhbHNlfTsgeFsiYSJdIHx8PSA0
MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiBmYWxzZX07IHhbImEiXSB8fD0gNDI7IHhb
ImEiXWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiAwfTsgeFsiYSJdIHx8PSA0MmAsIDQy
KTsKK3Nob3VsZEJlKGB2YXIgeCA9IHthOiAwfTsgeFsiYSJdIHx8PSA0MjsgeFsiYSJdYCwgNDIp
Oworc2hvdWxkQmUoYHZhciB4ID0ge2E6IDF9OyB4WyJhIl0gfHw9IDQyYCwgMSk7CitzaG91bGRC
ZShgdmFyIHggPSB7YTogMX07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDEpOworc2hvdWxkQmUo
YHZhciB4ID0ge2E6ICIifTsgeFsiYSJdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9
IHthOiAiIn07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9
IHthOiAidGVzdCJ9OyB4WyJhIl0gfHw9IDQyYCwgInRlc3QiKTsKK3Nob3VsZEJlKGB2YXIgeCA9
IHthOiAidGVzdCJ9OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCAidGVzdCIpOworc2hvdWxkQmUo
YHZhciB4ID0ge2E6IHt9fTsgeFsiYSJdIHx8PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShgdmFy
IHggPSB7YToge319OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCBPYmplY3QpOworc2hvdWxkQmUo
YHZhciB4ID0ge2E6IFtdfTsgeFsiYSJdIHx8PSA0MmAsIEFycmF5KTsKK3Nob3VsZEJlKGB2YXIg
eCA9IHthOiBbXX07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIEFycmF5KTsKKworc2hvdWxkQmUo
YGxldCB4ID0ge307IHhbImEiXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7fTsg
eFsiYSJdIHx8PSA0MjsgeFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHVuZGVm
aW5lZH07IHhbImEiXSB8fD0gbnVsbGAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHVu
ZGVmaW5lZH07IHhbImEiXSB8fD0gbnVsbDsgeFsiYSJdYCwgbnVsbCk7CitzaG91bGRCZShgbGV0
IHggPSB7YTogbnVsbH07IHhbImEiXSB8fD0gdW5kZWZpbmVkYCwgdW5kZWZpbmVkKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IHthOiBudWxsfTsgeFsiYSJdIHx8PSB1bmRlZmluZWQ7IHhbImEiXWAsIHVu
ZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdIHx8PSA0
MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gfHw9IDQy
OyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHhbImEiXSB8fD0g
NDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHhbImEiXSB8fD0gNDI7IHhb
ImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB0cnVlfTsgeFsiYSJdIHx8PSA0MmAs
IHRydWUpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHRydWV9OyB4WyJhIl0gfHw9IDQyOyB4WyJh
Il1gLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBmYWxzZX07IHhbImEiXSB8fD0gNDJg
LCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogZmFsc2V9OyB4WyJhIl0gfHw9IDQyOyB4WyJh
Il1gLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogMH07IHhbImEiXSB8fD0gNDJgLCA0Mik7
CitzaG91bGRCZShgbGV0IHggPSB7YTogMH07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsK
K3Nob3VsZEJlKGBsZXQgeCA9IHthOiAxfTsgeFsiYSJdIHx8PSA0MmAsIDEpOworc2hvdWxkQmUo
YGxldCB4ID0ge2E6IDF9OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCAxKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHthOiAiIn07IHhbImEiXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7
YTogIiJ9OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7
YTogInRlc3QifTsgeFsiYSJdIHx8PSA0MmAsICJ0ZXN0Iik7CitzaG91bGRCZShgbGV0IHggPSB7
YTogInRlc3QifTsgeFsiYSJdIHx8PSA0MjsgeFsiYSJdYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHthOiB7fX07IHhbImEiXSB8fD0gNDJgLCBPYmplY3QpOworc2hvdWxkQmUoYGxldCB4
ID0ge2E6IHt9fTsgeFsiYSJdIHx8PSA0MjsgeFsiYSJdYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHthOiBbXX07IHhbImEiXSB8fD0gNDJgLCBBcnJheSk7CitzaG91bGRCZShgbGV0IHgg
PSB7YTogW119OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCBBcnJheSk7CisKK3Nob3VsZEJlKGBj
b25zdCB4ID0ge307IHhbImEiXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHt9
OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1
bmRlZmluZWR9OyB4WyJhIl0gfHw9IG51bGxgLCBudWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0g
e2E6IHVuZGVmaW5lZH07IHhbImEiXSB8fD0gbnVsbDsgeFsiYSJdYCwgbnVsbCk7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiBudWxsfTsgeFsiYSJdIHx8PSB1bmRlZmluZWRgLCB1bmRlZmluZWQp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHhbImEiXSB8fD0gdW5kZWZpbmVkOyB4
WyJhIl1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsg
eFsiYSJdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07
IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IG51
bGx9OyB4WyJhIl0gfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07
IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHRy
dWV9OyB4WyJhIl0gfHw9IDQyYCwgdHJ1ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB0cnVl
fTsgeFsiYSJdIHx8PSA0MjsgeFsiYSJdYCwgdHJ1ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHth
OiBmYWxzZX07IHhbImEiXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBm
YWxzZX07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0g
e2E6IDB9OyB4WyJhIl0gfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMH07
IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDF9
OyB4WyJhIl0gfHw9IDQyYCwgMSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAxfTsgeFsiYSJd
IHx8PSA0MjsgeFsiYSJdYCwgMSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAiIn07IHhbImEi
XSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAiIn07IHhbImEiXSB8fD0g
NDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6ICJ0ZXN0In07IHhbImEi
XSB8fD0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogInRlc3QifTsgeFsi
YSJdIHx8PSA0MjsgeFsiYSJdYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHt9
fTsgeFsiYSJdIHx8PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB7fX07
IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIE9iamVjdCk7CitzaG91bGRCZShgY29uc3QgeCA9IHth
OiBbXX07IHhbImEiXSB8fD0gNDJgLCBBcnJheSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBb
XX07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIEFycmF5KTsKKworc2hvdWxkQmUoYHZhciB4ID0g
W107IHhbMF0gfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0gW107IHhbMF0gfHw9IDQy
OyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0gW3VuZGVmaW5lZF07IHhbMF0gfHw9IG51
bGxgLCBudWxsKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFt1bmRlZmluZWRdOyB4WzBdIHx8PSBudWxs
OyB4WzBdYCwgbnVsbCk7CitzaG91bGRCZShgdmFyIHggPSBbbnVsbF07IHhbMF0gfHw9IHVuZGVm
aW5lZGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgdmFyIHggPSBbbnVsbF07IHhbMF0gfHw9IHVu
ZGVmaW5lZDsgeFswXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgdmFyIHggPSBbdW5kZWZpbmVk
XTsgeFswXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSBbdW5kZWZpbmVkXTsgeFsw
XSB8fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSBbbnVsbF07IHhbMF0gfHw9
IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0gW251bGxdOyB4WzBdIHx8PSA0MjsgeFswXWAs
IDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFt0cnVlXTsgeFswXSB8fD0gNDJgLCB0cnVlKTsKK3No
b3VsZEJlKGB2YXIgeCA9IFt0cnVlXTsgeFswXSB8fD0gNDI7IHhbMF1gLCB0cnVlKTsKK3Nob3Vs
ZEJlKGB2YXIgeCA9IFtmYWxzZV07IHhbMF0gfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4
ID0gW2ZhbHNlXTsgeFswXSB8fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSBb
MF07IHhbMF0gfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0gWzBdOyB4WzBdIHx8PSA0
MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFsxXTsgeFswXSB8fD0gNDJgLCAxKTsK
K3Nob3VsZEJlKGB2YXIgeCA9IFsxXTsgeFswXSB8fD0gNDI7IHhbMF1gLCAxKTsKK3Nob3VsZEJl
KGB2YXIgeCA9IFsiIl07IHhbMF0gfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYHZhciB4ID0gWyIi
XTsgeFswXSB8fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgdmFyIHggPSBbInRlc3QiXTsg
eFswXSB8fD0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUoYHZhciB4ID0gWyJ0ZXN0Il07IHhbMF0g
fHw9IDQyOyB4WzBdYCwgInRlc3QiKTsKK3Nob3VsZEJlKGB2YXIgeCA9IFt7fV07IHhbMF0gfHw9
IDQyYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGB2YXIgeCA9IFt7fV07IHhbMF0gfHw9IDQyOyB4WzBd
YCwgT2JqZWN0KTsKK3Nob3VsZEJlKGB2YXIgeCA9IFtbXV07IHhbMF0gfHw9IDQyYCwgQXJyYXkp
Oworc2hvdWxkQmUoYHZhciB4ID0gW1tdXTsgeFswXSB8fD0gNDI7IHhbMF1gLCBBcnJheSk7CisK
K3Nob3VsZEJlKGBsZXQgeCA9IFtdOyB4WzBdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQg
eCA9IFtdOyB4WzBdIHx8PSA0MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt1bmRl
ZmluZWRdOyB4WzBdIHx8PSBudWxsYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSBbdW5kZWZp
bmVkXTsgeFswXSB8fD0gbnVsbDsgeFswXWAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0gW251
bGxdOyB4WzBdIHx8PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0g
W251bGxdOyB4WzBdIHx8PSB1bmRlZmluZWQ7IHhbMF1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUo
YGxldCB4ID0gW3VuZGVmaW5lZF07IHhbMF0gfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4
ID0gW3VuZGVmaW5lZF07IHhbMF0gfHw9IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4
ID0gW251bGxdOyB4WzBdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtudWxsXTsg
eFswXSB8fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBbdHJ1ZV07IHhbMF0g
fHw9IDQyYCwgdHJ1ZSk7CitzaG91bGRCZShgbGV0IHggPSBbdHJ1ZV07IHhbMF0gfHw9IDQyOyB4
WzBdYCwgdHJ1ZSk7CitzaG91bGRCZShgbGV0IHggPSBbZmFsc2VdOyB4WzBdIHx8PSA0MmAsIDQy
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtmYWxzZV07IHhbMF0gfHw9IDQyOyB4WzBdYCwgNDIpOwor
c2hvdWxkQmUoYGxldCB4ID0gWzBdOyB4WzBdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQg
eCA9IFswXTsgeFswXSB8fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBbMV07
IHhbMF0gfHw9IDQyYCwgMSk7CitzaG91bGRCZShgbGV0IHggPSBbMV07IHhbMF0gfHw9IDQyOyB4
WzBdYCwgMSk7CitzaG91bGRCZShgbGV0IHggPSBbIiJdOyB4WzBdIHx8PSA0MmAsIDQyKTsKK3No
b3VsZEJlKGBsZXQgeCA9IFsiIl07IHhbMF0gfHw9IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUo
YGxldCB4ID0gWyJ0ZXN0Il07IHhbMF0gfHw9IDQyYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBsZXQg
eCA9IFsidGVzdCJdOyB4WzBdIHx8PSA0MjsgeFswXWAsICJ0ZXN0Iik7CitzaG91bGRCZShgbGV0
IHggPSBbe31dOyB4WzBdIHx8PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShgbGV0IHggPSBbe31d
OyB4WzBdIHx8PSA0MjsgeFswXWAsIE9iamVjdCk7CitzaG91bGRCZShgbGV0IHggPSBbW11dOyB4
WzBdIHx8PSA0MmAsIEFycmF5KTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtbXV07IHhbMF0gfHw9IDQy
OyB4WzBdYCwgQXJyYXkpOworCitzaG91bGRCZShgY29uc3QgeCA9IFtdOyB4WzBdIHx8PSA0MmAs
IDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW107IHhbMF0gfHw9IDQyOyB4WzBdYCwgNDIpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSBbdW5kZWZpbmVkXTsgeFswXSB8fD0gbnVsbGAsIG51bGwpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSBbdW5kZWZpbmVkXTsgeFswXSB8fD0gbnVsbDsgeFswXWAsIG51
bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbbnVsbF07IHhbMF0gfHw9IHVuZGVmaW5lZGAsIHVu
ZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSB8fD0gdW5kZWZpbmVk
OyB4WzBdYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW3VuZGVmaW5lZF07IHhb
MF0gfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbdW5kZWZpbmVkXTsgeFswXSB8
fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSB8fD0g
NDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSB8fD0gNDI7IHhbMF1g
LCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFt0cnVlXTsgeFswXSB8fD0gNDJgLCB0cnVlKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0gW3RydWVdOyB4WzBdIHx8PSA0MjsgeFswXWAsIHRydWUpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSBbZmFsc2VdOyB4WzBdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJl
KGBjb25zdCB4ID0gW2ZhbHNlXTsgeFswXSB8fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShg
Y29uc3QgeCA9IFswXTsgeFswXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFsw
XTsgeFswXSB8fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFsxXTsgeFsw
XSB8fD0gNDJgLCAxKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gWzFdOyB4WzBdIHx8PSA0MjsgeFsw
XWAsIDEpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbIiJdOyB4WzBdIHx8PSA0MmAsIDQyKTsKK3No
b3VsZEJlKGBjb25zdCB4ID0gWyIiXTsgeFswXSB8fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRC
ZShgY29uc3QgeCA9IFsidGVzdCJdOyB4WzBdIHx8PSA0MmAsICJ0ZXN0Iik7CitzaG91bGRCZShg
Y29uc3QgeCA9IFsidGVzdCJdOyB4WzBdIHx8PSA0MjsgeFswXWAsICJ0ZXN0Iik7CitzaG91bGRC
ZShgY29uc3QgeCA9IFt7fV07IHhbMF0gfHw9IDQyYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBjb25z
dCB4ID0gW3t9XTsgeFswXSB8fD0gNDI7IHhbMF1gLCBPYmplY3QpOworc2hvdWxkQmUoYGNvbnN0
IHggPSBbW11dOyB4WzBdIHx8PSA0MmAsIEFycmF5KTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW1td
XTsgeFswXSB8fD0gNDI7IHhbMF1gLCBBcnJheSk7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBb
XTsKKworbGV0IGEgPSB0cnVlOworbGV0IHggPSB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxv
Zy5wdXNoKCJnZXQiKTsKKyAgICAgICAgcmV0dXJuIGE7CisgICAgfSwKKyAgICBzZXQgYSh2KSB7
CisgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgYSA9IHY7CisgICAgfSwKK307CisK
K3guYSB8fD0gNDI7Cit4LmEgfHw9IDQyOworeC5hIHx8PSA0MjsKKworbG9nLmpvaW4oIiAiKSAr
ICIgIiArIGFgLCAiZ2V0IGdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0g
W107CisKK2xldCBhID0gZmFsc2U7CitsZXQgeCA9IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAg
bG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1cm4gYTsKKyAgICB9LAorICAgIHNldCBhKHYp
IHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICBhID0gdjsKKyAgICB9LAorfTsK
KworeC5hIHx8PSA0MjsKK3guYSB8fD0gNDI7Cit4LmEgfHw9IDQyOworCitsb2cuam9pbigiICIp
ICsgIiAiICsgYWAsICJnZXQgc2V0IGdldCBnZXQgNDIiKTsKKworc2hvdWxkQmUoYAorbGV0IGxv
ZyA9IFtdOworCitsZXQgYSA9IHVuZGVmaW5lZDsKK2xldCB4ID0geworICAgIGdldCBhKCkgewor
ICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAg
c2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAg
IH0sCit9OworCit4LmEgfHw9IDQyOworeC5hIHx8PSA0MjsKK3guYSB8fD0gNDI7CisKK2xvZy5q
b2luKCIgIikgKyAiICIgKyBhYCwgImdldCBzZXQgZ2V0IGdldCA0MiIpOworCitzaG91bGRCZShg
CitsZXQgbG9nID0gW107CisKK2xldCBhID0gdHJ1ZTsKK2xldCB4ID0geworICAgIGdldCBhKCkg
eworICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisg
ICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2Owor
ICAgIH0sCit9OworCit4WyJhIl0gfHw9IDQyOworeFsiYSJdIHx8PSA0MjsKK3hbImEiXSB8fD0g
NDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyBhYCwgImdldCBnZXQgZ2V0IHRydWUiKTsKKwor
c2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitsZXQgYSA9IGZhbHNlOworbGV0IHggPSB7Cisg
ICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgcmV0dXJuIGE7
CisgICAgfSwKKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAg
ICAgYSA9IHY7CisgICAgfSwKK307CisKK3hbImEiXSB8fD0gNDI7Cit4WyJhIl0gfHw9IDQyOwor
eFsiYSJdIHx8PSA0MjsKKworbG9nLmpvaW4oIiAiKSArICIgIiArIGFgLCAiZ2V0IHNldCBnZXQg
Z2V0IDQyIik7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBbXTsKKworbGV0IGEgPSB1bmRlZmlu
ZWQ7CitsZXQgeCA9IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldCIpOwor
ICAgICAgICByZXR1cm4gYTsKKyAgICB9LAorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1
c2goInNldCIpOworICAgICAgICBhID0gdjsKKyAgICB9LAorfTsKKworeFsiYSJdIHx8PSA0MjsK
K3hbImEiXSB8fD0gNDI7Cit4WyJhIl0gfHw9IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsg
YWAsICJnZXQgc2V0IGdldCBnZXQgNDIiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOwor
CitjbGFzcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LXBh
cmVudCIpOworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEodikgewor
ICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hIHx8PSB2Owor
ICAgIH0KK30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAg
ICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAg
ICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAg
ICAgIHN1cGVyLmEgfHw9IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsKK3guX2Eg
PSB0cnVlOworeC5hID0gNDI7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworCitsb2cuam9pbigiICIp
ICsgIiAiICsgeC5fYWAsICJzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVu
dCBzZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBb
XTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdl
dC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgfQorICAgIHNldCBhKHYp
IHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgdGhpcy5fYSB8fD0g
djsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7
CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmE7
CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOwor
ICAgICAgICBzdXBlci5hIHx8PSB2OworICAgIH0KK30KKworbGV0IHggPSBuZXcgQ2hpbGQ7Cit4
Ll9hID0gZmFsc2U7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xvZy5qb2lu
KCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgc2V0
LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUo
YAorbGV0IGxvZyA9IFtdOworCitjbGFzcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAg
ICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9
CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAg
ICB0aGlzLl9hIHx8PSB2OworICAgIH0KK30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsK
KyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICBy
ZXR1cm4gc3VwZXIuYTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgi
c2V0LWNoaWxkIik7CisgICAgICAgIHN1cGVyLmEgfHw9IHY7CisgICAgfQorfQorCitsZXQgeCA9
IG5ldyBDaGlsZDsKK3guX2EgPSB1bmRlZmluZWQ7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5h
ID0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFy
ZW50IHNldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQg
NDIiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitjbGFzcyBQYXJlbnQgeworICAg
IGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICByZXR1
cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0
LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgIH0KK30KK2NsYXNzIENoaWxk
IGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldC1j
aGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICB9CisgICAgc2V0IGEodikg
eworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgIHN1cGVyWyJhIl0gfHw9
IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsKK3guX2EgPSB0cnVlOworeC5hID0g
NDI7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsgeC5fYWAs
ICJzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0
LXBhcmVudCB0cnVlIik7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBbXTsKKworY2xhc3MgUGFy
ZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9n
LnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICB9Cit9Citj
bGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5w
dXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgfQorICAg
IHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICBzdXBl
clsiYSJdIHx8PSB2OworICAgIH0KK30KKworbGV0IHggPSBuZXcgQ2hpbGQ7Cit4Ll9hID0gZmFs
c2U7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAi
ICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgc2V0LWNoaWxkIGdl
dC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUoYAorbGV0IGxv
ZyA9IFtdOworCitjbGFzcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVz
aCgiZ2V0LXBhcmVudCIpOworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0
IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9h
IHx8PSB2OworICAgIH0KK30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQg
YSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3Vw
ZXJbImEiXTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNo
aWxkIik7CisgICAgICAgIHN1cGVyWyJhIl0gfHw9IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5l
dyBDaGlsZDsKK3guX2EgPSB1bmRlZmluZWQ7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0g
NDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50
IHNldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgNDIi
KTsKKworc2hvdWxkQmUoYHVuZGVmaW5lZCB8fD0gNDJgLCA0Mik7CitzaG91bGRUaHJvdyhgbnVs
bCB8fD0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhgdHJ1ZSB8fD0gNDJgLCBTeW50
YXhFcnJvcik7CitzaG91bGRUaHJvdyhgZmFsc2UgfHw9IDQyYCwgU3ludGF4RXJyb3IpOworc2hv
dWxkVGhyb3coYDAgfHw9IDQyYCwgU3ludGF4RXJyb3IpOworc2hvdWxkVGhyb3coYDEgfHw9IDQy
YCwgU3ludGF4RXJyb3IpOworc2hvdWxkVGhyb3coYCIiIHx8PSA0MmAsIFN5bnRheEVycm9yKTsK
K3Nob3VsZFRocm93KGAidGVzdCIgfHw9IDQyYCwgU3ludGF4RXJyb3IpOworc2hvdWxkVGhyb3co
YHt9IHx8PSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGBbXSB8fD0gNDJgLCBTeW50
YXhFcnJvcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395021</attachid>
            <date>2020-03-31 00:31:04 -0700</date>
            <delta_ts>2020-04-01 10:00:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200331013103.patch</filename>
            <type>text/plain</type>
            <size>85722</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGYwZTM0YWIxNDA3OTgzZmViYzE1YTBjYjA2NWNm
ZGY2NjRiNTE5Y2IuLmNjMmJlMDRjZjAzMTc1NDE4MTAxY2RlZTQyZTkxMTUyYjJkM2EwNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTAzLTMxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBiZWluZyBwcm9wb3NlZCBmb3IgU3RhZ2UgMyBh
dAorICAgICAgICB0aGUgNzV0aCBUQzM5IG1lZXRpbmcgKE1hcmNoLUFwcmlsIDIwMjApLiBJdCBp
bnRyb2R1Y2VzIHRocmVlIG5ldyBhc3NpZ25tZW50IG9wZXJhdG9ycyB3aGljaAorICAgICAgICB3
aWxsIG9ubHkgc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGUgcmhzIGluIHRoZSBsaHMgaWYgdGhlIGxo
cyBtZWV0cyB0aGUgY29uZGl0aW9uOgorICAgICAgICAgLSBgPz89YCwgZm9yIGlmIHRoZSBsaHMg
aXMgbnVsbGlzaCAoYG51bGxgIG9yIGB1bmRlZmluZWRgKQorICAgICAgICAgLSBgfHw9YCwgZm9y
IGlmIHRoZSBsaHMgaXMgZmFsc3kKKyAgICAgICAgIC0gYCYmPWAsIGZvciBpZiB0aGUgbGhzIGlz
IHRydXRoeQorCisgICAgICAgIFRoaXMgc2hvcnQgY2lyY3VpdGluZyBjYW4gYmUgYmVuZWZpY2lh
bCBhcyBpdCBjYW4gYXZvaWQgYSByZWR1bmRhbnQgc3RvcmUgd2hlbiB1c2VkIGluIHRoZQorICAg
ICAgICBjb21tb24gSmF2YVNjcmlwdCBwcm9ncmFtbWluZyBwYXR0ZXJuIG9mICJkZWZhdWx0aW5n
IiBhIHBhcmFtZXRlci4KKworICAgICAgICBgYGBqcworICAgICAgICAgICAgZnVuY3Rpb24gZm9v
KHgpIHsKKyAgICAgICAgICAgICAgICB4ID0geCB8fCA0MjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgYGBgCisKKyAgICAgICAgSWYgYHhgIGlzIGEgdHJ1dGh5IHZhbHVlLCBpdCB3b3VsZCByZXN1
bHQgaW4gdGhlIHJocyBgeGAgYmVpbmcgc3RvcmVkIGJhY2sgaW50byB0aGUgbGhzIGB4YC4KKyAg
ICAgICAgSW4gc29tZSBzaXR1YXRpb25zLCB0aGlzIGNhbiBoYXZlIG5lZ2F0aXZlIHVuaW50ZW5k
ZWQgc2lkZS1lZmZlY3RzLCBzdWNoIGFzIGZvciBgaW5uZXJIVE1MYC4KKworICAgICAgICBMb2dp
Y2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzLCBob3dldmVyLCBhcmUgZGVmaW5lZCBzdWNoIHRoYXQg
dGhleSBvbmx5IHN0b3JlIGlmIHRoZSByaHMgaXMKKyAgICAgICAgdG8gYWN0dWFsbHkgYmUgbmVl
ZGVkL3VzZWQsIHNraXBwaW5nIHRoZSByZWR1bmRhbnQgc3RvcmUgYW5kIHNpbXBseSByZXR1cm5p
bmcgbGhzIG90aGVyd2lzZS4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tlbnMuaDoKKyAg
ICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4V2l0
aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3Bw
OgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW50RXhwcmVz
c2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpB
U1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6Cisg
ICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0QXNzaWduUmVzb2x2ZU5vZGU6OlNob3J0Q2lyY3VpdEFzc2lnblJlc29sdmVOb2RlKTog
QWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdEFzc2lnbkJyYWNrZXROb2RlOjpTaG9y
dENpcmN1aXRBc3NpZ25CcmFja2V0Tm9kZSk6IEFkZGVkLgorICAgICAgICAoSlNDOjpTaG9ydENp
cmN1aXRBc3NpZ25Eb3ROb2RlOjpTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlKTogQWRkZWQuCisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVt
aXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2ly
Y3VpdEFzc2lnblJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0QXNzaWduRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAg
ICAgIChKU0M6OlNob3J0Q2lyY3VpdEFzc2lnbkJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBB
ZGRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEg
YHVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0
aGlzIGZlYXR1cmUuCisKIDIwMjAtMDMtMzAgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbSlNDXSBERkdBcnJheU1vZGU6OmFscmVhZHlDaGVja2VkIHNob3Vs
ZCBoYXZlIE5vbkFycmF5IGNoZWNrIHdoZW4gQXJyYXlNb2RlIGlzIE5vbkFycmF5K1Nsb3dQdXRB
cnJheVN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcAppbmRleCA2NDBiMjQ5NzU1ZTEwZWNkZDlhODNiOWUxNGIwOTdhYjM5
ZmQwOTRmLi40OGVhNTFjZGQyODhiNGQzNjE1ZTUxNGViMDA3MWY2ODMxOGQzNGFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
CkBAIC0yODU2LDYgKzI4NTYsMTAxIEBAIFJlZ2lzdGVySUQqIFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlCiAgICAgcmV0
dXJuIHJldHVyblJlc3VsdDsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IFNob3J0Q2lyY3VpdEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKy8vIEZJWE1FOiBzaG91bGQgdGhpcyBiZSBtb3ZlZCB0byBiZSBhIG1ldGhv
ZCBvbiBCeXRlY29kZUdlbmVyYXRvcj8KK3N0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgZW1pdFNo
b3J0Q2lyY3VpdEFzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0
ZXJJRCogdmFsdWUsIE9wZXJhdG9yIG9wZXIsIExhYmVsJiBzaG9ydENpcmN1aXRMYWJlbCkKK3sK
KyAgICBzd2l0Y2ggKG9wZXIpIHsKKyAgICBjYXNlIE9wZXJhdG9yOjpDb2FsZXNjZUVxOgorICAg
ICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKGdlbmVyYXRvci5lbWl0SXNVbmRlZmluZWRP
ck51bGwoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCB2YWx1ZSksIHNob3J0Q2lyY3VpdExhYmVs
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE9wZXJhdG9yOjpPckVxOgorICAgICAgICBn
ZW5lcmF0b3IuZW1pdEp1bXBJZlRydWUodmFsdWUsIHNob3J0Q2lyY3VpdExhYmVsKTsKKyAgICAg
ICAgYnJlYWs7CisKKyAgICBjYXNlIE9wZXJhdG9yOjpBbmRFcToKKyAgICAgICAgZ2VuZXJhdG9y
LmVtaXRKdW1wSWZGYWxzZSh2YWx1ZSwgc2hvcnRDaXJjdWl0TGFiZWwpOworICAgICAgICBicmVh
azsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcChzaG9ydENpcmN1aXRMYWJlbCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKworUmVnaXN0ZXJJRCogU2hvcnRDaXJjdWl0QXNzaWduUmVzb2x2
ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
cklEKiBkc3QpCit7CisgICAgSlNUZXh0UG9zaXRpb24gbmV3RGl2b3QgPSBkaXZvdFN0YXJ0KCkg
KyBtX2lkZW50Lmxlbmd0aCgpOworCisgICAgVmFyaWFibGUgdmFyID0gZ2VuZXJhdG9yLnZhcmlh
YmxlKG1faWRlbnQpOworCisgICAgaWYgKFJlZlB0cjxSZWdpc3RlcklEPiBsb2NhbCA9IHZhci5s
b2NhbCgpKSB7CisgICAgICAgIGdlbmVyYXRvci5lbWl0VERaQ2hlY2tJZk5lY2Vzc2FyeSh2YXIs
IGxvY2FsLmdldCgpLCBudWxscHRyKTsKKworICAgICAgICBpZiAodmFyLmlzUmVhZE9ubHkoKSkg
eworICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGxvY2FsOworCisgICAg
ICAgICAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVs
KCk7CisgICAgICAgICAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIGxv
Y2FsLmdldCgpLCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICAg
ICAgICAgIGdlbmVyYXRvci5lbWl0UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIpOworICAg
ICAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0
LmdldCgpLCBtX3JpZ2h0KTsKKworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzaG9y
dENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVU
eXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgICAg
IHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoZ2VuZXJhdG9yLmxlZnRIYW5kU2lkZU5lZWRzQ29weShtX3JpZ2h0SGFzQXNz
aWdubWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKSkgeworICAgICAgICAgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKyAgICAg
ICAgICAgIGdlbmVyYXRvci5tb3ZlKHJlc3VsdC5nZXQoKSwgbG9jYWwuZ2V0KCkpOworCisgICAg
ICAgICAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVs
KCk7CisgICAgICAgICAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJl
c3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworCisgICAg
ICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQu
Z2V0KCksIG1fcmlnaHQpOworICAgICAgICAgICAgZ2VuZXJhdG9yLm1vdmUobG9jYWwuZ2V0KCks
IHJlc3VsdC5nZXQoKSk7CisKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2hvcnRD
aXJjdWl0TGFiZWwuZ2V0KCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlw
ZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgICAgICAgICBy
ZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAgICB9CisKKyAg
ICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGxvY2FsOworCisgICAgICAgIFJlZjxM
YWJlbD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICAgICAg
ZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3Bl
cmF0b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgICAgICByZXN1bHQgPSBnZW5l
cmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworCisg
ICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAg
ICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgp
LCBkaXZvdEVuZCgpKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0
LmdldCgpKTsKKyAgICB9CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKG5ld0Rp
dm90LCBkaXZvdFN0YXJ0KCksIG5ld0Rpdm90KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc2Nv
cGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShudWxscHRyLCB2YXIpOworCisgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0RnJvbVNjb3BlKGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgc2NvcGUuZ2V0KCksIHZhciwgVGhyb3dJZk5vdEZvdW5kKTsK
KyAgICBnZW5lcmF0b3IuZW1pdFREWkNoZWNrSWZOZWNlc3NhcnkodmFyLCByZXN1bHQuZ2V0KCks
IG51bGxwdHIpOworCisgICAgUmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9IGdlbmVyYXRv
ci5uZXdMYWJlbCgpOworICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwg
cmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAg
ICBnZW5lcmF0b3IuZW1pdFJlYWRPbmx5RXhjZXB0aW9uSWZOZWVkZWQodmFyKTsKKyAgICByZXN1
bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmln
aHQpOworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0VG9TY29wZShzY29wZS5nZXQoKSwg
dmFyLCByZXN1bHQuZ2V0KCksIFRocm93SWZOb3RGb3VuZCwgSW5pdGlhbGl6YXRpb25Nb2RlOjpO
b3RJbml0aWFsaXphdGlvbik7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3Vp
dExhYmVsLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQo
KSwgdmFyLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIHJldHVybiBnZW5lcmF0b3Iu
bW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cit9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBBc3NpZ25SZXNvbHZlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCiBzdGF0aWMgSW5pdGlhbGl6YXRpb25Nb2RlIGluaXRpYWxpemF0aW9uTW9kZUZvckFz
c2lnbm1lbnRDb250ZXh0KEFzc2lnbm1lbnRDb250ZXh0IGFzc2lnbm1lbnRDb250ZXh0KQogewog
ICAgIHN3aXRjaCAoYXNzaWdubWVudENvbnRleHQpIHsKQEAgLTI4NzEsOCArMjk2Niw2IEBAIHN0
YXRpYyBJbml0aWFsaXphdGlvbk1vZGUgaW5pdGlhbGl6YXRpb25Nb2RlRm9yQXNzaWdubWVudENv
bnRleHQoQXNzaWdubWVudENvbnRlCiAgICAgcmV0dXJuIEluaXRpYWxpemF0aW9uTW9kZTo6Tm90
SW5pdGlhbGl6YXRpb247CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBB
c3NpZ25SZXNvbHZlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBS
ZWdpc3RlcklEKiBBc3NpZ25SZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKICAgICBWYXJpYWJsZSB2YXIgPSBn
ZW5lcmF0b3IudmFyaWFibGUobV9pZGVudCk7CkBAIC0yOTczLDYgKzMwNjYsMzcgQEAgUmVnaXN0
ZXJJRCogUmVhZE1vZGlmeURvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yLCBSZWdpc3QKICAgICByZXR1cm4gcmV0OwogfQogCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0QXNzaWduRG90Tm9kZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRBc3NpZ25E
b3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0
ZXJJRCogZHN0KQoreworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVt
aXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFzZSwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX3Jp
Z2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0
OworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3Qo
KSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7CisgICAgaWYgKG1f
YmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGhpc1Zh
bHVlID0gZ2VuZXJhdG9yLmVuc3VyZVRoaXMoKTsKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9y
LmVtaXRHZXRCeUlkKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwg
dGhpc1ZhbHVlLmdldCgpLCBtX2lkZW50KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFz
ZS5nZXQoKSwgbV9pZGVudCk7CisKKyAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0g
Z2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2Vu
ZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgp
KTsKKworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3Vs
dC5nZXQoKSwgbV9yaWdodCk7CisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZv
dCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGlmIChtX2Jhc2UtPmlzU3VwZXJO
b2RlKCkpIHsKKyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNWYWx1ZSA9IGdlbmVyYXRv
ci5lbnN1cmVUaGlzKCk7CisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlJZChi
YXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1faWRlbnQsIHJlc3VsdC5nZXQoKSk7CisgICAg
fSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdldCgp
LCBtX2lkZW50LCByZXN1bHQuZ2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzaG9y
dENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1
bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgcmV0dXJuIGdlbmVyYXRv
ci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIEFzc2lnbkVycm9yTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCiBSZWdpc3RlcklEKiBBc3NpZ25FcnJvck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikKQEAgLTMwMzcsNiArMzE2MSwzOCBA
QCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogICAgIHJldHVybiB1cGRhdGVkVmFsdWU7CiB9CiAK
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRBc3NpZ25CcmFj
a2V0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklE
KiBTaG9ydENpcmN1aXRBc3NpZ25CcmFja2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2Jhc2UsIG1f
c3Vic2NyaXB0SGFzQXNzaWdubWVudHMgfHwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX3N1YnNj
cmlwdC0+aXNQdXJlKGdlbmVyYXRvcikgJiYgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOwor
ICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxl
ZnRIYW5kU2lkZUZvclByb3BlcnR5KG1fc3Vic2NyaXB0LCBtX3JpZ2h0SGFzQXNzaWdubWVudHMs
IG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGhp
c1ZhbHVlOworCisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdDsKKworICAgIGdlbmVyYXRv
ci5lbWl0RXhwcmVzc2lvbkluZm8oc3ViZXhwcmVzc2lvbkRpdm90KCksIHN1YmV4cHJlc3Npb25T
dGFydCgpLCBzdWJleHByZXNzaW9uRW5kKCkpOworICAgIGlmIChtX2Jhc2UtPmlzU3VwZXJOb2Rl
KCkpIHsKKyAgICAgICAgdGhpc1ZhbHVlID0gZ2VuZXJhdG9yLmVuc3VyZVRoaXMoKTsKKyAgICAg
ICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0b3IudGVtcERlc3RpbmF0
aW9uKGRzdCksIGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgcHJvcGVydHkuZ2V0KCkpOwor
ICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5VmFsKGdlbmVy
YXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgcHJvcGVydHkuZ2V0KCkpOwor
CisgICAgUmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9IGdlbmVyYXRvci5uZXdMYWJlbCgp
OworICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgp
LCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBn
ZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOwor
ICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBk
aXZvdEVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKQorICAgICAgICByZXN1
bHQgPSBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwg
cHJvcGVydHkuZ2V0KCksIHJlc3VsdC5nZXQoKSk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQg
PSBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGJhc2UuZ2V0KCksIHByb3BlcnR5LmdldCgpLCByZXN1
bHQuZ2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzaG9ydENpcmN1aXRMYWJlbC5n
ZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90
U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVz
dWx0LmdldCgpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvbW1h
Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUmVnaXN0ZXJJRCog
Q29tbWFOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJRCogZHN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9B
U1RCdWlsZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaApp
bmRleCA0M2IxNzFmYmM0ZTdiMzU5ZGJlNjgyN2ZhNWRjNWI4NWE4OWViZmMwLi5jMWVjMzQyOTE5
YjdmYWQ0MDBmNmNlMjk3ODVjMTFhZTVhYjQzYmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL0FTVEJ1aWxkZXIuaApAQCAtMTU0OCw2ICsxNTQ4LDcgQEAgRXhwcmVzc2lvbk5vZGUq
IEFTVEJ1aWxkZXI6Om1ha2VBc3NpZ25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRp
b24sIEV4cHIKIAogICAgIGlmIChsb2MtPmlzUmVzb2x2ZU5vZGUoKSkgewogICAgICAgICBSZXNv
bHZlTm9kZSogcmVzb2x2ZSA9IHN0YXRpY19jYXN0PFJlc29sdmVOb2RlKj4obG9jKTsKKwogICAg
ICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkVxdWFsKSB7CiAgICAgICAgICAgICBpZiAoZXhwci0+
aXNCYXNlRnVuY0V4cHJOb2RlKCkpIHsKICAgICAgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0g
c3RhdGljX2Nhc3Q8QmFzZUZ1bmNFeHByTm9kZSo+KGV4cHIpLT5tZXRhZGF0YSgpOwpAQCAtMTU1
OCwyMSArMTU1OSw0MiBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUFzc2lnbk5v
ZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcgogICAgICAgICAgICAgc2V0
RXhjZXB0aW9uTG9jYXRpb24obm9kZSwgc3RhcnQsIGRpdm90LCBlbmQpOwogICAgICAgICAgICAg
cmV0dXJuIG5vZGU7CiAgICAgICAgIH0KKworICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkNv
YWxlc2NlRXEgfHwgb3AgPT0gT3BlcmF0b3I6Ok9yRXEgfHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVx
KQorICAgICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0QXNz
aWduUmVzb2x2ZU5vZGUobG9jYXRpb24sIHJlc29sdmUtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIs
IGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOworCiAgICAgICAgIHJldHVy
biBuZXcgKG1fcGFyc2VyQXJlbmEpIFJlYWRNb2RpZnlSZXNvbHZlTm9kZShsb2NhdGlvbiwgcmVz
b2x2ZS0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwg
c3RhcnQsIGVuZCk7CiAgICAgfQorCiAgICAgaWYgKGxvYy0+aXNCcmFja2V0QWNjZXNzb3JOb2Rl
KCkpIHsKICAgICAgICAgQnJhY2tldEFjY2Vzc29yTm9kZSogYnJhY2tldCA9IHN0YXRpY19jYXN0
PEJyYWNrZXRBY2Nlc3Nvck5vZGUqPihsb2MpOworCiAgICAgICAgIGlmIChvcCA9PSBPcGVyYXRv
cjo6RXF1YWwpCiAgICAgICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBc3NpZ25C
cmFja2V0Tm9kZShsb2NhdGlvbiwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQo
KSwgZXhwciwgbG9jSGFzQXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25tZW50cywgYnJhY2tldC0+
ZGl2b3QoKSwgc3RhcnQsIGVuZCk7CisKKyAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpDb2Fs
ZXNjZUVxIHx8IG9wID09IE9wZXJhdG9yOjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkg
eworICAgICAgICAgICAgYXV0byogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJj
dWl0QXNzaWduQnJhY2tldE5vZGUobG9jYXRpb24sIGJyYWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+
c3Vic2NyaXB0KCksIG9wLCBleHByLCBsb2NIYXNBc3NpZ25tZW50cywgZXhwckhhc0Fzc2lnbm1l
bnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBub2RlLT5zZXRTdWJleHByZXNz
aW9uSW5mbyhicmFja2V0LT5kaXZvdCgpLCBicmFja2V0LT5kaXZvdEVuZCgpLm9mZnNldCk7Cisg
ICAgICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAgICAgfQorCiAgICAgICAgIFJlYWRNb2RpZnlC
cmFja2V0Tm9kZSogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgUmVhZE1vZGlmeUJyYWNrZXRO
b2RlKGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBvcCwg
ZXhwciwgbG9jSGFzQXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0
LCBlbmQpOwogICAgICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhicmFja2V0LT5kaXZv
dCgpLCBicmFja2V0LT5kaXZvdEVuZCgpLm9mZnNldCk7CiAgICAgICAgIHJldHVybiBub2RlOwog
ICAgIH0KKwogICAgIEFTU0VSVChsb2MtPmlzRG90QWNjZXNzb3JOb2RlKCkpOwogICAgIERvdEFj
Y2Vzc29yTm9kZSogZG90ID0gc3RhdGljX2Nhc3Q8RG90QWNjZXNzb3JOb2RlKj4obG9jKTsKKwog
ICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6RXF1YWwpCiAgICAgICAgIHJldHVybiBuZXcgKG1fcGFy
c2VyQXJlbmEpIEFzc2lnbkRvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50
aWZpZXIoKSwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkb3QtPmRpdm90KCksIHN0YXJ0LCBl
bmQpOwogCisgICAgaWYgKG9wID09IE9wZXJhdG9yOjpDb2FsZXNjZUVxIHx8IG9wID09IE9wZXJh
dG9yOjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkgeworICAgICAgICBhdXRvKiBub2Rl
ID0gbmV3IChtX3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlKGxvY2F0aW9u
LCBkb3QtPmJhc2UoKSwgZG90LT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdu
bWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKKyAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lv
bkluZm8oZG90LT5kaXZvdCgpLCBkb3QtPmRpdm90RW5kKCkub2Zmc2V0KTsKKyAgICAgICAgcmV0
dXJuIG5vZGU7CisgICAgfQorCiAgICAgUmVhZE1vZGlmeURvdE5vZGUqIG5vZGUgPSBuZXcgKG1f
cGFyc2VyQXJlbmEpIFJlYWRNb2RpZnlEb3ROb2RlKGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90
LT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFy
dCwgZW5kKTsKICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhkb3QtPmRpdm90KCksIGRv
dC0+ZGl2b3RFbmQoKS5vZmZzZXQpOwogICAgIHJldHVybiBub2RlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCAxZmZjNmVjMjBjMTgwODdjOTZkMTg2YTAyNmNmOGEz
MjkyNjUzOGU4Li5hNGZmY2M3NGM3NDRhNzVlZWUzZjI3MzYwZjc4ODFlNmI5ODc1MDViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAtMjA5Miw2ICsyMDkyLDExIEBA
IHN0YXJ0OgogICAgICAgICBzaGlmdCgpOwogICAgICAgICBpZiAobV9jdXJyZW50ID09ICcmJykg
ewogICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25z
Ojp1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9PSAnPScpKSB7
CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9IEFOREVR
VUFMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAg
dG9rZW4gPSBBTkQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjEyOSw2ICsy
MTM0LDExIEBAIHN0YXJ0OgogICAgICAgICB9CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJ3wn
KSB7CiAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlv
bnM6OnVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9Jykp
IHsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gT1JF
UVVBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHRva2VuID0gT1I7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjE2NSw2ICsy
MTc1LDExIEBAIHN0YXJ0OgogICAgICAgICBzaGlmdCgpOwogICAgICAgICBpZiAobV9jdXJyZW50
ID09ICc/JykgewogICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VM
WShPcHRpb25zOjp1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9
PSAnPScpKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tl
biA9IENPQUxFU0NFRVFVQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICB0b2tlbiA9IENPQUxFU0NFOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0
cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3Jz
LmgKaW5kZXggZmQ5N2EwY2E5MzVlN2U1Nzc4YTA5Mzg1MDIyZjk4Njc4MDE0YTMyNC4uYjAzMjVk
YzE3NzM3OGZhYTAwNWMzYjFmMmQ3Y2IxMjk3MzlkYTJkMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTcxOCw2ICs3MTgsMTYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENpcmN1aXRB
c3NpZ25SZXNvbHZlTm9kZTo6U2hvcnRDaXJjdWl0QXNzaWduUmVzb2x2ZU5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9wZXJhdG9y
IG9wZXIsIEV4cHJlc3Npb25Ob2RlKiAgcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RT
dGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQorICAgICAgICA6IEV4cHJlc3Np
b25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90
LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKKyAgICAgICAgLCBtX2lkZW50KGlkZW50KQorICAgICAg
ICAsIG1fcmlnaHQocmlnaHQpCisgICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAs
IG1fcmlnaHRIYXNBc3NpZ25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9
CisKICAgICBpbmxpbmUgQXNzaWduUmVzb2x2ZU5vZGU6OkFzc2lnblJlc29sdmVOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBFeHBy
ZXNzaW9uTm9kZSogcmlnaHQsIEFzc2lnbm1lbnRDb250ZXh0IGFzc2lnbm1lbnRDb250ZXh0KQog
ICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1faWRlbnQoaWRl
bnQpCkBAIC03MzksNiArNzQ5LDE4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAK
KyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0QXNzaWduQnJhY2tldE5vZGU6OlNob3J0Q2lyY3VpdEFz
c2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Np
b25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBPcGVyYXRvciBvcGVyLCBF
eHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wg
cmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5k
KQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIFRocm93YWJs
ZVN1YkV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKKyAgICAgICAg
LCBtX2Jhc2UoYmFzZSkKKyAgICAgICAgLCBtX3N1YnNjcmlwdChzdWJzY3JpcHQpCisgICAgICAg
ICwgbV9yaWdodChyaWdodCkKKyAgICAgICAgLCBtX29wZXJhdG9yKG9wZXIpCisgICAgICAgICwg
bV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyhzdWJzY3JpcHRIYXNBc3NpZ25tZW50cykKKyAgICAg
ICAgLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7Cisg
ICAgfQorCiAgICAgaW5saW5lIEFzc2lnbkJyYWNrZXROb2RlOjpBc3NpZ25CcmFja2V0Tm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhw
cmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNj
cmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2Nh
dGlvbikKICAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFy
dCwgZGl2b3RFbmQpCkBAIC03NzEsNiArNzkzLDE3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsK
ICAgICB9CiAKKyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0QXNzaWduRG90Tm9kZTo6U2hvcnRDaXJj
dWl0QXNzaWduRG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNz
aW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9wZXJhdG9yIG9wZXIsIEV4
cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9j
YXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90
U3RhcnQsIGRpdm90RW5kKQorICAgICAgICAsIG1fYmFzZShiYXNlKQorICAgICAgICAsIG1faWRl
bnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICAgICAgLCBtX29wZXJhdG9y
KG9wZXIpCisgICAgICAgICwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdubWVu
dHMpCisgICAgeworICAgIH0KKwogICAgIGlubGluZSBBc3NpZ25FcnJvck5vZGU6OkFzc2lnbkVy
cm9yTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RFbmQpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24p
CiAgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQsIGRp
dm90RW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDIyZGY1YWU0ZDA4
ZTU4NmU3OGY4YjM5YjJiYmY1YTY4ZmYxOGU2NWQuLmM2ZWI4NzI5ZWFiMTAyMjBhY2NhNzViNjJj
MzQzYWVmNjYwMThhYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTY4
LDYgKzY4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEJpdE9yRXEsCiAgICAgICAgIE1v
ZEVxLAogICAgICAgICBQb3dFcSwKKyAgICAgICAgQ29hbGVzY2VFcSwKKyAgICAgICAgT3JFcSwK
KyAgICAgICAgQW5kRXEsCiAgICAgICAgIExTaGlmdCwKICAgICAgICAgUlNoaWZ0LAogICAgICAg
ICBVUlNoaWZ0CkBAIC0xMzg5LDYgKzEzOTIsMTkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzOwogICAgIH07CiAKKyAgICBjbGFzcyBTaG9ydENp
cmN1aXRBc3NpZ25SZXNvbHZlTm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVi
bGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNob3J0
Q2lyY3VpdEFzc2lnblJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElk
ZW50aWZpZXImLCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqICByaWdodCwgYm9vbCByaWdodEhh
c0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX2lkZW50OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAg
ICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsKKyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVu
dHM7CisgICAgfTsKKwogICAgIGNsYXNzIEFzc2lnblJlc29sdmVOb2RlIGZpbmFsIDogcHVibGlj
IEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1
YmxpYzoKICAgICAgICAgQXNzaWduUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
Y29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgQXNzaWdubWVudENvbnRl
eHQpOwpAQCAtMTQxOCw2ICsxNDM0LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29s
IG1fcmlnaHRIYXNBc3NpZ25tZW50cyA6IDE7CiAgICAgfTsKIAorICAgIGNsYXNzIFNob3J0Q2ly
Y3VpdEFzc2lnbkJyYWNrZXROb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJs
aWMgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEgeworICAgIHB1YmxpYzoKKyAgICAgICAgU2hv
cnRDaXJjdWl0QXNzaWduQnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVz
c2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yLCBFeHBy
ZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmln
aHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsK
KworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAgRXhwcmVz
c2lvbk5vZGUqIG1fYmFzZTsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0Owor
ICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAgICAgT3BlcmF0b3IgbV9vcGVy
YXRvcjsKKyAgICAgICAgYm9vbCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzIDogMTsKKyAgICAg
ICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOworICAgIH07CisKICAgICBjbGFzcyBB
c3NpZ25CcmFja2V0Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRo
cm93YWJsZUV4cHJlc3Npb25EYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2lnbkJyYWNr
ZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHBy
ZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2Ny
aXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKQEAgLTE0NTksNiArMTQ5MCwyMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOwogICAgIH07
CiAKKyAgICBjbGFzcyBTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlIGZpbmFsIDogcHVibGljIEV4
cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEgeworICAgIHB1
YmxpYzoKKyAgICAgICAgU2hvcnRDaXJjdWl0QXNzaWduRG90Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9y
LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKworICAgIHByaXZhdGU6CisgICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKKyAgICAg
ICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1f
cmlnaHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9yaWdo
dEhhc0Fzc2lnbm1lbnRzIDogMTsKKyAgICB9OworCiAgICAgY2xhc3MgQXNzaWduRXJyb3JOb2Rl
IGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lv
bkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduRXJyb3JOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggODQ4NTgyM2M0ZTY0NWJhNmU2
MzFjYTRhMmRjMDQ2YTVmNzA4M2FhNy4uZjViMmUyZjQwMGE1OTgzZWUyOTBiN2U4OTczOTgzMzY2
MzczM2RhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMzgz
Myw3ICszODMzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVz
c2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KIAogICAgIGZhaWxJZkZhbHNl
KGxocywgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIik7CiAgICAgaWYgKGluaXRpYWxOb25MSFND
b3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAgICAgIGlmIChtX3Rva2Vu
Lm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBCSVRPUkVRVUFMKQorICAgICAg
ICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQU5ERVFV
QUwpCiAgICAgICAgICAgICBzZW1hbnRpY0ZhaWwoIkxlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9y
ICciLCBnZXRUb2tlbigpLCAiJyBtdXN0IGJlIGEgcmVmZXJlbmNlIik7CiAKICAgICAgICAgcmV0
dXJuIGxoczsKQEAgLTM4NTcsNiArMzg1Nyw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVp
bGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAg
ICAgICAgIGNhc2UgQklUT1JFUVVBTDogb3AgPSBPcGVyYXRvcjo6Qml0T3JFcTsgYnJlYWs7CiAg
ICAgICAgIGNhc2UgTU9ERVFVQUw6IG9wID0gT3BlcmF0b3I6Ok1vZEVxOyBicmVhazsKICAgICAg
ICAgY2FzZSBQT1dFUVVBTDogb3AgPSBPcGVyYXRvcjo6UG93RXE7IGJyZWFrOworICAgICAgICBj
YXNlIENPQUxFU0NFRVFVQUw6IG9wID0gT3BlcmF0b3I6OkNvYWxlc2NlRXE7IGJyZWFrOworICAg
ICAgICBjYXNlIE9SRVFVQUw6IG9wID0gT3BlcmF0b3I6Ok9yRXE7IGJyZWFrOworICAgICAgICBj
YXNlIEFOREVRVUFMOiBvcCA9IE9wZXJhdG9yOjpBbmRFcTsgYnJlYWs7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICBnb3RvIGVuZDsKICAgICAgICAgfQpAQCAtMzg3Niw3ICszODc5LDcg
QEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8
TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAgICAgbGhzID0gcGFyc2VBc3NpZ25tZW50
RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2UobGhzLCAiQ2Fubm90IHBh
cnNlIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBleHByZXNzaW9uIik7CiAg
ICAgICAgIGlmIChpbml0aWFsTm9uTEhTQ291bnQgIT0gbV9wYXJzZXJTdGF0ZS5ub25MSFNDb3Vu
dCkgewotICAgICAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4u
bV90eXBlIDw9IEJJVE9SRVFVQUwpCisgICAgICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUgPj0g
RVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQU5ERVFVQUwpCiAgICAgICAgICAgICAgICAgc2Vt
YW50aWNGYWlsKCJMZWZ0IGhhbmQgc2lkZSBvZiBvcGVyYXRvciAnIiwgZ2V0VG9rZW4oKSwgIicg
bXVzdCBiZSBhIHJlZmVyZW5jZSIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCmluZGV4IDQ4MTgxYWUw
ZDRiOTMzODk0ZjhlNGYyYmRmZGI2MmU4MTM4M2QyYzUuLmRlMGViZWFmODVmZDcxMjM3MTdmODc3
MTEyN2Y3MTkyM2ZmZTY3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyVG9rZW5zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXJUb2tlbnMuaApAQCAtMTM0LDYgKzEzNCw5IEBAIGVudW0gSlNUb2tlblR5cGUgewogICAgIEJJ
VEFOREVRVUFMLAogICAgIEJJVFhPUkVRVUFMLAogICAgIEJJVE9SRVFVQUwsCisgICAgQ09BTEVT
Q0VFUVVBTCwKKyAgICBPUkVRVUFMLAorICAgIEFOREVRVUFMLAogICAgIERPVERPVERPVCwKICAg
ICBBUlJPV0ZVTkNUSU9OLAogICAgIFFVRVNUSU9ORE9ULApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggYjg1YjgyODhlZGY2Mjg0ZWQ4M2NhZjZjNmQ5
OGYzMjdmYTJkYzRjZi4uNmVkNDJkNDA3MmM4ZjZlYzJlODkwNThhYWNjZTU3YzM0ZWE2MWZjNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCkBAIC01MDAs
NiArNTAwLDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkg
PSBmYWxzZTsKICAgICB2KEJvb2wsIGZvcmNlT1NSRXhpdFRvTExJbnQsIGZhbHNlLCBOb3JtYWws
ICJJZiB0cnVlLCB3ZSBhbHdheXMgZXhpdCB0byB0aGUgTExJbnQuIElmIGZhbHNlLCB3ZSBleGl0
IHRvIHdoYXRldmVyIGlzIG1vc3QgY29udmVuaWVudC4iKSBcCiAgICAgdihVbnNpZ25lZCwgZ2V0
QnlWYWxJQ01heE51bWJlck9mSWRlbnRpZmllcnMsIDQsIE5vcm1hbCwgIk51bWJlciBvZiBpZGVu
dGlmaWVycyB3ZSBzZWUgaW4gdGhlIExMSW50IHRoYXQgY291bGQgY2F1c2UgdXMgdG8gYmFpbCBv
biBnZW5lcmF0aW5nIGFuIElDIGZvciBnZXRfYnlfdmFsLiIpIFwKICAgICB2KEJvb2wsIHVzZVB1
YmxpY0NsYXNzRmllbGRzLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB0aGUgcGFyc2VyIHdpbGwg
dW5kZXJzdGFuZCBwdWJsaWMgZGF0YSBmaWVsZHMgaW5zaWRlIGNsYXNzZXMuIikgXAorICAgIHYo
Qm9vbCwgdXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMsIGZhbHNlLCBOb3JtYWwsICJFbmFi
bGUgc3VwcG9ydCBmb3IgXD9cPz0sIHx8PSwgYW5kICYmPSBsb2dpY2FsIGFzc2lnbm1lbnQgb3Bl
cmF0b3JzLiIpIFwKIAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7CiAgICAgU2FtZU9wdGlvbiwK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4MTNm
OTgyNWUzNjIxMGI4YzQ5MjJkZjVmOGJjNWQ3MGZmY2RmZGYzLi5lNzhkYjM5MzJjMDlhNDM0Y2Jj
NDhhYTA3MjdiNTk2NzBjNWEyZjgxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDMtMzEgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtFU05leHRdIEltcGxlbWVudCBsb2dp
Y2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIwMjAt
MDMtMzAgIFpoaWZlaSBGYW5nICA8emhpZmVpX2ZhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFty
ZXN1bHRzLndlYmtpdC5vcmc6IFRpbWVsaW5lXTogTGVmdCBzaWRlIG9mIHRoZSB0aW1lbGluZSBz
Y2FsZSBpcyB1c3VhbGx5IGJpZ2dlciB0aGFuIHRoZSByaWdodCAgICAgICAgCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4t
anNjLXN0cmVzcy10ZXN0cwppbmRleCAyZmJlM2I0YmE4ZWE3MDczZGEyYThmNjczY2EwYmJlNjll
Njk3YmNlLi5kYzcyYTY0OTk0ODc2MjBmNWNmMzQ1ZWQ0NzAxNWNiZGEwYWRiZDU0IDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1Njcmlw
dHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKQEAgLTc4Niw2ICs3ODYsMTAgQEAgZGVmIHJ1bk1pbmlN
b2RlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcnVuKCJtaW5pLW1vZGUiLCAi
LS1mb3JjZU1pbmlWTU1vZGU9dHJ1ZSIsICpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiBl
bmQKIAorZGVmIHJ1bkxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZCgqb3B0aW9uYWxU
ZXN0U3BlY2lmaWNPcHRpb25zKQorICAgIHJ1bigibG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9y
cy1lbmFibGVkIiwgIi0tdXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnM9dHJ1ZSIgLCAqKEZU
TF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKK2VuZAorCiBkZWYgZGVm
YXVsdFJ1bgogICAgIGlmICRtb2RlID09ICJxdWljayIKICAgICAgICAgZGVmYXVsdFF1aWNrUnVu
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGU2MGY0ZDQ3Y2JlNTM4MGYwMTIwYjMzMzQwY2QwNTZjYmEwYjliODMuLjA1NTNkOWQzYWMwMTNm
ZjA0ZWYyYzk3YjA3NGY3Njk5MWE5OGJlZmIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMzEgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtFU05leHRdIEltcGxl
bWVudCBsb2dpY2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3Bl
cmF0b3ItYW5kLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50
LW9wZXJhdG9yLWNvYWxlc2NlLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1h
c3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzOiBBZGRlZC4KKwogMjAyMC0wMy0zMCAgQWxleGV5IFNo
dmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgaW4g
bmFtZWQgY2FwdHVyZSBncm91cCBpZGVudGlmaWVycyBmb3IgZGlyZWN0IHN1cnJvZ2F0ZSBwYWly
cwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9y
LWFuZC5qcyBiL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTlhNjc3ZTFlODZmNGFhZDY3ODMwYzk1ODk1NjFiMTc5YzJkYjBmMAot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVy
YXRvci1hbmQuanMKQEAgLTAsMCArMSw2MzkgQEAKKy8vQCBydW5Mb2dpY2FsQXNzaWdubWVudE9w
ZXJhdG9yc0VuYWJsZWQKKworZnVuY3Rpb24gc2hvdWxkQmUoc2NyaXB0LCBleHBlY3RlZCkgewor
ICAgIGxldCBhY3R1YWwgPSBldmFsKHNjcmlwdCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3RlZCA9
PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFsICE9
PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04uc3Ry
aW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7Cit9
CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KHNjcmlwdCwgZXJyb3JUeXBlKSB7CisgICAgbGV0IGVy
cm9yOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9m
IGVycm9yVHlwZSkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5
cGUubmFtZX0gYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQorCitzaG91bGRC
ZShgbGV0IHg7IHggJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeDsgeCAmJj0g
NDI7IHhgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0gdW5kZWZpbmVkOyB4ICYmPSBu
dWxsYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHVuZGVmaW5lZDsgeCAmJj0gbnVs
bDsgeGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSBudWxsOyB4ICYmPSB1bmRlZmlu
ZWRgLCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9IG51bGw7IHggJiY9IHVuZGVmaW5lZDsgeGAs
IG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0gdW5kZWZpbmVkOyB4ICYmPSA0MmAsIHVuZGVmaW5l
ZCk7CitzaG91bGRCZShgbGV0IHggPSB1bmRlZmluZWQ7IHggJiY9IDQyOyB4YCwgdW5kZWZpbmVk
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IG51bGw7IHggJiY9IDQyYCwgbnVsbCk7CitzaG91bGRCZShg
bGV0IHggPSBudWxsOyB4ICYmPSA0MjsgeGAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0gdHJ1
ZTsgeCAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB0cnVlOyB4ICYmPSA0MjsgeGAs
IDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IGZhbHNlOyB4ICYmPSA0MmAsIGZhbHNlKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IGZhbHNlOyB4ICYmPSA0MjsgeGAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQg
eCA9IDA7IHggJiY9IDQyYCwgMCk7CitzaG91bGRCZShgbGV0IHggPSAwOyB4ICYmPSA0MjsgeGAs
IDApOworc2hvdWxkQmUoYGxldCB4ID0gMTsgeCAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0
IHggPSAxOyB4ICYmPSA0MjsgeGAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9ICIiOyB4ICYmPSA0
MmAsICIiKTsKK3Nob3VsZEJlKGBsZXQgeCA9ICIiOyB4ICYmPSA0MjsgeGAsICIiKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9ICJ0ZXN0IjsgeCAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSAi
dGVzdCI7IHggJiY9IDQyOyB4YCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge307IHggJiY9IDQy
YCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge307IHggJiY9IDQyOyB4YCwgNDIpOworc2hvdWxk
QmUoYGxldCB4ID0gW107IHggJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gW107IHgg
JiY9IDQyOyB4YCwgNDIpOworCitzaG91bGRUaHJvdyhgY29uc3QgeDsgeCAmJj0gNDJgLCBTeW50
YXhFcnJvcik7CitzaG91bGRCZShgY29uc3QgeCA9IHVuZGVmaW5lZDsgeCAmJj0gbnVsbGAsIHVu
ZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHVuZGVmaW5lZDsgeCAmJj0gbnVsbDsgeGAs
IHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IG51bGw7IHggJiY9IHVuZGVmaW5lZGAs
IG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSBudWxsOyB4ICYmPSB1bmRlZmluZWQ7IHhgLCBu
dWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gdW5kZWZpbmVkOyB4ICYmPSA0MmAsIHVuZGVmaW5l
ZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHVuZGVmaW5lZDsgeCAmJj0gNDI7IHhgLCB1bmRlZmlu
ZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSBudWxsOyB4ICYmPSA0MmAsIG51bGwpOworc2hvdWxk
QmUoYGNvbnN0IHggPSBudWxsOyB4ICYmPSA0MjsgeGAsIG51bGwpOworc2hvdWxkVGhyb3coYGNv
bnN0IHggPSB0cnVlOyB4ICYmPSA0MmAsIFR5cGVFcnJvcik7CitzaG91bGRCZShgY29uc3QgeCA9
IGZhbHNlOyB4ICYmPSA0MmAsIGZhbHNlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gZmFsc2U7IHgg
JiY9IDQyOyB4YCwgZmFsc2UpOworc2hvdWxkQmUoYGNvbnN0IHggPSAwOyB4ICYmPSA0MmAsIDAp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSAwOyB4ICYmPSA0MjsgeGAsIDApOworc2hvdWxkVGhyb3co
YGNvbnN0IHggPSAxOyB4ICYmPSA0MmAsIFR5cGVFcnJvcik7CitzaG91bGRCZShgY29uc3QgeCA9
ICIiOyB4ICYmPSA0MmAsICIiKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gIiI7IHggJiY9IDQyOyB4
YCwgIiIpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSAidGVzdCI7IHggJiY9IDQyYCwgVHlwZUVy
cm9yKTsKK3Nob3VsZFRocm93KGBjb25zdCB4ID0ge307IHggJiY9IDQyYCwgVHlwZUVycm9yKTsK
K3Nob3VsZFRocm93KGBjb25zdCB4ID0gW107IHggJiY9IDQyYCwgVHlwZUVycm9yKTsKKworc2hv
dWxkQmUoYGxldCB4ID0ge307IHguYSAmJj0gNDJgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxl
dCB4ID0ge307IHguYSAmJj0gNDI7IHguYWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHgg
PSB7YTogdW5kZWZpbmVkfTsgeC5hICYmPSBudWxsYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgJiY9IG51bGw7IHguYWAsIHVuZGVmaW5lZCk7Citz
aG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHguYSAmJj0gdW5kZWZpbmVkYCwgbnVsbCk7Citz
aG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHguYSAmJj0gdW5kZWZpbmVkOyB4LmFgLCBudWxs
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgJiY9IDQyYCwgdW5kZWZp
bmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgJiY9IDQyOyB4LmFg
LCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4LmEgJiY9IDQyYCwg
bnVsbCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHguYSAmJj0gNDI7IHguYWAsIG51
bGwpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHRydWV9OyB4LmEgJiY9IDQyYCwgNDIpOworc2hv
dWxkQmUoYGxldCB4ID0ge2E6IHRydWV9OyB4LmEgJiY9IDQyOyB4LmFgLCA0Mik7CitzaG91bGRC
ZShgbGV0IHggPSB7YTogZmFsc2V9OyB4LmEgJiY9IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYGxl
dCB4ID0ge2E6IGZhbHNlfTsgeC5hICYmPSA0MjsgeC5hYCwgZmFsc2UpOworc2hvdWxkQmUoYGxl
dCB4ID0ge2E6IDB9OyB4LmEgJiY9IDQyYCwgMCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogMH07
IHguYSAmJj0gNDI7IHguYWAsIDApOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDF9OyB4LmEgJiY9
IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDF9OyB4LmEgJiY9IDQyOyB4LmFgLCA0
Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogIiJ9OyB4LmEgJiY9IDQyYCwgIiIpOworc2hvdWxk
QmUoYGxldCB4ID0ge2E6ICIifTsgeC5hICYmPSA0MjsgeC5hYCwgIiIpOworc2hvdWxkQmUoYGxl
dCB4ID0ge2E6ICJ0ZXN0In07IHguYSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7
YTogInRlc3QifTsgeC5hICYmPSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6
IHt9fTsgeC5hICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB7fX07IHguYSAm
Jj0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBbXX07IHguYSAmJj0gNDJg
LCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogW119OyB4LmEgJiY9IDQyOyB4LmFgLCA0Mik7
CisKK3Nob3VsZEJlKGBjb25zdCB4ID0ge307IHguYSAmJj0gNDJgLCB1bmRlZmluZWQpOworc2hv
dWxkQmUoYGNvbnN0IHggPSB7fTsgeC5hICYmPSA0MjsgeC5hYCwgdW5kZWZpbmVkKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSAmJj0gbnVsbGAsIHVuZGVmaW5lZCk7
CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgJiY9IG51bGw7IHguYWAs
IHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeC5hICYmPSB1bmRl
ZmluZWRgLCBudWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IG51bGx9OyB4LmEgJiY9IHVu
ZGVmaW5lZDsgeC5hYCwgbnVsbCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9
OyB4LmEgJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVm
aW5lZH07IHguYSAmJj0gNDI7IHguYWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9
IHthOiBudWxsfTsgeC5hICYmPSA0MmAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTog
bnVsbH07IHguYSAmJj0gNDI7IHguYWAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTog
dHJ1ZX07IHguYSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB0cnVlfTsg
eC5hICYmPSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogZmFsc2V9OyB4
LmEgJiY9IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogZmFsc2V9OyB4LmEg
JiY9IDQyOyB4LmFgLCBmYWxzZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAwfTsgeC5hICYm
PSA0MmAsIDApOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMH07IHguYSAmJj0gNDI7IHguYWAs
IDApOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMX07IHguYSAmJj0gNDJgLCA0Mik7CitzaG91
bGRCZShgY29uc3QgeCA9IHthOiAxfTsgeC5hICYmPSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUo
YGNvbnN0IHggPSB7YTogIiJ9OyB4LmEgJiY9IDQyYCwgIiIpOworc2hvdWxkQmUoYGNvbnN0IHgg
PSB7YTogIiJ9OyB4LmEgJiY9IDQyOyB4LmFgLCAiIik7CitzaG91bGRCZShgY29uc3QgeCA9IHth
OiAidGVzdCJ9OyB4LmEgJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogInRl
c3QifTsgeC5hICYmPSA0MjsgeC5hYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YToge319
OyB4LmEgJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YToge319OyB4LmEgJiY9
IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHguYSAmJj0gNDJg
LCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHguYSAmJj0gNDI7IHguYWAsIDQy
KTsKKworc2hvdWxkQmUoYGxldCB4ID0ge307IHhbImEiXSAmJj0gNDJgLCB1bmRlZmluZWQpOwor
c2hvdWxkQmUoYGxldCB4ID0ge307IHhbImEiXSAmJj0gNDI7IHhbImEiXWAsIHVuZGVmaW5lZCk7
CitzaG91bGRCZShgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdICYmPSBudWxsYCwgdW5k
ZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gJiY9IG51
bGw7IHhbImEiXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHhb
ImEiXSAmJj0gdW5kZWZpbmVkYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07
IHhbImEiXSAmJj0gdW5kZWZpbmVkOyB4WyJhIl1gLCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCB1bmRlZmluZWQp
Oworc2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gJiY9IDQyYCwgbnVsbCk7Citz
aG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHhbImEiXSAmJj0gNDI7IHhbImEiXWAsIG51bGwp
Oworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHRydWV9OyB4WyJhIl0gJiY9IDQyYCwgNDIpOworc2hv
dWxkQmUoYGxldCB4ID0ge2E6IHRydWV9OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCA0Mik7Citz
aG91bGRCZShgbGV0IHggPSB7YTogZmFsc2V9OyB4WyJhIl0gJiY9IDQyYCwgZmFsc2UpOworc2hv
dWxkQmUoYGxldCB4ID0ge2E6IGZhbHNlfTsgeFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgZmFsc2Up
Oworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDB9OyB4WyJhIl0gJiY9IDQyYCwgMCk7CitzaG91bGRC
ZShgbGV0IHggPSB7YTogMH07IHhbImEiXSAmJj0gNDI7IHhbImEiXWAsIDApOworc2hvdWxkQmUo
YGxldCB4ID0ge2E6IDF9OyB4WyJhIl0gJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0g
e2E6IDF9OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7
YTogIiJ9OyB4WyJhIl0gJiY9IDQyYCwgIiIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6ICIifTsg
eFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgIiIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6ICJ0ZXN0
In07IHhbImEiXSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogInRlc3QifTsg
eFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHt9fTsg
eFsiYSJdICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB7fX07IHhbImEiXSAm
Jj0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBbXX07IHhbImEiXSAm
Jj0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogW119OyB4WyJhIl0gJiY9IDQyOyB4
WyJhIl1gLCA0Mik7CisKK3Nob3VsZEJlKGBjb25zdCB4ID0ge307IHhbImEiXSAmJj0gNDJgLCB1
bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7fTsgeFsiYSJdICYmPSA0MjsgeFsiYSJd
YCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEi
XSAmJj0gbnVsbGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmlu
ZWR9OyB4WyJhIl0gJiY9IG51bGw7IHhbImEiXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29u
c3QgeCA9IHthOiBudWxsfTsgeFsiYSJdICYmPSB1bmRlZmluZWRgLCBudWxsKTsKK3Nob3VsZEJl
KGBjb25zdCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gJiY9IHVuZGVmaW5lZDsgeFsiYSJdYCwgbnVs
bCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gJiY9IDQyYCwg
dW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSAm
Jj0gNDI7IHhbImEiXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxs
fTsgeFsiYSJdICYmPSA0MmAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07
IHhbImEiXSAmJj0gNDI7IHhbImEiXWAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTog
dHJ1ZX07IHhbImEiXSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB0cnVl
fTsgeFsiYSJdICYmPSA0MjsgeFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTog
ZmFsc2V9OyB4WyJhIl0gJiY9IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTog
ZmFsc2V9OyB4WyJhIl0gJiY9IDQyOyB4WyJhIl1gLCBmYWxzZSk7CitzaG91bGRCZShgY29uc3Qg
eCA9IHthOiAwfTsgeFsiYSJdICYmPSA0MmAsIDApOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTog
MH07IHhbImEiXSAmJj0gNDI7IHhbImEiXWAsIDApOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTog
MX07IHhbImEiXSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAxfTsgeFsi
YSJdICYmPSA0MjsgeFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogIiJ9OyB4
WyJhIl0gJiY9IDQyYCwgIiIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogIiJ9OyB4WyJhIl0g
JiY9IDQyOyB4WyJhIl1gLCAiIik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAidGVzdCJ9OyB4
WyJhIl0gJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogInRlc3QifTsgeFsi
YSJdICYmPSA0MjsgeFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YToge319OyB4
WyJhIl0gJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YToge319OyB4WyJhIl0g
JiY9IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHhbImEi
XSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHhbImEiXSAmJj0g
NDI7IHhbImEiXWAsIDQyKTsKKworc2hvdWxkQmUoYGxldCB4ID0gW107IHhbMF0gJiY9IDQyYCwg
dW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtdOyB4WzBdICYmPSA0MjsgeFswXWAsIHVu
ZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSBbdW5kZWZpbmVkXTsgeFswXSAmJj0gbnVsbGAs
IHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSBbdW5kZWZpbmVkXTsgeFswXSAmJj0gbnVs
bDsgeFswXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSBbbnVsbF07IHhbMF0gJiY9
IHVuZGVmaW5lZGAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0gW251bGxdOyB4WzBdICYmPSB1
bmRlZmluZWQ7IHhbMF1gLCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt1bmRlZmluZWRdOyB4
WzBdICYmPSA0MmAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSBbdW5kZWZpbmVkXTsg
eFswXSAmJj0gNDI7IHhbMF1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0gW251bGxd
OyB4WzBdICYmPSA0MmAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0gW251bGxdOyB4WzBdICYm
PSA0MjsgeFswXWAsIG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0gW3RydWVdOyB4WzBdICYmPSA0
MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt0cnVlXTsgeFswXSAmJj0gNDI7IHhbMF1gLCA0
Mik7CitzaG91bGRCZShgbGV0IHggPSBbZmFsc2VdOyB4WzBdICYmPSA0MmAsIGZhbHNlKTsKK3No
b3VsZEJlKGBsZXQgeCA9IFtmYWxzZV07IHhbMF0gJiY9IDQyOyB4WzBdYCwgZmFsc2UpOworc2hv
dWxkQmUoYGxldCB4ID0gWzBdOyB4WzBdICYmPSA0MmAsIDApOworc2hvdWxkQmUoYGxldCB4ID0g
WzBdOyB4WzBdICYmPSA0MjsgeFswXWAsIDApOworc2hvdWxkQmUoYGxldCB4ID0gWzFdOyB4WzBd
ICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFsxXTsgeFswXSAmJj0gNDI7IHhbMF1g
LCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBbIiJdOyB4WzBdICYmPSA0MmAsICIiKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IFsiIl07IHhbMF0gJiY9IDQyOyB4WzBdYCwgIiIpOworc2hvdWxkQmUoYGxl
dCB4ID0gWyJ0ZXN0Il07IHhbMF0gJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gWyJ0
ZXN0Il07IHhbMF0gJiY9IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gW3t9XTsg
eFswXSAmJj0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBbe31dOyB4WzBdICYmPSA0Mjsg
eFswXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtbXV07IHhbMF0gJiY9IDQyYCwgNDIpOwor
c2hvdWxkQmUoYGxldCB4ID0gW1tdXTsgeFswXSAmJj0gNDI7IHhbMF1gLCA0Mik7CisKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0gW107IHhbMF0gJiY9IDQyYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBj
b25zdCB4ID0gW107IHhbMF0gJiY9IDQyOyB4WzBdYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBj
b25zdCB4ID0gW3VuZGVmaW5lZF07IHhbMF0gJiY9IG51bGxgLCB1bmRlZmluZWQpOworc2hvdWxk
QmUoYGNvbnN0IHggPSBbdW5kZWZpbmVkXTsgeFswXSAmJj0gbnVsbDsgeFswXWAsIHVuZGVmaW5l
ZCk7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSAmJj0gdW5kZWZpbmVkYCwgbnVs
bCk7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSAmJj0gdW5kZWZpbmVkOyB4WzBd
YCwgbnVsbCk7CitzaG91bGRCZShgY29uc3QgeCA9IFt1bmRlZmluZWRdOyB4WzBdICYmPSA0MmAs
IHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IFt1bmRlZmluZWRdOyB4WzBdICYmPSA0
MjsgeFswXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSAm
Jj0gNDJgLCBudWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW251bGxdOyB4WzBdICYmPSA0Mjsg
eFswXWAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbdHJ1ZV07IHhbMF0gJiY9IDQyYCwg
NDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbdHJ1ZV07IHhbMF0gJiY9IDQyOyB4WzBdYCwgNDIp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSBbZmFsc2VdOyB4WzBdICYmPSA0MmAsIGZhbHNlKTsKK3No
b3VsZEJlKGBjb25zdCB4ID0gW2ZhbHNlXTsgeFswXSAmJj0gNDI7IHhbMF1gLCBmYWxzZSk7Citz
aG91bGRCZShgY29uc3QgeCA9IFswXTsgeFswXSAmJj0gNDJgLCAwKTsKK3Nob3VsZEJlKGBjb25z
dCB4ID0gWzBdOyB4WzBdICYmPSA0MjsgeFswXWAsIDApOworc2hvdWxkQmUoYGNvbnN0IHggPSBb
MV07IHhbMF0gJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbMV07IHhbMF0gJiY9
IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbIiJdOyB4WzBdICYmPSA0MmAs
ICIiKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gWyIiXTsgeFswXSAmJj0gNDI7IHhbMF1gLCAiIik7
CitzaG91bGRCZShgY29uc3QgeCA9IFsidGVzdCJdOyB4WzBdICYmPSA0MmAsIDQyKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0gWyJ0ZXN0Il07IHhbMF0gJiY9IDQyOyB4WzBdYCwgNDIpOworc2hvdWxk
QmUoYGNvbnN0IHggPSBbe31dOyB4WzBdICYmPSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4
ID0gW3t9XTsgeFswXSAmJj0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFtb
XV07IHhbMF0gJiY9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbW11dOyB4WzBdICYm
PSA0MjsgeFswXWAsIDQyKTsKKworc2hvdWxkQmUoYGxldCB4ID0gZmFsc2UsIHkgPSAxLCB6ID0g
MjsgeCAmJj0geSArIHpgLCBmYWxzZSk7CitzaG91bGRCZShgbGV0IHggPSBmYWxzZSwgeSA9IDEs
IHogPSAyOyB4ICYmPSB5ID0gemAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IGZhbHNlLCB5
ID0gMSwgeiA9IDI7IHggJiY9IHkgJiYgemAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IGZh
bHNlLCB5ID0gMSwgeiA9IDI7IHggJiY9IHkgPz8gemAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQg
eCA9IGZhbHNlLCB5ID0gMSwgeiA9IDI7IHggJiY9IHkgfHwgemAsIGZhbHNlKTsKK3Nob3VsZEJl
KGBsZXQgeCA9IGZhbHNlLCB5ID0gMSwgeiA9IDI7IHggJiY9IHkgJiY9IHpgLCBmYWxzZSk7Citz
aG91bGRCZShgbGV0IHggPSBmYWxzZSwgeSA9IDEsIHogPSAyOyB4ICYmPSB5ID8/PSB6YCwgZmFs
c2UpOworc2hvdWxkQmUoYGxldCB4ID0gZmFsc2UsIHkgPSAxLCB6ID0gMjsgeCAmJj0geSB8fD0g
emAsIGZhbHNlKTsKKworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZSwgeSA9IDEsIHogPSAyOyB4ICYm
PSB5ICsgemAsIDMpOworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZSwgeSA9IDEsIHogPSAyOyB4ICYm
PSB5ID0gemAsIDIpOworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZSwgeSA9IDEsIHogPSAyOyB4ICYm
PSB5ICYmIHpgLCAyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHRydWUsIHkgPSAxLCB6ID0gMjsgeCAm
Jj0geSA/PyB6YCwgMSk7CitzaG91bGRCZShgbGV0IHggPSB0cnVlLCB5ID0gMSwgeiA9IDI7IHgg
JiY9IHkgfHwgemAsIDEpOworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZSwgeSA9IDEsIHogPSAyOyB4
ICYmPSB5ICYmPSB6YCwgMik7CitzaG91bGRCZShgbGV0IHggPSB0cnVlLCB5ID0gMSwgeiA9IDI7
IHggJiY9IHkgPz89IHpgLCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHRydWUsIHkgPSAxLCB6ID0g
MjsgeCAmJj0geSB8fD0gemAsIDEpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2xl
dCBhID0gdHJ1ZTsKK2xldCB4ID0geworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgi
Z2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAgc2V0IGEodikgeworICAgICAg
ICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAgIH0sCit9OworCit4LmEgJiY9
IDQyOworeC5hICYmPSA0MjsKK3guYSAmJj0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyBh
YCwgImdldCBzZXQgZ2V0IHNldCBnZXQgc2V0IDQyIik7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cg
PSBbXTsKKworbGV0IGEgPSBmYWxzZTsKK2xldCB4ID0geworICAgIGdldCBhKCkgeworICAgICAg
ICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAgc2V0IGEo
dikgeworICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAgIH0sCit9
OworCit4LmEgJiY9IDQyOworeC5hICYmPSA0MjsKK3guYSAmJj0gNDI7CisKK2xvZy5qb2luKCIg
IikgKyAiICIgKyBhYCwgImdldCBnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGAKK2xldCBs
b2cgPSBbXTsKKworbGV0IGEgPSB1bmRlZmluZWQ7CitsZXQgeCA9IHsKKyAgICBnZXQgYSgpIHsK
KyAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1cm4gYTsKKyAgICB9LAorICAg
IHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICBhID0gdjsKKyAg
ICB9LAorfTsKKworeC5hICYmPSA0MjsKK3guYSAmJj0gNDI7Cit4LmEgJiY9IDQyOworCitsb2cu
am9pbigiICIpICsgIiAiICsgYWAsICJnZXQgZ2V0IGdldCB1bmRlZmluZWQiKTsKKworc2hvdWxk
QmUoYAorbGV0IGxvZyA9IFtdOworCitsZXQgYSA9IHRydWU7CitsZXQgeCA9IHsKKyAgICBnZXQg
YSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1cm4gYTsKKyAgICB9
LAorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICBhID0g
djsKKyAgICB9LAorfTsKKworeFsiYSJdICYmPSA0MjsKK3hbImEiXSAmJj0gNDI7Cit4WyJhIl0g
JiY9IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsgYWAsICJnZXQgc2V0IGdldCBzZXQgZ2V0
IHNldCA0MiIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2xldCBhID0gZmFsc2U7
CitsZXQgeCA9IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldCIpOworICAg
ICAgICByZXR1cm4gYTsKKyAgICB9LAorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2go
InNldCIpOworICAgICAgICBhID0gdjsKKyAgICB9LAorfTsKKworeFsiYSJdICYmPSA0MjsKK3hb
ImEiXSAmJj0gNDI7Cit4WyJhIl0gJiY9IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsgYWAs
ICJnZXQgZ2V0IGdldCBmYWxzZSIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2xl
dCBhID0gdW5kZWZpbmVkOworbGV0IHggPSB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5w
dXNoKCJnZXQiKTsKKyAgICAgICAgcmV0dXJuIGE7CisgICAgfSwKKyAgICBzZXQgYSh2KSB7Cisg
ICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgYSA9IHY7CisgICAgfSwKK307CisKK3hb
ImEiXSAmJj0gNDI7Cit4WyJhIl0gJiY9IDQyOworeFsiYSJdICYmPSA0MjsKKworbG9nLmpvaW4o
IiAiKSArICIgIiArIGFgLCAiZ2V0IGdldCBnZXQgdW5kZWZpbmVkIik7CisKK3Nob3VsZEJlKGAK
K2xldCBsb2cgPSBbXTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAg
bG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgfQor
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAg
dGhpcy5fYSAmJj0gdjsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7Cisg
ICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgcmV0
dXJuIHN1cGVyLmE7CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNl
dC1jaGlsZCIpOworICAgICAgICBzdXBlci5hICYmPSB2OworICAgIH0KK30KKworbGV0IHggPSBu
ZXcgQ2hpbGQ7Cit4Ll9hID0gdHJ1ZTsKK3guYSA9IDQyOworeC5hID0gNDI7Cit4LmEgPSA0MjsK
KworbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2FgLCAic2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFy
ZW50IHNldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitjbGFz
cyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIp
OworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAg
ICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hICYmPSB2OworICAgIH0K
K30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAg
bG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICB9Cisg
ICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgIHN1
cGVyLmEgJiY9IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsKK3guX2EgPSBmYWxz
ZTsKK3guYSA9IDQyOworeC5hID0gNDI7Cit4LmEgPSA0MjsKKworbG9nLmpvaW4oIiAiKSArICIg
IiArIHguX2FgLCAic2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LWNoaWxkIGdldC1wYXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOwor
CitjbGFzcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LXBh
cmVudCIpOworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEodikgewor
ICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hICYmPSB2Owor
ICAgIH0KK30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAg
ICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAg
ICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAg
ICAgIHN1cGVyLmEgJiY9IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsKK3guX2Eg
PSB1bmRlZmluZWQ7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xvZy5qb2lu
KCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQt
cGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIpOworCitzaG91bGRCZShgCits
ZXQgbG9nID0gW107CisKK2NsYXNzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxv
Zy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgIH0KKyAg
ICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgIHRo
aXMuX2EgJiY9IHY7CisgICAgfQorfQorY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAg
IGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgIHJldHVy
biBzdXBlclsiYSJdOworICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJz
ZXQtY2hpbGQiKTsKKyAgICAgICAgc3VwZXJbImEiXSAmJj0gdjsKKyAgICB9Cit9CisKK2xldCB4
ID0gbmV3IENoaWxkOworeC5fYSA9IHRydWU7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0g
NDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50
IHNldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0
LXBhcmVudCBzZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBbXTsKKwor
Y2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldC1wYXJl
bnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAg
ICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAg
ICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7CisgICAg
ICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07Cisg
ICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAg
ICAgICBzdXBlclsiYSJdICYmPSB2OworICAgIH0KK30KKworbGV0IHggPSBuZXcgQ2hpbGQ7Cit4
Ll9hID0gZmFsc2U7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xvZy5qb2lu
KCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQt
cGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGAKK2xldCBs
b2cgPSBbXTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1
c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgfQorICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgdGhpcy5f
YSAmJj0gdjsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgZ2V0
IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgcmV0dXJuIHN1
cGVyWyJhIl07CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1j
aGlsZCIpOworICAgICAgICBzdXBlclsiYSJdICYmPSB2OworICAgIH0KK30KKworbGV0IHggPSBu
ZXcgQ2hpbGQ7Cit4Ll9hID0gdW5kZWZpbmVkOworeC5hID0gNDI7Cit4LmEgPSA0MjsKK3guYSA9
IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsgeC5fYWAsICJzZXQtY2hpbGQgZ2V0LXBhcmVu
dCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCB1bmRlZmluZWQiKTsK
Kworc2hvdWxkQmUoYAorbGV0IHggPSB7fTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIs
IHsKKyAgICB2YWx1ZTogZmFsc2UsCisgICAgd3JpdGFibGU6IGZhbHNlLAorfSk7Cit4LmEgJiY9
IDQyYCwgZmFsc2UpOworCitzaG91bGRCZShgCitsZXQgeCA9IHt9OworT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHgsICJhIiwgeworICAgIHZhbHVlOiB0cnVlLAorICAgIHdyaXRhYmxlOiBmYWxzZSwK
K30pOworeC5hICYmPSA0MmAsIDQyKTsKKworc2hvdWxkQmUoYAorInVzZSBzdHJpY3QiOworbGV0
IHggPSB7fTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICB2YWx1ZTogZmFs
c2UsCisgICAgd3JpdGFibGU6IGZhbHNlLAorfSk7Cit4LmEgJiY9IDQyYCwgZmFsc2UpOworCitz
aG91bGRUaHJvdyhgCisidXNlIHN0cmljdCI7CitsZXQgeCA9IHt9OworT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHgsICJhIiwgeworICAgIHZhbHVlOiB0cnVlLAorICAgIHdyaXRhYmxlOiBmYWxzZSwK
K30pOworeC5hICYmPSA0MmAsIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGAKK2xldCB4ID0gZmFs
c2U7CisoZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSkoKTtgLCBmYWxzZSk7
CisKK3Nob3VsZEJlKGAKK2xldCB4ID0gdHJ1ZTsKKyhmdW5jdGlvbigpIHsKKyAgICByZXR1cm4g
eCAmJj0gNDI7Cit9KSgpO2AsIDQyKTsKKworc2hvdWxkQmUoYAorY29uc3QgeCA9IGZhbHNlOwor
KGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB4ICYmPSA0MjsKK30pKCk7YCwgZmFsc2UpOworCitz
aG91bGRUaHJvdyhgCitjb25zdCB4ID0gdHJ1ZTsKKyhmdW5jdGlvbigpIHsKKyAgICByZXR1cm4g
eCAmJj0gNDI7Cit9KSgpO2AsIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGAKK3ggJiY9IDQy
OworbGV0IHggPSB0cnVlOworeGAsIFJlZmVyZW5jZUVycm9yKTsKKworc2hvdWxkQmUoYHVuZGVm
aW5lZCAmJj0gNDJgLCB1bmRlZmluZWQpOworc2hvdWxkVGhyb3coYG51bGwgJiY9IDQyYCwgU3lu
dGF4RXJyb3IpOworc2hvdWxkVGhyb3coYHRydWUgJiY9IDQyYCwgU3ludGF4RXJyb3IpOworc2hv
dWxkVGhyb3coYGZhbHNlICYmPSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGAwICYm
PSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGAxICYmPSA0MmAsIFN5bnRheEVycm9y
KTsKK3Nob3VsZFRocm93KGAiIiAmJj0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhg
InRlc3QiICYmPSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGB7fSAmJj0gNDJgLCBT
eW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhgW10gJiY9IDQyYCwgU3ludGF4RXJyb3IpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLWNvYWxl
c2NlLmpzIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLWNvYWxl
c2NlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc4NTAwNDA0MTZhMmRhMDc4YTJhN2YwYTgzZDVjOGE5MmQ3NjRh
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQt
b3BlcmF0b3ItY29hbGVzY2UuanMKQEAgLTAsMCArMSw2MzggQEAKKy8vQCBydW5Mb2dpY2FsQXNz
aWdubWVudE9wZXJhdG9yc0VuYWJsZWQKKworZnVuY3Rpb24gc2hvdWxkQmUoc2NyaXB0LCBleHBl
Y3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBldmFsKHNjcmlwdCk7CisgICAgaWYgKHR5cGVvZiBl
eHBlY3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDog
YWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAk
e0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVh
bCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KHNjcmlwdCwgZXJyb3JUeXBlKSB7Cisg
ICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBp
bnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQg
JHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQor
CitzaG91bGRCZShgbGV0IHg7IHggPz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4OyB4ID8/
PSA0MjsgeGAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHVuZGVmaW5lZDsgeCA/Pz0gbnVsbGAs
IG51bGwpOworc2hvdWxkQmUoYGxldCB4ID0gdW5kZWZpbmVkOyB4ID8/PSBudWxsOyB4YCwgbnVs
bCk7CitzaG91bGRCZShgbGV0IHggPSBudWxsOyB4ID8/PSB1bmRlZmluZWRgLCB1bmRlZmluZWQp
Oworc2hvdWxkQmUoYGxldCB4ID0gbnVsbDsgeCA/Pz0gdW5kZWZpbmVkOyB4YCwgdW5kZWZpbmVk
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHVuZGVmaW5lZDsgeCA/Pz0gNDJgLCA0Mik7CitzaG91bGRC
ZShgbGV0IHggPSB1bmRlZmluZWQ7IHggPz89IDQyOyB4YCwgNDIpOworc2hvdWxkQmUoYGxldCB4
ID0gbnVsbDsgeCA/Pz0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBudWxsOyB4ID8/PSA0
MjsgeGAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHRydWU7IHggPz89IDQyYCwgdHJ1ZSk7Citz
aG91bGRCZShgbGV0IHggPSB0cnVlOyB4ID8/PSA0MjsgeGAsIHRydWUpOworc2hvdWxkQmUoYGxl
dCB4ID0gZmFsc2U7IHggPz89IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0gZmFsc2U7
IHggPz89IDQyOyB4YCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0gMDsgeCA/Pz0gNDJgLCAw
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IDA7IHggPz89IDQyOyB4YCwgMCk7CitzaG91bGRCZShgbGV0
IHggPSAxOyB4ID8/PSA0MmAsIDEpOworc2hvdWxkQmUoYGxldCB4ID0gMTsgeCA/Pz0gNDI7IHhg
LCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9ICIiOyB4ID8/PSA0MmAsICIiKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9ICIiOyB4ID8/PSA0MjsgeGAsICIiKTsKK3Nob3VsZEJlKGBsZXQgeCA9ICJ0ZXN0Ijsg
eCA/Pz0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUoYGxldCB4ID0gInRlc3QiOyB4ID8/PSA0Mjsg
eGAsICJ0ZXN0Iik7CitzaG91bGRCZShgbGV0IHggPSB7fTsgeCA/Pz0gNDJgLCBPYmplY3QpOwor
c2hvdWxkQmUoYGxldCB4ID0ge307IHggPz89IDQyOyB4YCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IFtdOyB4ID8/PSA0MmAsIEFycmF5KTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtdOyB4ID8/
PSA0MjsgeGAsIEFycmF5KTsKKworc2hvdWxkVGhyb3coYGNvbnN0IHg7IHggPz89IDQyYCwgU3lu
dGF4RXJyb3IpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSB1bmRlZmluZWQ7IHggPz89IG51bGxg
LCBUeXBlRXJyb3IpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSBudWxsOyB4ID8/PSB1bmRlZmlu
ZWRgLCBUeXBlRXJyb3IpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSB1bmRlZmluZWQ7IHggPz89
IDQyYCwgVHlwZUVycm9yKTsKK3Nob3VsZFRocm93KGBjb25zdCB4ID0gbnVsbDsgeCA/Pz0gNDJg
LCBUeXBlRXJyb3IpOworc2hvdWxkQmUoYGNvbnN0IHggPSB0cnVlOyB4ID8/PSA0MmAsIHRydWUp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB0cnVlOyB4ID8/PSA0MjsgeGAsIHRydWUpOworc2hvdWxk
QmUoYGNvbnN0IHggPSBmYWxzZTsgeCA/Pz0gNDJgLCBmYWxzZSk7CitzaG91bGRCZShgY29uc3Qg
eCA9IGZhbHNlOyB4ID8/PSA0MjsgeGAsIGZhbHNlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gMDsg
eCA/Pz0gNDJgLCAwKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gMDsgeCA/Pz0gNDI7IHhgLCAwKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0gMTsgeCA/Pz0gNDJgLCAxKTsKK3Nob3VsZEJlKGBjb25zdCB4
ID0gMTsgeCA/Pz0gNDI7IHhgLCAxKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gIiI7IHggPz89IDQy
YCwgIiIpOworc2hvdWxkQmUoYGNvbnN0IHggPSAiIjsgeCA/Pz0gNDI7IHhgLCAiIik7CitzaG91
bGRCZShgY29uc3QgeCA9ICJ0ZXN0IjsgeCA/Pz0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUoYGNv
bnN0IHggPSAidGVzdCI7IHggPz89IDQyOyB4YCwgInRlc3QiKTsKK3Nob3VsZEJlKGBjb25zdCB4
ID0ge307IHggPz89IDQyYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW107IHggPz89
IDQyYCwgQXJyYXkpOworCitzaG91bGRCZShgbGV0IHggPSB7fTsgeC5hID8/PSA0MmAsIDQyKTsK
K3Nob3VsZEJlKGBsZXQgeCA9IHt9OyB4LmEgPz89IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShg
bGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeC5hID8/PSBudWxsYCwgbnVsbCk7CitzaG91bGRCZShg
bGV0IHggPSB7YTogdW5kZWZpbmVkfTsgeC5hID8/PSBudWxsOyB4LmFgLCBudWxsKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IHthOiBudWxsfTsgeC5hID8/PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOwor
c2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4LmEgPz89IHVuZGVmaW5lZDsgeC5hYCwgdW5k
ZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgPz89IDQyYCwg
NDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSA/Pz0gNDI7IHguYWAs
IDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBudWxsfTsgeC5hID8/PSA0MmAsIDQyKTsKK3No
b3VsZEJlKGBsZXQgeCA9IHthOiBudWxsfTsgeC5hID8/PSA0MjsgeC5hYCwgNDIpOworc2hvdWxk
QmUoYGxldCB4ID0ge2E6IHRydWV9OyB4LmEgPz89IDQyYCwgdHJ1ZSk7CitzaG91bGRCZShgbGV0
IHggPSB7YTogdHJ1ZX07IHguYSA/Pz0gNDI7IHguYWAsIHRydWUpOworc2hvdWxkQmUoYGxldCB4
ID0ge2E6IGZhbHNlfTsgeC5hID8/PSA0MmAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHth
OiBmYWxzZX07IHguYSA/Pz0gNDI7IHguYWAsIGZhbHNlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHth
OiAwfTsgeC5hID8/PSA0MmAsIDApOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDB9OyB4LmEgPz89
IDQyOyB4LmFgLCAwKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAxfTsgeC5hID8/PSA0MmAsIDEp
Oworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDF9OyB4LmEgPz89IDQyOyB4LmFgLCAxKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IHthOiAiIn07IHguYSA/Pz0gNDJgLCAiIik7CitzaG91bGRCZShgbGV0IHgg
PSB7YTogIiJ9OyB4LmEgPz89IDQyOyB4LmFgLCAiIik7CitzaG91bGRCZShgbGV0IHggPSB7YTog
InRlc3QifTsgeC5hID8/PSA0MmAsICJ0ZXN0Iik7CitzaG91bGRCZShgbGV0IHggPSB7YTogInRl
c3QifTsgeC5hID8/PSA0MjsgeC5hYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB7
fX07IHguYSA/Pz0gNDJgLCBPYmplY3QpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHt9fTsgeC5h
ID8/PSA0MjsgeC5hYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBbXX07IHguYSA/
Pz0gNDJgLCBBcnJheSk7CitzaG91bGRCZShgbGV0IHggPSB7YTogW119OyB4LmEgPz89IDQyOyB4
LmFgLCBBcnJheSk7CisKK3Nob3VsZEJlKGBjb25zdCB4ID0ge307IHguYSA/Pz0gNDJgLCA0Mik7
CitzaG91bGRCZShgY29uc3QgeCA9IHt9OyB4LmEgPz89IDQyOyB4LmFgLCA0Mik7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgPz89IG51bGxgLCBudWxsKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSA/Pz0gbnVsbDsgeC5hYCwgbnVsbCk7
CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeC5hID8/PSB1bmRlZmluZWRgLCB1bmRl
ZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHguYSA/Pz0gdW5kZWZpbmVk
OyB4LmFgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsg
eC5hID8/PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHgu
YSA/Pz0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IG51bGx9OyB4LmEg
Pz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHguYSA/Pz0gNDI7
IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHRydWV9OyB4LmEgPz89IDQyYCwg
dHJ1ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB0cnVlfTsgeC5hID8/PSA0MjsgeC5hYCwg
dHJ1ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBmYWxzZX07IHguYSA/Pz0gNDJgLCBmYWxz
ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBmYWxzZX07IHguYSA/Pz0gNDI7IHguYWAsIGZh
bHNlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDB9OyB4LmEgPz89IDQyYCwgMCk7CitzaG91
bGRCZShgY29uc3QgeCA9IHthOiAwfTsgeC5hID8/PSA0MjsgeC5hYCwgMCk7CitzaG91bGRCZShg
Y29uc3QgeCA9IHthOiAxfTsgeC5hID8/PSA0MmAsIDEpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7
YTogMX07IHguYSA/Pz0gNDI7IHguYWAsIDEpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogIiJ9
OyB4LmEgPz89IDQyYCwgIiIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogIiJ9OyB4LmEgPz89
IDQyOyB4LmFgLCAiIik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAidGVzdCJ9OyB4LmEgPz89
IDQyYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6ICJ0ZXN0In07IHguYSA/Pz0g
NDI7IHguYWAsICJ0ZXN0Iik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB7fX07IHguYSA/Pz0g
NDJgLCBPYmplY3QpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YToge319OyB4LmEgPz89IDQyOyB4
LmFgLCBPYmplY3QpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogW119OyB4LmEgPz89IDQyYCwg
QXJyYXkpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogW119OyB4LmEgPz89IDQyOyB4LmFgLCBB
cnJheSk7CisKK3Nob3VsZEJlKGBsZXQgeCA9IHt9OyB4WyJhIl0gPz89IDQyYCwgNDIpOworc2hv
dWxkQmUoYGxldCB4ID0ge307IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJl
KGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gPz89IG51bGxgLCBudWxsKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gPz89IG51bGw7IHhbImEiXWAsIG51
bGwpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gPz89IHVuZGVmaW5lZGAs
IHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHhbImEiXSA/Pz0gdW5k
ZWZpbmVkOyB4WyJhIl1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHVuZGVm
aW5lZH07IHhbImEiXSA/Pz0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogdW5kZWZp
bmVkfTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6
IG51bGx9OyB4WyJhIl0gPz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IG51bGx9
OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogdHJ1
ZX07IHhbImEiXSA/Pz0gNDJgLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB0cnVlfTsg
eFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgdHJ1ZSk7CitzaG91bGRCZShgbGV0IHggPSB7YTogZmFs
c2V9OyB4WyJhIl0gPz89IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IGZhbHNl
fTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6
IDB9OyB4WyJhIl0gPz89IDQyYCwgMCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogMH07IHhbImEi
XSA/Pz0gNDI7IHhbImEiXWAsIDApOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDF9OyB4WyJhIl0g
Pz89IDQyYCwgMSk7CitzaG91bGRCZShgbGV0IHggPSB7YTogMX07IHhbImEiXSA/Pz0gNDI7IHhb
ImEiXWAsIDEpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6ICIifTsgeFsiYSJdID8/PSA0MmAsICIi
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAiIn07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsICIi
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAidGVzdCJ9OyB4WyJhIl0gPz89IDQyYCwgInRlc3Qi
KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAidGVzdCJ9OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1g
LCAidGVzdCIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHt9fTsgeFsiYSJdID8/PSA0MmAsIE9i
amVjdCk7CitzaG91bGRCZShgbGV0IHggPSB7YToge319OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1g
LCBPYmplY3QpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IFtdfTsgeFsiYSJdID8/PSA0MmAsIEFy
cmF5KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBbXX07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAs
IEFycmF5KTsKKworc2hvdWxkQmUoYGNvbnN0IHggPSB7fTsgeFsiYSJdID8/PSA0MmAsIDQyKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge307IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIDQyKTsKK3No
b3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSA/Pz0gbnVsbGAsIG51bGwp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdID8/PSBudWxsOyB4
WyJhIl1gLCBudWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gPz89
IHVuZGVmaW5lZGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsg
eFsiYSJdID8/PSB1bmRlZmluZWQ7IHhbImEiXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29u
c3QgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gPz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGNv
bnN0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgNDIpOworc2hv
dWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHhbImEiXSA/Pz0gNDJgLCA0Mik7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiBudWxsfTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgNDIpOworc2hv
dWxkQmUoYGNvbnN0IHggPSB7YTogdHJ1ZX07IHhbImEiXSA/Pz0gNDJgLCB0cnVlKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0ge2E6IHRydWV9OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCB0cnVlKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IGZhbHNlfTsgeFsiYSJdID8/PSA0MmAsIGZhbHNlKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IGZhbHNlfTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwg
ZmFsc2UpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMH07IHhbImEiXSA/Pz0gNDJgLCAwKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDB9OyB4WyJhIl0gPz89IDQyOyB4WyJhIl1gLCAwKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDF9OyB4WyJhIl0gPz89IDQyYCwgMSk7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiAxfTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgMSk7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiAiIn07IHhbImEiXSA/Pz0gNDJgLCAiIik7CitzaG91bGRCZShgY29u
c3QgeCA9IHthOiAiIn07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsICIiKTsKK3Nob3VsZEJlKGBj
b25zdCB4ID0ge2E6ICJ0ZXN0In07IHhbImEiXSA/Pz0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUo
YGNvbnN0IHggPSB7YTogInRlc3QifTsgeFsiYSJdID8/PSA0MjsgeFsiYSJdYCwgInRlc3QiKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHt9fTsgeFsiYSJdID8/PSA0MmAsIE9iamVjdCk7Citz
aG91bGRCZShgY29uc3QgeCA9IHthOiB7fX07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIE9iamVj
dCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHhbImEiXSA/Pz0gNDJgLCBBcnJheSk7
CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHhbImEiXSA/Pz0gNDI7IHhbImEiXWAsIEFy
cmF5KTsKKworc2hvdWxkQmUoYGxldCB4ID0gW107IHhbMF0gPz89IDQyYCwgNDIpOworc2hvdWxk
QmUoYGxldCB4ID0gW107IHhbMF0gPz89IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4
ID0gW3VuZGVmaW5lZF07IHhbMF0gPz89IG51bGxgLCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IFt1bmRlZmluZWRdOyB4WzBdID8/PSBudWxsOyB4WzBdYCwgbnVsbCk7CitzaG91bGRCZShgbGV0
IHggPSBbbnVsbF07IHhbMF0gPz89IHVuZGVmaW5lZGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShg
bGV0IHggPSBbbnVsbF07IHhbMF0gPz89IHVuZGVmaW5lZDsgeFswXWAsIHVuZGVmaW5lZCk7Citz
aG91bGRCZShgbGV0IHggPSBbdW5kZWZpbmVkXTsgeFswXSA/Pz0gNDJgLCA0Mik7CitzaG91bGRC
ZShgbGV0IHggPSBbdW5kZWZpbmVkXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRC
ZShgbGV0IHggPSBbbnVsbF07IHhbMF0gPz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0g
W251bGxdOyB4WzBdID8/PSA0MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt0cnVl
XTsgeFswXSA/Pz0gNDJgLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt0cnVlXTsgeFswXSA/
Pz0gNDI7IHhbMF1gLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtmYWxzZV07IHhbMF0gPz89
IDQyYCwgZmFsc2UpOworc2hvdWxkQmUoYGxldCB4ID0gW2ZhbHNlXTsgeFswXSA/Pz0gNDI7IHhb
MF1gLCBmYWxzZSk7CitzaG91bGRCZShgbGV0IHggPSBbMF07IHhbMF0gPz89IDQyYCwgMCk7Citz
aG91bGRCZShgbGV0IHggPSBbMF07IHhbMF0gPz89IDQyOyB4WzBdYCwgMCk7CitzaG91bGRCZShg
bGV0IHggPSBbMV07IHhbMF0gPz89IDQyYCwgMSk7CitzaG91bGRCZShgbGV0IHggPSBbMV07IHhb
MF0gPz89IDQyOyB4WzBdYCwgMSk7CitzaG91bGRCZShgbGV0IHggPSBbIiJdOyB4WzBdID8/PSA0
MmAsICIiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFsiIl07IHhbMF0gPz89IDQyOyB4WzBdYCwgIiIp
Oworc2hvdWxkQmUoYGxldCB4ID0gWyJ0ZXN0Il07IHhbMF0gPz89IDQyYCwgInRlc3QiKTsKK3No
b3VsZEJlKGBsZXQgeCA9IFsidGVzdCJdOyB4WzBdID8/PSA0MjsgeFswXWAsICJ0ZXN0Iik7Citz
aG91bGRCZShgbGV0IHggPSBbe31dOyB4WzBdID8/PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShg
bGV0IHggPSBbe31dOyB4WzBdID8/PSA0MjsgeFswXWAsIE9iamVjdCk7CitzaG91bGRCZShgbGV0
IHggPSBbW11dOyB4WzBdID8/PSA0MmAsIEFycmF5KTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtbXV07
IHhbMF0gPz89IDQyOyB4WzBdYCwgQXJyYXkpOworCitzaG91bGRCZShgY29uc3QgeCA9IFtdOyB4
WzBdID8/PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW107IHhbMF0gPz89IDQyOyB4
WzBdYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbdW5kZWZpbmVkXTsgeFswXSA/Pz0gbnVs
bGAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbdW5kZWZpbmVkXTsgeFswXSA/Pz0gbnVs
bDsgeFswXWAsIG51bGwpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbbnVsbF07IHhbMF0gPz89IHVu
ZGVmaW5lZGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSA/
Pz0gdW5kZWZpbmVkOyB4WzBdYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW3Vu
ZGVmaW5lZF07IHhbMF0gPz89IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbdW5kZWZp
bmVkXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxs
XTsgeFswXSA/Pz0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSA/
Pz0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFt0cnVlXTsgeFswXSA/Pz0g
NDJgLCB0cnVlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW3RydWVdOyB4WzBdID8/PSA0MjsgeFsw
XWAsIHRydWUpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbZmFsc2VdOyB4WzBdID8/PSA0MmAsIGZh
bHNlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW2ZhbHNlXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCBm
YWxzZSk7CitzaG91bGRCZShgY29uc3QgeCA9IFswXTsgeFswXSA/Pz0gNDJgLCAwKTsKK3Nob3Vs
ZEJlKGBjb25zdCB4ID0gWzBdOyB4WzBdID8/PSA0MjsgeFswXWAsIDApOworc2hvdWxkQmUoYGNv
bnN0IHggPSBbMV07IHhbMF0gPz89IDQyYCwgMSk7CitzaG91bGRCZShgY29uc3QgeCA9IFsxXTsg
eFswXSA/Pz0gNDI7IHhbMF1gLCAxKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gWyIiXTsgeFswXSA/
Pz0gNDJgLCAiIik7CitzaG91bGRCZShgY29uc3QgeCA9IFsiIl07IHhbMF0gPz89IDQyOyB4WzBd
YCwgIiIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbInRlc3QiXTsgeFswXSA/Pz0gNDJgLCAidGVz
dCIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbInRlc3QiXTsgeFswXSA/Pz0gNDI7IHhbMF1gLCAi
dGVzdCIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbe31dOyB4WzBdID8/PSA0MmAsIE9iamVjdCk7
CitzaG91bGRCZShgY29uc3QgeCA9IFt7fV07IHhbMF0gPz89IDQyOyB4WzBdYCwgT2JqZWN0KTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0gW1tdXTsgeFswXSA/Pz0gNDJgLCBBcnJheSk7CitzaG91bGRC
ZShgY29uc3QgeCA9IFtbXV07IHhbMF0gPz89IDQyOyB4WzBdYCwgQXJyYXkpOworCitzaG91bGRC
ZShgbGV0IHggPSB0cnVlLCB5ID0gMSwgeiA9IDI7IHggPz89IHkgKyB6YCwgdHJ1ZSk7CitzaG91
bGRCZShgbGV0IHggPSB0cnVlLCB5ID0gMSwgeiA9IDI7IHggPz89IHkgPSB6YCwgdHJ1ZSk7Citz
aG91bGRCZShgbGV0IHggPSB0cnVlLCB5ID0gMSwgeiA9IDI7IHggPz89IHkgJiYgemAsIHRydWUp
Oworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZSwgeSA9IDEsIHogPSAyOyB4ID8/PSB5ID8/IHpgLCB0
cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHRydWUsIHkgPSAxLCB6ID0gMjsgeCA/Pz0geSB8fCB6
YCwgdHJ1ZSk7CitzaG91bGRCZShgbGV0IHggPSB0cnVlLCB5ID0gMSwgeiA9IDI7IHggPz89IHkg
JiY9IHpgLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHRydWUsIHkgPSAxLCB6ID0gMjsgeCA/
Pz0geSA/Pz0gemAsIHRydWUpOworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZSwgeSA9IDEsIHogPSAy
OyB4ID8/PSB5IHx8PSB6YCwgdHJ1ZSk7CisKK3Nob3VsZEJlKGBsZXQgeCA9IG51bGwsIHkgPSAx
LCB6ID0gMjsgeCA/Pz0geSArIHpgLCAzKTsKK3Nob3VsZEJlKGBsZXQgeCA9IG51bGwsIHkgPSAx
LCB6ID0gMjsgeCA/Pz0geSA9IHpgLCAyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IG51bGwsIHkgPSAx
LCB6ID0gMjsgeCA/Pz0geSAmJiB6YCwgMik7CitzaG91bGRCZShgbGV0IHggPSBudWxsLCB5ID0g
MSwgeiA9IDI7IHggPz89IHkgPz8gemAsIDEpOworc2hvdWxkQmUoYGxldCB4ID0gbnVsbCwgeSA9
IDEsIHogPSAyOyB4ID8/PSB5IHx8IHpgLCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IG51bGwsIHkg
PSAxLCB6ID0gMjsgeCA/Pz0geSAmJj0gemAsIDIpOworc2hvdWxkQmUoYGxldCB4ID0gbnVsbCwg
eSA9IDEsIHogPSAyOyB4ID8/PSB5ID8/PSB6YCwgMSk7CitzaG91bGRCZShgbGV0IHggPSBudWxs
LCB5ID0gMSwgeiA9IDI7IHggPz89IHkgfHw9IHpgLCAxKTsKKworc2hvdWxkQmUoYAorbGV0IGxv
ZyA9IFtdOworCitsZXQgYSA9IHRydWU7CitsZXQgeCA9IHsKKyAgICBnZXQgYSgpIHsKKyAgICAg
ICAgbG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1cm4gYTsKKyAgICB9LAorICAgIHNldCBh
KHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICBhID0gdjsKKyAgICB9LAor
fTsKKworeC5hID8/PSA0MjsKK3guYSA/Pz0gNDI7Cit4LmEgPz89IDQyOworCitsb2cuam9pbigi
ICIpICsgIiAiICsgYWAsICJnZXQgZ2V0IGdldCB0cnVlIik7CisKK3Nob3VsZEJlKGAKK2xldCBs
b2cgPSBbXTsKKworbGV0IGEgPSBmYWxzZTsKK2xldCB4ID0geworICAgIGdldCBhKCkgeworICAg
ICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAgc2V0
IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAgIH0s
Cit9OworCit4LmEgPz89IDQyOworeC5hID8/PSA0MjsKK3guYSA/Pz0gNDI7CisKK2xvZy5qb2lu
KCIgIikgKyAiICIgKyBhYCwgImdldCBnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGAKK2xl
dCBsb2cgPSBbXTsKKworbGV0IGEgPSB1bmRlZmluZWQ7CitsZXQgeCA9IHsKKyAgICBnZXQgYSgp
IHsKKyAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1cm4gYTsKKyAgICB9LAor
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICBhID0gdjsK
KyAgICB9LAorfTsKKworeC5hID8/PSA0MjsKK3guYSA/Pz0gNDI7Cit4LmEgPz89IDQyOworCits
b2cuam9pbigiICIpICsgIiAiICsgYWAsICJnZXQgc2V0IGdldCBnZXQgNDIiKTsKKworc2hvdWxk
QmUoYAorbGV0IGxvZyA9IFtdOworCitsZXQgYSA9IHRydWU7CitsZXQgeCA9IHsKKyAgICBnZXQg
YSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1cm4gYTsKKyAgICB9
LAorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICBhID0g
djsKKyAgICB9LAorfTsKKworeFsiYSJdID8/PSA0MjsKK3hbImEiXSA/Pz0gNDI7Cit4WyJhIl0g
Pz89IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsgYWAsICJnZXQgZ2V0IGdldCB0cnVlIik7
CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBbXTsKKworbGV0IGEgPSBmYWxzZTsKK2xldCB4ID0g
eworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVy
biBhOworICAgIH0sCisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0Iik7Cisg
ICAgICAgIGEgPSB2OworICAgIH0sCit9OworCit4WyJhIl0gPz89IDQyOworeFsiYSJdID8/PSA0
MjsKK3hbImEiXSA/Pz0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyBhYCwgImdldCBnZXQg
Z2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBbXTsKKworbGV0IGEgPSB1bmRl
ZmluZWQ7CitsZXQgeCA9IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldCIp
OworICAgICAgICByZXR1cm4gYTsKKyAgICB9LAorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9n
LnB1c2goInNldCIpOworICAgICAgICBhID0gdjsKKyAgICB9LAorfTsKKworeFsiYSJdID8/PSA0
MjsKK3hbImEiXSA/Pz0gNDI7Cit4WyJhIl0gPz89IDQyOworCitsb2cuam9pbigiICIpICsgIiAi
ICsgYWAsICJnZXQgc2V0IGdldCBnZXQgNDIiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtd
OworCitjbGFzcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0
LXBhcmVudCIpOworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEodikg
eworICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hID8/PSB2
OworICAgIH0KK30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsK
KyAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXIuYTsK
KyAgICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7Cisg
ICAgICAgIHN1cGVyLmEgPz89IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsKK3gu
X2EgPSB0cnVlOworeC5hID0gNDI7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworCitsb2cuam9pbigi
ICIpICsgIiAiICsgeC5fYWAsICJzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBh
cmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7CisKK3Nob3VsZEJlKGAKK2xldCBsb2cg
PSBbXTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2go
ImdldC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgfQorICAgIHNldCBh
KHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgdGhpcy5fYSA/
Pz0gdjsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgZ2V0IGEo
KSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgcmV0dXJuIHN1cGVy
LmE7CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIp
OworICAgICAgICBzdXBlci5hID8/PSB2OworICAgIH0KK30KKworbGV0IHggPSBuZXcgQ2hpbGQ7
Cit4Ll9hID0gZmFsc2U7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xvZy5q
b2luKCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBn
ZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGAKK2xl
dCBsb2cgPSBbXTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9n
LnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgfQorICAg
IHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgdGhp
cy5fYSA/Pz0gdjsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAg
Z2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgcmV0dXJu
IHN1cGVyLmE7CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1j
aGlsZCIpOworICAgICAgICBzdXBlci5hID8/PSB2OworICAgIH0KK30KKworbGV0IHggPSBuZXcg
Q2hpbGQ7Cit4Ll9hID0gdW5kZWZpbmVkOworeC5hID0gNDI7Cit4LmEgPSA0MjsKK3guYSA9IDQy
OworCitsb2cuam9pbigiICIpICsgIiAiICsgeC5fYWAsICJzZXQtY2hpbGQgZ2V0LXBhcmVudCBz
ZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7
CisKK3Nob3VsZEJlKGAKK2xldCBsb2cgPSBbXTsKKworY2xhc3MgUGFyZW50IHsKKyAgICBnZXQg
YSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgcmV0dXJuIHRo
aXMuX2E7CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldC1wYXJl
bnQiKTsKKyAgICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICB9Cit9CitjbGFzcyBDaGlsZCBleHRl
bmRzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQi
KTsKKyAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgfQorICAgIHNldCBhKHYpIHsKKyAg
ICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICBzdXBlclsiYSJdID8/PSB2Owor
ICAgIH0KK30KKworbGV0IHggPSBuZXcgQ2hpbGQ7Cit4Ll9hID0gdHJ1ZTsKK3guYSA9IDQyOwor
eC5hID0gNDI7Cit4LmEgPSA0MjsKKworbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2FgLCAic2V0
LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJl
bnQgdHJ1ZSIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2NsYXNzIFBhcmVudCB7
CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAg
IHJldHVybiB0aGlzLl9hOworICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNo
KCJzZXQtcGFyZW50Iik7CisgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgfQorfQorY2xhc3Mg
Q2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgi
Z2V0LWNoaWxkIik7CisgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgIH0KKyAgICBzZXQg
YSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgc3VwZXJbImEi
XSA/Pz0gdjsKKyAgICB9Cit9CisKK2xldCB4ID0gbmV3IENoaWxkOworeC5fYSA9IGZhbHNlOwor
eC5hID0gNDI7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsg
eC5fYWAsICJzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hp
bGQgZ2V0LXBhcmVudCBmYWxzZSIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2Ns
YXNzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50
Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAg
ICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAg
fQorfQorY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAg
ICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAg
IH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAg
ICAgc3VwZXJbImEiXSA/Pz0gdjsKKyAgICB9Cit9CisKK2xldCB4ID0gbmV3IENoaWxkOworeC5f
YSA9IHVuZGVmaW5lZDsKK3guYSA9IDQyOworeC5hID0gNDI7Cit4LmEgPSA0MjsKKworbG9nLmpv
aW4oIiAiKSArICIgIiArIHguX2FgLCAic2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBz
ZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCitzaG91bGRC
ZShgCitsZXQgeCA9IHt9OworT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgIHZh
bHVlOiB0cnVlLAorICAgIHdyaXRhYmxlOiBmYWxzZSwKK30pOworeC5hID8/PSA0MmAsIHRydWUp
OworCitzaG91bGRCZShgCitsZXQgeCA9IHt9OworT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJh
IiwgeworICAgIHZhbHVlOiBudWxsLAorICAgIHdyaXRhYmxlOiBmYWxzZSwKK30pOworeC5hID8/
PSA0MmAsIDQyKTsKKworc2hvdWxkQmUoYAorInVzZSBzdHJpY3QiOworbGV0IHggPSB7fTsKK09i
amVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICB2YWx1ZTogdHJ1ZSwKKyAgICB3cml0
YWJsZTogZmFsc2UsCit9KTsKK3guYSA/Pz0gNDJgLCB0cnVlKTsKKworc2hvdWxkVGhyb3coYAor
InVzZSBzdHJpY3QiOworbGV0IHggPSB7fTsKK09iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIs
IHsKKyAgICB2YWx1ZTogbnVsbCwKKyAgICB3cml0YWJsZTogZmFsc2UsCit9KTsKK3guYSA/Pz0g
NDJgLCBUeXBlRXJyb3IpOworCitzaG91bGRCZShgCitsZXQgeCA9IHRydWU7CisoZnVuY3Rpb24o
KSB7CisgICAgcmV0dXJuIHggPz89IDQyOworfSkoKTtgLCB0cnVlKTsKKworc2hvdWxkQmUoYAor
bGV0IHggPSBudWxsOworKGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB4ID8/PSA0MjsKK30pKCk7
YCwgNDIpOworCitzaG91bGRCZShgCitjb25zdCB4ID0gdHJ1ZTsKKyhmdW5jdGlvbigpIHsKKyAg
ICByZXR1cm4geCA/Pz0gNDI7Cit9KSgpO2AsIHRydWUpOworCitzaG91bGRUaHJvdyhgCitjb25z
dCB4ID0gbnVsbDsKKyhmdW5jdGlvbigpIHsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9KSgpO2As
IFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGAKK3ggPz89IDQyOworbGV0IHggPSBudWxsOwor
eGAsIFJlZmVyZW5jZUVycm9yKTsKKworc2hvdWxkQmUoYHVuZGVmaW5lZCA/Pz0gNDJgLCA0Mik7
CitzaG91bGRUaHJvdyhgbnVsbCA/Pz0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhg
dHJ1ZSA/Pz0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhgZmFsc2UgPz89IDQyYCwg
U3ludGF4RXJyb3IpOworc2hvdWxkVGhyb3coYDAgPz89IDQyYCwgU3ludGF4RXJyb3IpOworc2hv
dWxkVGhyb3coYDEgPz89IDQyYCwgU3ludGF4RXJyb3IpOworc2hvdWxkVGhyb3coYCIiID8/PSA0
MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGAidGVzdCIgPz89IDQyYCwgU3ludGF4RXJy
b3IpOworc2hvdWxkVGhyb3coYHt9ID8/PSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93
KGBbXSA/Pz0gNDJgLCBTeW50YXhFcnJvcik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9s
b2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3Itb3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2Fs
LWFzc2lnbm1lbnQtb3BlcmF0b3Itb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNkZWVhMmM5MjA2ZDllMGM3
Mzg4ZTJmZGYwZGNjMGE1NjFiYmQ3NgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1vci5qcwpAQCAtMCwwICsxLDYzNSBAQAorLy9A
IHJ1bkxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlvbiBzaG91bGRC
ZShzY3JpcHQsIGV4cGVjdGVkKSB7CisgICAgbGV0IGFjdHVhbCA9IGV2YWwoc2NyaXB0KTsKKyAg
ICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAiZnVuY3Rpb24iID8gIShhY3R1YWwgaW5zdGFuY2Vv
ZiBleHBlY3RlZCkgOiBhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoYGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpfSBidXQgZ290ICR7SlNPTi5z
dHJpbmdpZnkoYWN0dWFsKX1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coc2NyaXB0LCBl
cnJvclR5cGUpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3Jp
cHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAg
IGlmICghKGVycm9yIGluc3RhbmNlb2YgZXJyb3JUeXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKGBFeHBlY3RlZCAke2Vycm9yVHlwZS5uYW1lfSBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3Iu
bmFtZX0hYCk7Cit9CisKK3Nob3VsZEJlKGBsZXQgeDsgeCB8fD0gNDJgLCA0Mik7CitzaG91bGRC
ZShgbGV0IHg7IHggfHw9IDQyOyB4YCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gdW5kZWZpbmVk
OyB4IHx8PSBudWxsYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSB1bmRlZmluZWQ7IHggfHw9
IG51bGw7IHhgLCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9IG51bGw7IHggfHw9IHVuZGVmaW5l
ZGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSBudWxsOyB4IHx8PSB1bmRlZmluZWQ7
IHhgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGxldCB4ID0gdW5kZWZpbmVkOyB4IHx8PSA0MmAs
IDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHVuZGVmaW5lZDsgeCB8fD0gNDI7IHhgLCA0Mik7Citz
aG91bGRCZShgbGV0IHggPSBudWxsOyB4IHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IG51bGw7IHggfHw9IDQyOyB4YCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZTsgeCB8fD0g
NDJgLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHRydWU7IHggfHw9IDQyOyB4YCwgdHJ1ZSk7
CitzaG91bGRCZShgbGV0IHggPSBmYWxzZTsgeCB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0
IHggPSBmYWxzZTsgeCB8fD0gNDI7IHhgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSAwOyB4IHx8
PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IDA7IHggfHw9IDQyOyB4YCwgNDIpOworc2hv
dWxkQmUoYGxldCB4ID0gMTsgeCB8fD0gNDJgLCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IDE7IHgg
fHw9IDQyOyB4YCwgMSk7CitzaG91bGRCZShgbGV0IHggPSAiIjsgeCB8fD0gNDJgLCA0Mik7Citz
aG91bGRCZShgbGV0IHggPSAiIjsgeCB8fD0gNDI7IHhgLCA0Mik7CitzaG91bGRCZShgbGV0IHgg
PSAidGVzdCI7IHggfHw9IDQyYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBsZXQgeCA9ICJ0ZXN0Ijsg
eCB8fD0gNDI7IHhgLCAidGVzdCIpOworc2hvdWxkQmUoYGxldCB4ID0ge307IHggfHw9IDQyYCwg
T2JqZWN0KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHt9OyB4IHx8PSA0MjsgeGAsIE9iamVjdCk7Citz
aG91bGRCZShgbGV0IHggPSBbXTsgeCB8fD0gNDJgLCBBcnJheSk7CitzaG91bGRCZShgbGV0IHgg
PSBbXTsgeCB8fD0gNDI7IHhgLCBBcnJheSk7CisKK3Nob3VsZFRocm93KGBjb25zdCB4OyB4IHx8
PSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3VsZFRocm93KGBjb25zdCB4ID0gdW5kZWZpbmVkOyB4
IHx8PSBudWxsYCwgVHlwZUVycm9yKTsKK3Nob3VsZFRocm93KGBjb25zdCB4ID0gbnVsbDsgeCB8
fD0gdW5kZWZpbmVkYCwgVHlwZUVycm9yKTsKK3Nob3VsZFRocm93KGBjb25zdCB4ID0gdW5kZWZp
bmVkOyB4IHx8PSA0MmAsIFR5cGVFcnJvcik7CitzaG91bGRUaHJvdyhgY29uc3QgeCA9IG51bGw7
IHggfHw9IDQyYCwgVHlwZUVycm9yKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gdHJ1ZTsgeCB8fD0g
NDJgLCB0cnVlKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gdHJ1ZTsgeCB8fD0gNDI7IHhgLCB0cnVl
KTsKK3Nob3VsZFRocm93KGBjb25zdCB4ID0gZmFsc2U7IHggfHw9IDQyYCwgVHlwZUVycm9yKTsK
K3Nob3VsZFRocm93KGBjb25zdCB4ID0gMDsgeCB8fD0gNDJgLCBUeXBlRXJyb3IpOworc2hvdWxk
QmUoYGNvbnN0IHggPSAxOyB4IHx8PSA0MmAsIDEpOworc2hvdWxkQmUoYGNvbnN0IHggPSAxOyB4
IHx8PSA0MjsgeGAsIDEpOworc2hvdWxkVGhyb3coYGNvbnN0IHggPSAiIjsgeCB8fD0gNDJgLCBU
eXBlRXJyb3IpOworc2hvdWxkQmUoYGNvbnN0IHggPSAidGVzdCI7IHggfHw9IDQyYCwgInRlc3Qi
KTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gInRlc3QiOyB4IHx8PSA0MjsgeGAsICJ0ZXN0Iik7Citz
aG91bGRCZShgY29uc3QgeCA9IHt9OyB4IHx8PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShgY29u
c3QgeCA9IFtdOyB4IHx8PSA0MmAsIEFycmF5KTsKKworc2hvdWxkQmUoYGxldCB4ID0ge307IHgu
YSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7fTsgeC5hIHx8PSA0MjsgeC5hYCwg
NDIpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSB8fD0gbnVsbGAsIG51
bGwpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSB8fD0gbnVsbDsgeC5h
YCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHguYSB8fD0gdW5kZWZpbmVk
YCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBudWxsfTsgeC5hIHx8PSB1bmRl
ZmluZWQ7IHguYWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogdW5kZWZpbmVk
fTsgeC5hIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB1bmRlZmluZWR9OyB4
LmEgfHw9IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHguYSB8
fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHguYSB8fD0gNDI7IHgu
YWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB0cnVlfTsgeC5hIHx8PSA0MmAsIHRydWUp
Oworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHRydWV9OyB4LmEgfHw9IDQyOyB4LmFgLCB0cnVlKTsK
K3Nob3VsZEJlKGBsZXQgeCA9IHthOiBmYWxzZX07IHguYSB8fD0gNDJgLCA0Mik7CitzaG91bGRC
ZShgbGV0IHggPSB7YTogZmFsc2V9OyB4LmEgfHw9IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShg
bGV0IHggPSB7YTogMH07IHguYSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTog
MH07IHguYSB8fD0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAxfTsgeC5h
IHx8PSA0MmAsIDEpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDF9OyB4LmEgfHw9IDQyOyB4LmFg
LCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAiIn07IHguYSB8fD0gNDJgLCA0Mik7CitzaG91
bGRCZShgbGV0IHggPSB7YTogIiJ9OyB4LmEgfHw9IDQyOyB4LmFgLCA0Mik7CitzaG91bGRCZShg
bGV0IHggPSB7YTogInRlc3QifTsgeC5hIHx8PSA0MmAsICJ0ZXN0Iik7CitzaG91bGRCZShgbGV0
IHggPSB7YTogInRlc3QifTsgeC5hIHx8PSA0MjsgeC5hYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBs
ZXQgeCA9IHthOiB7fX07IHguYSB8fD0gNDJgLCBPYmplY3QpOworc2hvdWxkQmUoYGxldCB4ID0g
e2E6IHt9fTsgeC5hIHx8PSA0MjsgeC5hYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHth
OiBbXX07IHguYSB8fD0gNDJgLCBBcnJheSk7CitzaG91bGRCZShgbGV0IHggPSB7YTogW119OyB4
LmEgfHw9IDQyOyB4LmFgLCBBcnJheSk7CisKK3Nob3VsZEJlKGBjb25zdCB4ID0ge307IHguYSB8
fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHt9OyB4LmEgfHw9IDQyOyB4LmFgLCA0
Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4LmEgfHw9IG51bGxgLCBu
dWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHguYSB8fD0gbnVsbDsg
eC5hYCwgbnVsbCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeC5hIHx8PSB1bmRl
ZmluZWRgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHguYSB8
fD0gdW5kZWZpbmVkOyB4LmFgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTog
dW5kZWZpbmVkfTsgeC5hIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVu
ZGVmaW5lZH07IHguYSB8fD0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6
IG51bGx9OyB4LmEgfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07
IHguYSB8fD0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHRydWV9OyB4
LmEgfHw9IDQyYCwgdHJ1ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB0cnVlfTsgeC5hIHx8
PSA0MjsgeC5hYCwgdHJ1ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBmYWxzZX07IHguYSB8
fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBmYWxzZX07IHguYSB8fD0gNDI7
IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDB9OyB4LmEgfHw9IDQyYCwgNDIp
Oworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMH07IHguYSB8fD0gNDI7IHguYWAsIDQyKTsKK3No
b3VsZEJlKGBjb25zdCB4ID0ge2E6IDF9OyB4LmEgfHw9IDQyYCwgMSk7CitzaG91bGRCZShgY29u
c3QgeCA9IHthOiAxfTsgeC5hIHx8PSA0MjsgeC5hYCwgMSk7CitzaG91bGRCZShgY29uc3QgeCA9
IHthOiAiIn07IHguYSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiAiIn07
IHguYSB8fD0gNDI7IHguYWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6ICJ0ZXN0In07
IHguYSB8fD0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogInRlc3QifTsg
eC5hIHx8PSA0MjsgeC5hYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHt9fTsg
eC5hIHx8PSA0MmAsIE9iamVjdCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB7fX07IHguYSB8
fD0gNDI7IHguYWAsIE9iamVjdCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHguYSB8
fD0gNDJgLCBBcnJheSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHguYSB8fD0gNDI7
IHguYWAsIEFycmF5KTsKKworc2hvdWxkQmUoYGxldCB4ID0ge307IHhbImEiXSB8fD0gNDJgLCA0
Mik7CitzaG91bGRCZShgbGV0IHggPSB7fTsgeFsiYSJdIHx8PSA0MjsgeFsiYSJdYCwgNDIpOwor
c2hvdWxkQmUoYGxldCB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSB8fD0gbnVsbGAsIG51bGwp
Oworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSB8fD0gbnVsbDsgeFsi
YSJdYCwgbnVsbCk7CitzaG91bGRCZShgbGV0IHggPSB7YTogbnVsbH07IHhbImEiXSB8fD0gdW5k
ZWZpbmVkYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBudWxsfTsgeFsiYSJd
IHx8PSB1bmRlZmluZWQ7IHhbImEiXWAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShgbGV0IHggPSB7
YTogdW5kZWZpbmVkfTsgeFsiYSJdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHth
OiB1bmRlZmluZWR9OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgbGV0
IHggPSB7YTogbnVsbH07IHhbImEiXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7
YTogbnVsbH07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IHthOiB0cnVlfTsgeFsiYSJdIHx8PSA0MmAsIHRydWUpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6
IHRydWV9OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IHthOiBmYWxzZX07IHhbImEiXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTog
ZmFsc2V9OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7
YTogMH07IHhbImEiXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogMH07IHhb
ImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAxfTsgeFsi
YSJdIHx8PSA0MmAsIDEpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IDF9OyB4WyJhIl0gfHw9IDQy
OyB4WyJhIl1gLCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiAiIn07IHhbImEiXSB8fD0gNDJg
LCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogIiJ9OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1g
LCA0Mik7CitzaG91bGRCZShgbGV0IHggPSB7YTogInRlc3QifTsgeFsiYSJdIHx8PSA0MmAsICJ0
ZXN0Iik7CitzaG91bGRCZShgbGV0IHggPSB7YTogInRlc3QifTsgeFsiYSJdIHx8PSA0MjsgeFsi
YSJdYCwgInRlc3QiKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiB7fX07IHhbImEiXSB8fD0gNDJg
LCBPYmplY3QpOworc2hvdWxkQmUoYGxldCB4ID0ge2E6IHt9fTsgeFsiYSJdIHx8PSA0MjsgeFsi
YSJdYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBsZXQgeCA9IHthOiBbXX07IHhbImEiXSB8fD0gNDJg
LCBBcnJheSk7CitzaG91bGRCZShgbGV0IHggPSB7YTogW119OyB4WyJhIl0gfHw9IDQyOyB4WyJh
Il1gLCBBcnJheSk7CisKK3Nob3VsZEJlKGBjb25zdCB4ID0ge307IHhbImEiXSB8fD0gNDJgLCA0
Mik7CitzaG91bGRCZShgY29uc3QgeCA9IHt9OyB4WyJhIl0gfHw9IDQyOyB4WyJhIl1gLCA0Mik7
CitzaG91bGRCZShgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OyB4WyJhIl0gfHw9IG51bGxgLCBu
dWxsKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSB8fD0gbnVs
bDsgeFsiYSJdYCwgbnVsbCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBudWxsfTsgeFsiYSJd
IHx8PSB1bmRlZmluZWRgLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSB7YTogbnVs
bH07IHhbImEiXSB8fD0gdW5kZWZpbmVkOyB4WyJhIl1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUo
YGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsgeFsiYSJdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJl
KGBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IG51bGx9OyB4WyJhIl0gfHw9IDQyYCwgNDIpOworc2hv
dWxkQmUoYGNvbnN0IHggPSB7YTogbnVsbH07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHRydWV9OyB4WyJhIl0gfHw9IDQyYCwgdHJ1ZSk7Citz
aG91bGRCZShgY29uc3QgeCA9IHthOiB0cnVlfTsgeFsiYSJdIHx8PSA0MjsgeFsiYSJdYCwgdHJ1
ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBmYWxzZX07IHhbImEiXSB8fD0gNDJgLCA0Mik7
CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBmYWxzZX07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAs
IDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDB9OyB4WyJhIl0gfHw9IDQyYCwgNDIpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSB7YTogMH07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IDF9OyB4WyJhIl0gfHw9IDQyYCwgMSk7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiAxfTsgeFsiYSJdIHx8PSA0MjsgeFsiYSJdYCwgMSk7CitzaG91bGRC
ZShgY29uc3QgeCA9IHthOiAiIn07IHhbImEiXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29u
c3QgeCA9IHthOiAiIn07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIDQyKTsKK3Nob3VsZEJlKGBj
b25zdCB4ID0ge2E6ICJ0ZXN0In07IHhbImEiXSB8fD0gNDJgLCAidGVzdCIpOworc2hvdWxkQmUo
YGNvbnN0IHggPSB7YTogInRlc3QifTsgeFsiYSJdIHx8PSA0MjsgeFsiYSJdYCwgInRlc3QiKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0ge2E6IHt9fTsgeFsiYSJdIHx8PSA0MmAsIE9iamVjdCk7Citz
aG91bGRCZShgY29uc3QgeCA9IHthOiB7fX07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIE9iamVj
dCk7CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHhbImEiXSB8fD0gNDJgLCBBcnJheSk7
CitzaG91bGRCZShgY29uc3QgeCA9IHthOiBbXX07IHhbImEiXSB8fD0gNDI7IHhbImEiXWAsIEFy
cmF5KTsKKworc2hvdWxkQmUoYGxldCB4ID0gW107IHhbMF0gfHw9IDQyYCwgNDIpOworc2hvdWxk
QmUoYGxldCB4ID0gW107IHhbMF0gfHw9IDQyOyB4WzBdYCwgNDIpOworc2hvdWxkQmUoYGxldCB4
ID0gW3VuZGVmaW5lZF07IHhbMF0gfHw9IG51bGxgLCBudWxsKTsKK3Nob3VsZEJlKGBsZXQgeCA9
IFt1bmRlZmluZWRdOyB4WzBdIHx8PSBudWxsOyB4WzBdYCwgbnVsbCk7CitzaG91bGRCZShgbGV0
IHggPSBbbnVsbF07IHhbMF0gfHw9IHVuZGVmaW5lZGAsIHVuZGVmaW5lZCk7CitzaG91bGRCZShg
bGV0IHggPSBbbnVsbF07IHhbMF0gfHw9IHVuZGVmaW5lZDsgeFswXWAsIHVuZGVmaW5lZCk7Citz
aG91bGRCZShgbGV0IHggPSBbdW5kZWZpbmVkXTsgeFswXSB8fD0gNDJgLCA0Mik7CitzaG91bGRC
ZShgbGV0IHggPSBbdW5kZWZpbmVkXTsgeFswXSB8fD0gNDI7IHhbMF1gLCA0Mik7CitzaG91bGRC
ZShgbGV0IHggPSBbbnVsbF07IHhbMF0gfHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0g
W251bGxdOyB4WzBdIHx8PSA0MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt0cnVl
XTsgeFswXSB8fD0gNDJgLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFt0cnVlXTsgeFswXSB8
fD0gNDI7IHhbMF1gLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFtmYWxzZV07IHhbMF0gfHw9
IDQyYCwgNDIpOworc2hvdWxkQmUoYGxldCB4ID0gW2ZhbHNlXTsgeFswXSB8fD0gNDI7IHhbMF1g
LCA0Mik7CitzaG91bGRCZShgbGV0IHggPSBbMF07IHhbMF0gfHw9IDQyYCwgNDIpOworc2hvdWxk
QmUoYGxldCB4ID0gWzBdOyB4WzBdIHx8PSA0MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBsZXQg
eCA9IFsxXTsgeFswXSB8fD0gNDJgLCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFsxXTsgeFswXSB8
fD0gNDI7IHhbMF1gLCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IFsiIl07IHhbMF0gfHw9IDQyYCwg
NDIpOworc2hvdWxkQmUoYGxldCB4ID0gWyIiXTsgeFswXSB8fD0gNDI7IHhbMF1gLCA0Mik7Citz
aG91bGRCZShgbGV0IHggPSBbInRlc3QiXTsgeFswXSB8fD0gNDJgLCAidGVzdCIpOworc2hvdWxk
QmUoYGxldCB4ID0gWyJ0ZXN0Il07IHhbMF0gfHw9IDQyOyB4WzBdYCwgInRlc3QiKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IFt7fV07IHhbMF0gfHw9IDQyYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBsZXQg
eCA9IFt7fV07IHhbMF0gfHw9IDQyOyB4WzBdYCwgT2JqZWN0KTsKK3Nob3VsZEJlKGBsZXQgeCA9
IFtbXV07IHhbMF0gfHw9IDQyYCwgQXJyYXkpOworc2hvdWxkQmUoYGxldCB4ID0gW1tdXTsgeFsw
XSB8fD0gNDI7IHhbMF1gLCBBcnJheSk7CisKK3Nob3VsZEJlKGBjb25zdCB4ID0gW107IHhbMF0g
fHw9IDQyYCwgNDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbXTsgeFswXSB8fD0gNDI7IHhbMF1g
LCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFt1bmRlZmluZWRdOyB4WzBdIHx8PSBudWxsYCwg
bnVsbCk7CitzaG91bGRCZShgY29uc3QgeCA9IFt1bmRlZmluZWRdOyB4WzBdIHx8PSBudWxsOyB4
WzBdYCwgbnVsbCk7CitzaG91bGRCZShgY29uc3QgeCA9IFtudWxsXTsgeFswXSB8fD0gdW5kZWZp
bmVkYCwgdW5kZWZpbmVkKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW251bGxdOyB4WzBdIHx8PSB1
bmRlZmluZWQ7IHhbMF1gLCB1bmRlZmluZWQpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbdW5kZWZp
bmVkXTsgeFswXSB8fD0gNDJgLCA0Mik7CitzaG91bGRCZShgY29uc3QgeCA9IFt1bmRlZmluZWRd
OyB4WzBdIHx8PSA0MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW251bGxdOyB4
WzBdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW251bGxdOyB4WzBdIHx8PSA0
MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0gW3RydWVdOyB4WzBdIHx8PSA0MmAs
IHRydWUpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbdHJ1ZV07IHhbMF0gfHw9IDQyOyB4WzBdYCwg
dHJ1ZSk7CitzaG91bGRCZShgY29uc3QgeCA9IFtmYWxzZV07IHhbMF0gfHw9IDQyYCwgNDIpOwor
c2hvdWxkQmUoYGNvbnN0IHggPSBbZmFsc2VdOyB4WzBdIHx8PSA0MjsgeFswXWAsIDQyKTsKK3No
b3VsZEJlKGBjb25zdCB4ID0gWzBdOyB4WzBdIHx8PSA0MmAsIDQyKTsKK3Nob3VsZEJlKGBjb25z
dCB4ID0gWzBdOyB4WzBdIHx8PSA0MjsgeFswXWAsIDQyKTsKK3Nob3VsZEJlKGBjb25zdCB4ID0g
WzFdOyB4WzBdIHx8PSA0MmAsIDEpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbMV07IHhbMF0gfHw9
IDQyOyB4WzBdYCwgMSk7CitzaG91bGRCZShgY29uc3QgeCA9IFsiIl07IHhbMF0gfHw9IDQyYCwg
NDIpOworc2hvdWxkQmUoYGNvbnN0IHggPSBbIiJdOyB4WzBdIHx8PSA0MjsgeFswXWAsIDQyKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0gWyJ0ZXN0Il07IHhbMF0gfHw9IDQyYCwgInRlc3QiKTsKK3No
b3VsZEJlKGBjb25zdCB4ID0gWyJ0ZXN0Il07IHhbMF0gfHw9IDQyOyB4WzBdYCwgInRlc3QiKTsK
K3Nob3VsZEJlKGBjb25zdCB4ID0gW3t9XTsgeFswXSB8fD0gNDJgLCBPYmplY3QpOworc2hvdWxk
QmUoYGNvbnN0IHggPSBbe31dOyB4WzBdIHx8PSA0MjsgeFswXWAsIE9iamVjdCk7CitzaG91bGRC
ZShgY29uc3QgeCA9IFtbXV07IHhbMF0gfHw9IDQyYCwgQXJyYXkpOworc2hvdWxkQmUoYGNvbnN0
IHggPSBbW11dOyB4WzBdIHx8PSA0MjsgeFswXWAsIEFycmF5KTsKKworc2hvdWxkQmUoYGxldCB4
ID0gdHJ1ZSwgeSA9IDEsIHogPSAyOyB4IHx8PSB5ICsgemAsIHRydWUpOworc2hvdWxkQmUoYGxl
dCB4ID0gdHJ1ZSwgeSA9IDEsIHogPSAyOyB4IHx8PSB5ID0gemAsIHRydWUpOworc2hvdWxkQmUo
YGxldCB4ID0gdHJ1ZSwgeSA9IDEsIHogPSAyOyB4IHx8PSB5ICYmIHpgLCB0cnVlKTsKK3Nob3Vs
ZEJlKGBsZXQgeCA9IHRydWUsIHkgPSAxLCB6ID0gMjsgeCB8fD0geSA/PyB6YCwgdHJ1ZSk7Citz
aG91bGRCZShgbGV0IHggPSB0cnVlLCB5ID0gMSwgeiA9IDI7IHggfHw9IHkgfHwgemAsIHRydWUp
Oworc2hvdWxkQmUoYGxldCB4ID0gdHJ1ZSwgeSA9IDEsIHogPSAyOyB4IHx8PSB5ICYmPSB6YCwg
dHJ1ZSk7CitzaG91bGRCZShgbGV0IHggPSB0cnVlLCB5ID0gMSwgeiA9IDI7IHggfHw9IHkgPz89
IHpgLCB0cnVlKTsKK3Nob3VsZEJlKGBsZXQgeCA9IHRydWUsIHkgPSAxLCB6ID0gMjsgeCB8fD0g
eSB8fD0gemAsIHRydWUpOworCitzaG91bGRCZShgbGV0IHggPSBmYWxzZSwgeSA9IDEsIHogPSAy
OyB4IHx8PSB5ICsgemAsIDMpOworc2hvdWxkQmUoYGxldCB4ID0gZmFsc2UsIHkgPSAxLCB6ID0g
MjsgeCB8fD0geSA9IHpgLCAyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IGZhbHNlLCB5ID0gMSwgeiA9
IDI7IHggfHw9IHkgJiYgemAsIDIpOworc2hvdWxkQmUoYGxldCB4ID0gZmFsc2UsIHkgPSAxLCB6
ID0gMjsgeCB8fD0geSA/PyB6YCwgMSk7CitzaG91bGRCZShgbGV0IHggPSBmYWxzZSwgeSA9IDEs
IHogPSAyOyB4IHx8PSB5IHx8IHpgLCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IGZhbHNlLCB5ID0g
MSwgeiA9IDI7IHggfHw9IHkgJiY9IHpgLCAyKTsKK3Nob3VsZEJlKGBsZXQgeCA9IGZhbHNlLCB5
ID0gMSwgeiA9IDI7IHggfHw9IHkgPz89IHpgLCAxKTsKK3Nob3VsZEJlKGBsZXQgeCA9IGZhbHNl
LCB5ID0gMSwgeiA9IDI7IHggfHw9IHkgfHw9IHpgLCAxKTsKKworc2hvdWxkQmUoYAorbGV0IGxv
ZyA9IFtdOworCitsZXQgYSA9IHRydWU7CitsZXQgeCA9IHsKKyAgICBnZXQgYSgpIHsKKyAgICAg
ICAgbG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1cm4gYTsKKyAgICB9LAorICAgIHNldCBh
KHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICBhID0gdjsKKyAgICB9LAor
fTsKKworeC5hIHx8PSA0MjsKK3guYSB8fD0gNDI7Cit4LmEgfHw9IDQyOworCitsb2cuam9pbigi
ICIpICsgIiAiICsgYWAsICJnZXQgZ2V0IGdldCB0cnVlIik7CisKK3Nob3VsZEJlKGAKK2xldCBs
b2cgPSBbXTsKKworbGV0IGEgPSBmYWxzZTsKK2xldCB4ID0geworICAgIGdldCBhKCkgeworICAg
ICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAgc2V0
IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAgIH0s
Cit9OworCit4LmEgfHw9IDQyOworeC5hIHx8PSA0MjsKK3guYSB8fD0gNDI7CisKK2xvZy5qb2lu
KCIgIikgKyAiICIgKyBhYCwgImdldCBzZXQgZ2V0IGdldCA0MiIpOworCitzaG91bGRCZShgCits
ZXQgbG9nID0gW107CisKK2xldCBhID0gdW5kZWZpbmVkOworbGV0IHggPSB7CisgICAgZ2V0IGEo
KSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgcmV0dXJuIGE7CisgICAgfSwK
KyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgYSA9IHY7
CisgICAgfSwKK307CisKK3guYSB8fD0gNDI7Cit4LmEgfHw9IDQyOworeC5hIHx8PSA0MjsKKwor
bG9nLmpvaW4oIiAiKSArICIgIiArIGFgLCAiZ2V0IHNldCBnZXQgZ2V0IDQyIik7CisKK3Nob3Vs
ZEJlKGAKK2xldCBsb2cgPSBbXTsKKworbGV0IGEgPSB0cnVlOworbGV0IHggPSB7CisgICAgZ2V0
IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgcmV0dXJuIGE7CisgICAg
fSwKKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgYSA9
IHY7CisgICAgfSwKK307CisKK3hbImEiXSB8fD0gNDI7Cit4WyJhIl0gfHw9IDQyOworeFsiYSJd
IHx8PSA0MjsKKworbG9nLmpvaW4oIiAiKSArICIgIiArIGFgLCAiZ2V0IGdldCBnZXQgdHJ1ZSIp
OworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2xldCBhID0gZmFsc2U7CitsZXQgeCA9
IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICByZXR1
cm4gYTsKKyAgICB9LAorICAgIHNldCBhKHYpIHsKKyAgICAgICAgbG9nLnB1c2goInNldCIpOwor
ICAgICAgICBhID0gdjsKKyAgICB9LAorfTsKKworeFsiYSJdIHx8PSA0MjsKK3hbImEiXSB8fD0g
NDI7Cit4WyJhIl0gfHw9IDQyOworCitsb2cuam9pbigiICIpICsgIiAiICsgYWAsICJnZXQgc2V0
IGdldCBnZXQgNDIiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitsZXQgYSA9IHVu
ZGVmaW5lZDsKK2xldCB4ID0geworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0
Iik7CisgICAgICAgIHJldHVybiBhOworICAgIH0sCisgICAgc2V0IGEodikgeworICAgICAgICBs
b2cucHVzaCgic2V0Iik7CisgICAgICAgIGEgPSB2OworICAgIH0sCit9OworCit4WyJhIl0gfHw9
IDQyOworeFsiYSJdIHx8PSA0MjsKK3hbImEiXSB8fD0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAi
ICIgKyBhYCwgImdldCBzZXQgZ2V0IGdldCA0MiIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0g
W107CisKK2NsYXNzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJn
ZXQtcGFyZW50Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgIH0KKyAgICBzZXQgYSh2
KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgIHRoaXMuX2EgfHw9
IHY7CisgICAgfQorfQorY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgIGdldCBhKCkg
eworICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgIHJldHVybiBzdXBlci5h
OworICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsK
KyAgICAgICAgc3VwZXIuYSB8fD0gdjsKKyAgICB9Cit9CisKK2xldCB4ID0gbmV3IENoaWxkOwor
eC5fYSA9IHRydWU7Cit4LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xvZy5qb2lu
KCIgIikgKyAiICIgKyB4Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQt
cGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUoYAorbGV0IGxv
ZyA9IFtdOworCitjbGFzcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVz
aCgiZ2V0LXBhcmVudCIpOworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0
IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9h
IHx8PSB2OworICAgIH0KK30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQg
YSgpIHsKKyAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3Vw
ZXIuYTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxk
Iik7CisgICAgICAgIHN1cGVyLmEgfHw9IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGls
ZDsKK3guX2EgPSBmYWxzZTsKK3guYSA9IDQyOworeC5hID0gNDI7Cit4LmEgPSA0MjsKKworbG9n
LmpvaW4oIiAiKSArICIgIiArIHguX2FgLCAic2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVu
dCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCitzaG91
bGRCZShgCitsZXQgbG9nID0gW107CisKK2NsYXNzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7Cisg
ICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9hOwor
ICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7Cisg
ICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgfQorfQorY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJl
bnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAg
ICAgIHJldHVybiBzdXBlci5hOworICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5w
dXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgc3VwZXIuYSB8fD0gdjsKKyAgICB9Cit9CisKK2xl
dCB4ID0gbmV3IENoaWxkOworeC5fYSA9IHVuZGVmaW5lZDsKK3guYSA9IDQyOworeC5hID0gNDI7
Cit4LmEgPSA0MjsKKworbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2FgLCAic2V0LWNoaWxkIGdl
dC1wYXJlbnQgc2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBh
cmVudCA0MiIpOworCitzaG91bGRCZShgCitsZXQgbG9nID0gW107CisKK2NsYXNzIFBhcmVudCB7
CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAg
IHJldHVybiB0aGlzLl9hOworICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNo
KCJzZXQtcGFyZW50Iik7CisgICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgfQorfQorY2xhc3Mg
Q2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgi
Z2V0LWNoaWxkIik7CisgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgIH0KKyAgICBzZXQg
YSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgc3VwZXJbImEi
XSB8fD0gdjsKKyAgICB9Cit9CisKK2xldCB4ID0gbmV3IENoaWxkOworeC5fYSA9IHRydWU7Cit4
LmEgPSA0MjsKK3guYSA9IDQyOworeC5hID0gNDI7CisKK2xvZy5qb2luKCIgIikgKyAiICIgKyB4
Ll9hYCwgInNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGls
ZCBnZXQtcGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUoYAorbGV0IGxvZyA9IFtdOworCitjbGFz
cyBQYXJlbnQgeworICAgIGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIp
OworICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICB9CisgICAgc2V0IGEodikgeworICAgICAg
ICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgIH0K
K30KK2NsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICBnZXQgYSgpIHsKKyAgICAgICAg
bG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICB9
CisgICAgc2V0IGEodikgeworICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAg
IHN1cGVyWyJhIl0gfHw9IHY7CisgICAgfQorfQorCitsZXQgeCA9IG5ldyBDaGlsZDsKK3guX2Eg
PSBmYWxzZTsKK3guYSA9IDQyOworeC5hID0gNDI7Cit4LmEgPSA0MjsKKworbG9nLmpvaW4oIiAi
KSArICIgIiArIHguX2FgLCAic2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBzZXQtY2hp
bGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCitzaG91bGRCZShgCits
ZXQgbG9nID0gW107CisKK2NsYXNzIFBhcmVudCB7CisgICAgZ2V0IGEoKSB7CisgICAgICAgIGxv
Zy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgIH0KKyAg
ICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgIHRo
aXMuX2EgfHw9IHY7CisgICAgfQorfQorY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAg
IGdldCBhKCkgeworICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgIHJldHVy
biBzdXBlclsiYSJdOworICAgIH0KKyAgICBzZXQgYSh2KSB7CisgICAgICAgIGxvZy5wdXNoKCJz
ZXQtY2hpbGQiKTsKKyAgICAgICAgc3VwZXJbImEiXSB8fD0gdjsKKyAgICB9Cit9CisKK2xldCB4
ID0gbmV3IENoaWxkOworeC5fYSA9IHVuZGVmaW5lZDsKK3guYSA9IDQyOworeC5hID0gNDI7Cit4
LmEgPSA0MjsKKworbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2FgLCAic2V0LWNoaWxkIGdldC1w
YXJlbnQgc2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVu
dCA0MiIpOworCitzaG91bGRCZShgCitsZXQgeCA9IHt9OworT2JqZWN0LmRlZmluZVByb3BlcnR5
KHgsICJhIiwgeworICAgIHZhbHVlOiB0cnVlLAorICAgIHdyaXRhYmxlOiBmYWxzZSwKK30pOwor
eC5hIHx8PSA0MmAsIHRydWUpOworCitzaG91bGRCZShgCitsZXQgeCA9IHt9OworT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgIHZhbHVlOiBmYWxzZSwKKyAgICB3cml0YWJsZTog
ZmFsc2UsCit9KTsKK3guYSB8fD0gNDJgLCA0Mik7CisKK3Nob3VsZEJlKGAKKyJ1c2Ugc3RyaWN0
IjsKK2xldCB4ID0ge307CitPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgdmFs
dWU6IHRydWUsCisgICAgd3JpdGFibGU6IGZhbHNlLAorfSk7Cit4LmEgfHw9IDQyYCwgdHJ1ZSk7
CisKK3Nob3VsZFRocm93KGAKKyJ1c2Ugc3RyaWN0IjsKK2xldCB4ID0ge307CitPYmplY3QuZGVm
aW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgdmFsdWU6IGZhbHNlLAorICAgIHdyaXRhYmxlOiBm
YWxzZSwKK30pOworeC5hIHx8PSA0MmAsIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGAKK2xldCB4
ID0gdHJ1ZTsKKyhmdW5jdGlvbigpIHsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9KSgpO2AsIHRy
dWUpOworCitzaG91bGRCZShgCitsZXQgeCA9IGZhbHNlOworKGZ1bmN0aW9uKCkgeworICAgIHJl
dHVybiB4IHx8PSA0MjsKK30pKCk7YCwgNDIpOworCitzaG91bGRCZShgCitjb25zdCB4ID0gdHJ1
ZTsKKyhmdW5jdGlvbigpIHsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9KSgpO2AsIHRydWUpOwor
CitzaG91bGRUaHJvdyhgCitjb25zdCB4ID0gZmFsc2U7CisoZnVuY3Rpb24oKSB7CisgICAgcmV0
dXJuIHggfHw9IDQyOworfSkoKTtgLCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhgCit4ICYm
PSA0MjsKK2xldCB4ID0gZmFsc2U7Cit4YCwgUmVmZXJlbmNlRXJyb3IpOworCitzaG91bGRCZShg
dW5kZWZpbmVkIHx8PSA0MmAsIDQyKTsKK3Nob3VsZFRocm93KGBudWxsIHx8PSA0MmAsIFN5bnRh
eEVycm9yKTsKK3Nob3VsZFRocm93KGB0cnVlIHx8PSA0MmAsIFN5bnRheEVycm9yKTsKK3Nob3Vs
ZFRocm93KGBmYWxzZSB8fD0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhgMCB8fD0g
NDJgLCBTeW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhgMSB8fD0gNDJgLCBTeW50YXhFcnJvcik7
CitzaG91bGRUaHJvdyhgIiIgfHw9IDQyYCwgU3ludGF4RXJyb3IpOworc2hvdWxkVGhyb3coYCJ0
ZXN0IiB8fD0gNDJgLCBTeW50YXhFcnJvcik7CitzaG91bGRUaHJvdyhge30gfHw9IDQyYCwgU3lu
dGF4RXJyb3IpOworc2hvdWxkVGhyb3coYFtdIHx8PSA0MmAsIFN5bnRheEVycm9yKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395181</attachid>
            <date>2020-04-01 10:00:33 -0700</date>
            <delta_ts>2020-04-09 14:18:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200401110032.patch</filename>
            <type>text/plain</type>
            <size>112192</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGI5OTVjZTRjZTBlNjc4MTYwNjU5YTU0NjllMTc2
MzY0ZDdkNWJjNTYuLjRkMDk3NWM5YzM1YzA1YzU4ZDEzMGNjYzUzYjlkOWJjMGEwNjk2ZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTAxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBub3cgU3RhZ2UgMy4gSXQgaW50cm9kdWNlcwor
ICAgICAgICB0aHJlZSBuZXcgYXNzaWdubWVudCBvcGVyYXRvcnMgd2hpY2ggd2lsbCBvbmx5IHN0
b3JlIHRoZSByZXN1bHQgb2YgdGhlIHJocyBpbiB0aGUgbGhzIGlmIHRoZQorICAgICAgICBsaHMg
bWVldHMgdGhlIGdpdmVuIGNvbmRpdGlvbjoKKyAgICAgICAgIC0gYD8/PWAsIGZvciBpZiB0aGUg
bGhzIGlzIG51bGxpc2ggKGBudWxsYCBvciBgdW5kZWZpbmVkYCkKKyAgICAgICAgIC0gYHx8PWAs
IGZvciBpZiB0aGUgbGhzIGlzIGZhbHN5CisgICAgICAgICAtIGAmJj1gLCBmb3IgaWYgdGhlIGxo
cyBpcyB0cnV0aHkKKworICAgICAgICBUaGlzIHNob3J0IGNpcmN1aXRpbmcgY2FuIGJlIGJlbmVm
aWNpYWwgYXMgaXQgY2FuIGF2b2lkIGEgcmVkdW5kYW50IHN0b3JlIHdoZW4gdXNlZCBpbiB0aGUK
KyAgICAgICAgY29tbW9uIEphdmFTY3JpcHQgcHJvZ3JhbW1pbmcgcGF0dGVybiBvZiAiZGVmYXVs
dGluZyIgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgYGBganMKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZvbyh4KSB7CisgICAgICAgICAgICAgICAgeCA9IHggfHwgNDI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIGBgYAorCisgICAgICAgIElmIGB4YCBpcyBhIHRydXRoeSB2YWx1ZSwgaXQgd291bGQg
cmVzdWx0IGluIHRoZSByaHMgYHhgIGJlaW5nIHN0b3JlZCBiYWNrIGludG8gdGhlIGxocyBgeGAu
CisgICAgICAgIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gaGF2ZSBuZWdhdGl2ZSB1bmlu
dGVuZGVkIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBmb3IgYGlubmVySFRNTGAuCisKKyAgICAgICAg
TG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycywgaG93ZXZlciwgYXJlIGRlZmluZWQgc3VjaCB0
aGF0IHRoZXkgb25seSBzdG9yZSBpZiB0aGUgcmhzIGlzCisgICAgICAgIHRvIGFjdHVhbGx5IGJl
IG5lZWRlZC91c2VkLCBza2lwcGluZyB0aGUgcmVkdW5kYW50IHN0b3JlIGFuZCBzaW1wbHkgcmV0
dXJuaW5nIGxocyBvdGhlcndpc2UuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcmVhZG9ubHkg
cmVmZXJlbmNlcywgdGhpcyBtZWFucyB0aGF0IGFuIGVycm9yIGlzIG9ubHkgdGhyb3duIHdoZW4g
dGhlCisgICAgICAgIGFzc2lnbm1lbnQgb2NjdXJzLCBtZWFuaW5nIHRoYXQgaWYgdGhlIGxocyBh
bHJlYWR5IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uIGl0IHdpbGwgYmUgdXNlZAorICAgICAgICBh
bmQgcmV0dXJuZWQgd2l0aCBubyBlcnJvci4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6bGV4V2l0aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0QXNzaWduUmVzb2x2ZU5vZGU6OlNob3J0Q2lyY3VpdEFzc2lnblJlc29s
dmVOb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdEFzc2lnbkJyYWNrZXRO
b2RlOjpTaG9ydENpcmN1aXRBc3NpZ25CcmFja2V0Tm9kZSk6IEFkZGVkLgorICAgICAgICAoSlND
OjpTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlOjpTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlKTog
QWRkZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAg
IChKU0M6OmVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KTogQWRkZWQuCisgICAgICAgIChKU0M6
OlNob3J0Q2lyY3VpdEFzc2lnblJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0QXNzaWduRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKTogQWRk
ZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdEFzc2lnbkJyYWNrZXROb2RlOjplbWl0Qnl0
ZWNvZGUpOiBBZGRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAg
ICAgQWRkIGEgYHVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250
cm9sbGluZyB0aGlzIGZlYXR1cmUuCisKIDIwMjAtMDMtMzEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBJbnRyb2R1Y2UgVUNQVVN0cmljdEludDMy
IGZvciByZXN1bHQgdHlwZSBvZiBERkcgb3BlcmF0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDY0MGIyNDk3NTVl
MTBlY2RkOWE4M2I5ZTE0YjA5N2FiMzlmZDA5NGYuLjczZjQ5ZGMyNDIwZmY4MDhkNzkwNzY4N2Iz
YzhjYTNjMWQ1ZmUyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTI4NTYsNiArMjg1NiwxMDAgQEAgUmVnaXN0ZXJJ
RCogUmVhZE1vZGlmeVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvciwgUmUKICAgICByZXR1cm4gcmV0dXJuUmVzdWx0OwogfQogCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0QXNzaWduUmVzb2x2ZU5vZGUgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLy8gRklYTUU6IHNob3VsZCB0aGlz
IGJlIG1vdmVkIHRvIGJlIGEgbWV0aG9kIG9uIEJ5dGVjb2RlR2VuZXJhdG9yPworc3RhdGljIEFM
V0FZU19JTkxJTkUgdm9pZCBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiB2YWx1ZSwgT3BlcmF0b3Igb3BlciwgTGFiZWwm
IHNob3J0Q2lyY3VpdExhYmVsKQoreworICAgIHN3aXRjaCAob3BlcikgeworICAgIGNhc2UgT3Bl
cmF0b3I6OkNvYWxlc2NlRXE6CisgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElmRmFsc2UoZ2Vu
ZXJhdG9yLmVtaXRJc1VuZGVmaW5lZE9yTnVsbChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHZh
bHVlKSwgc2hvcnRDaXJjdWl0TGFiZWwpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgT3Bl
cmF0b3I6Ok9yRXE6CisgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElmVHJ1ZSh2YWx1ZSwgc2hv
cnRDaXJjdWl0TGFiZWwpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgT3BlcmF0b3I6OkFu
ZEVxOgorICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKHZhbHVlLCBzaG9ydENpcmN1
aXRMYWJlbCk7CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitSZWdp
c3RlcklEKiBTaG9ydENpcmN1aXRBc3NpZ25SZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBKU1RleHRQ
b3NpdGlvbiBuZXdEaXZvdCA9IGRpdm90U3RhcnQoKSArIG1faWRlbnQubGVuZ3RoKCk7CisKKyAg
ICBWYXJpYWJsZSB2YXIgPSBnZW5lcmF0b3IudmFyaWFibGUobV9pZGVudCk7CisKKyAgICBpZiAo
UmVmUHRyPFJlZ2lzdGVySUQ+IGxvY2FsID0gdmFyLmxvY2FsKCkpIHsKKyAgICAgICAgZ2VuZXJh
dG9yLmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5KHZhciwgbG9jYWwuZ2V0KCksIG51bGxwdHIpOwor
CisgICAgICAgIGlmICh2YXIuaXNSZWFkT25seSgpKSB7CisgICAgICAgICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gcmVzdWx0ID0gbG9jYWw7CisKKyAgICAgICAgICAgIFJlZjxMYWJlbD4gc2hvcnRD
aXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICAgICAgICAgIGVtaXRTaG9y
dENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgbG9jYWwuZ2V0KCksIG1fb3BlcmF0b3IsIHNo
b3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRSZWFk
T25seUV4Y2VwdGlvbklmTmVlZGVkKHZhcik7CisgICAgICAgICAgICByZXN1bHQgPSBnZW5lcmF0
b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworCisgICAg
ICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAg
ICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0
YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRz
dCwgcmVzdWx0LmdldCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChnZW5lcmF0b3IubGVm
dEhhbmRTaWRlTmVlZHNDb3B5KG1fcmlnaHRIYXNBc3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJl
KGdlbmVyYXRvcikpKSB7CisgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0ID0g
Z2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOworICAgICAgICAgICAgZ2VuZXJhdG9yLm1vdmUocmVz
dWx0LmdldCgpLCBsb2NhbC5nZXQoKSk7CisKKyAgICAgICAgICAgIFJlZjxMYWJlbD4gc2hvcnRD
aXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICAgICAgICAgIGVtaXRTaG9y
dENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBz
aG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRv
ci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisgICAgICAg
ICAgICBnZW5lcmF0b3IubW92ZShsb2NhbC5nZXQoKSwgcmVzdWx0LmdldCgpKTsKKworICAgICAg
ICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAg
ICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFy
dCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3Qs
IHJlc3VsdC5nZXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
cmVzdWx0ID0gbG9jYWw7CisKKyAgICAgICAgUmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9
IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgICAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVu
dChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFiZWwu
Z2V0KCkpOworCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0
aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJl
bChzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmls
ZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAgICBy
ZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgIH0KKworICAgIGdl
bmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8obmV3RGl2b3QsIGRpdm90U3RhcnQoKSwgbmV3RGl2
b3QpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2
ZVNjb3BlKG51bGxwdHIsIHZhcik7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXRHZXRGcm9tU2NvcGUoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBzY29w
ZS5nZXQoKSwgdmFyLCBUaHJvd0lmTm90Rm91bmQpOworICAgIGdlbmVyYXRvci5lbWl0VERaQ2hl
Y2tJZk5lY2Vzc2FyeSh2YXIsIHJlc3VsdC5nZXQoKSwgbnVsbHB0cik7CisKKyAgICBSZWY8TGFi
ZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgZW1pdFNo
b3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3Is
IHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0UmVhZE9ubHlF
eGNlcHRpb25JZk5lZWRlZCh2YXIpOworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUlu
VGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisgICAgcmVzdWx0ID0gZ2VuZXJh
dG9yLmVtaXRQdXRUb1Njb3BlKHNjb3BlLmdldCgpLCB2YXIsIHJlc3VsdC5nZXQoKSwgVGhyb3dJ
Zk5vdEZvdW5kLCBJbml0aWFsaXphdGlvbk1vZGU6Ok5vdEluaXRpYWxpemF0aW9uKTsKKworICAg
IGdlbmVyYXRvci5lbWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAgIGdlbmVy
YXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0LmdldCgpLCB2YXIsIGRpdm90U3RhcnQoKSwgZGl2
b3RFbmQoKSk7CisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsK
K30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2lnblJlc29sdmVOb2Rl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIHN0YXRpYyBJbml0aWFsaXph
dGlvbk1vZGUgaW5pdGlhbGl6YXRpb25Nb2RlRm9yQXNzaWdubWVudENvbnRleHQoQXNzaWdubWVu
dENvbnRleHQgYXNzaWdubWVudENvbnRleHQpCiB7CiAgICAgc3dpdGNoIChhc3NpZ25tZW50Q29u
dGV4dCkgewpAQCAtMjg3MSw4ICsyOTY1LDYgQEAgc3RhdGljIEluaXRpYWxpemF0aW9uTW9kZSBp
bml0aWFsaXphdGlvbk1vZGVGb3JBc3NpZ25tZW50Q29udGV4dChBc3NpZ25tZW50Q29udGUKICAg
ICByZXR1cm4gSW5pdGlhbGl6YXRpb25Nb2RlOjpOb3RJbml0aWFsaXphdGlvbjsKIH0KIAotLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KIFJlZ2lzdGVySUQqIEFzc2lnblJlc29sdmVO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCogZHN0KQogewogICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2lkZW50
KTsKQEAgLTI5NzMsNiArMzA2NSwzNyBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5RG90Tm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdAogICAgIHJl
dHVybiByZXQ7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENp
cmN1aXRBc3NpZ25Eb3ROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K1JlZ2lzdGVySUQqIFNob3J0Q2lyY3VpdEFzc2lnbkRvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9i
YXNlLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsK
KworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQ7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4
cHJlc3Npb25JbmZvKHN1YmV4cHJlc3Npb25EaXZvdCgpLCBzdWJleHByZXNzaW9uU3RhcnQoKSwg
c3ViZXhwcmVzc2lvbkVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKSB7Cisg
ICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5zdXJlVGhp
cygpOworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLnRl
bXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1faWRlbnQp
OworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2Vu
ZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBtX2lkZW50KTsKKworICAg
IFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAg
ICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9v
cGVyYXRvciwgc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2VuZXJh
dG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBn
ZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RF
bmQoKSk7CisgICAgaWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAgICAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gdGhpc1ZhbHVlID0gZ2VuZXJhdG9yLmVuc3VyZVRoaXMoKTsKKyAgICAgICAg
cmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRCeUlkKGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQo
KSwgbV9pZGVudCwgcmVzdWx0LmdldCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXRQdXRCeUlkKGJhc2UuZ2V0KCksIG1faWRlbnQsIHJlc3VsdC5nZXQoKSk7
CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAg
ICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBk
aXZvdEVuZCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkp
OworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXNzaWduRXJyb3JOb2Rl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJlZ2lzdGVySUQqIEFzc2ln
bkVycm9yTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJl
Z2lzdGVySUQqKQpAQCAtMzAzNyw2ICszMTYwLDM4IEBAIFJlZ2lzdGVySUQqIFJlYWRNb2RpZnlC
cmFja2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJl
CiAgICAgcmV0dXJuIHVwZGF0ZWRWYWx1ZTsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIFNob3J0Q2lyY3VpdEFzc2lnbkJyYWNrZXROb2RlIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKK1JlZ2lzdGVySUQqIFNob3J0Q2lyY3VpdEFzc2lnbkJyYWNr
ZXROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0
ZXJJRCogZHN0KQoreworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVt
aXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFzZSwgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyB8
fCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fc3Vic2NyaXB0LT5pc1B1cmUoZ2VuZXJhdG9yKSAm
JiBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHBy
b3BlcnR5ID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlRm9yUHJvcGVydHkobV9z
dWJzY3JpcHQsIG1fcmlnaHRIYXNBc3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRv
cikpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzVmFsdWU7CisKKyAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gcmVzdWx0OworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJl
eHByZXNzaW9uRGl2b3QoKSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQo
KSk7CisgICAgaWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAgICAgICB0aGlzVmFsdWUg
PSBnZW5lcmF0b3IuZW5zdXJlVGhpcygpOworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1p
dEdldEJ5VmFsKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgdGhp
c1ZhbHVlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlc3Vs
dCA9IGdlbmVyYXRvci5lbWl0R2V0QnlWYWwoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3Qp
LCBiYXNlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSk7CisKKyAgICBSZWY8TGFiZWw+IHNob3J0Q2ly
Y3VpdExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgZW1pdFNob3J0Q2lyY3VpdEFz
c2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3IsIHNob3J0Q2lyY3Vp
dExhYmVsLmdldCgpKTsKKworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBv
c2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNz
aW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGlmIChtX2Jh
c2UtPmlzU3VwZXJOb2RlKCkpCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlW
YWwoYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSwgcmVzdWx0Lmdl
dCgpKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlWYWwo
YmFzZS5nZXQoKSwgcHJvcGVydHkuZ2V0KCksIHJlc3VsdC5nZXQoKSk7CisKKyAgICBnZW5lcmF0
b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1p
dFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAg
ICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29tbWFOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCiBSZWdpc3RlcklEKiBDb21tYU5vZGU6OmVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDQzYjE3MWZiYzRlN2IzNTlkYmU2
ODI3ZmE1ZGM1Yjg1YTg5ZWJmYzAuLmMxZWMzNDI5MTliN2ZhZDQwMGY2Y2UyOTc4NWMxMWFlNWFi
NDNiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0x
NTQ4LDYgKzE1NDgsNyBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUFzc2lnbk5v
ZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcgogCiAgICAgaWYgKGxvYy0+
aXNSZXNvbHZlTm9kZSgpKSB7CiAgICAgICAgIFJlc29sdmVOb2RlKiByZXNvbHZlID0gc3RhdGlj
X2Nhc3Q8UmVzb2x2ZU5vZGUqPihsb2MpOworCiAgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6
RXF1YWwpIHsKICAgICAgICAgICAgIGlmIChleHByLT5pc0Jhc2VGdW5jRXhwck5vZGUoKSkgewog
ICAgICAgICAgICAgICAgIGF1dG8gbWV0YWRhdGEgPSBzdGF0aWNfY2FzdDxCYXNlRnVuY0V4cHJO
b2RlKj4oZXhwciktPm1ldGFkYXRhKCk7CkBAIC0xNTU4LDIxICsxNTU5LDQyIEBAIEV4cHJlc3Np
b25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uLCBFeHByCiAgICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBz
dGFydCwgZGl2b3QsIGVuZCk7CiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgICAgfQor
CisgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6Q29hbGVzY2VFcSB8fCBvcCA9PSBPcGVyYXRv
cjo6T3JFcSB8fCBvcCA9PSBPcGVyYXRvcjo6QW5kRXEpCisgICAgICAgICAgICByZXR1cm4gbmV3
IChtX3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRBc3NpZ25SZXNvbHZlTm9kZShsb2NhdGlvbiwg
cmVzb2x2ZS0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZv
dCwgc3RhcnQsIGVuZCk7CisKICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUmVh
ZE1vZGlmeVJlc29sdmVOb2RlKGxvY2F0aW9uLCByZXNvbHZlLT5pZGVudGlmaWVyKCksIG9wLCBl
eHByLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKICAgICB9CisKICAg
ICBpZiAobG9jLT5pc0JyYWNrZXRBY2Nlc3Nvck5vZGUoKSkgewogICAgICAgICBCcmFja2V0QWNj
ZXNzb3JOb2RlKiBicmFja2V0ID0gc3RhdGljX2Nhc3Q8QnJhY2tldEFjY2Vzc29yTm9kZSo+KGxv
Yyk7CisKICAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpFcXVhbCkKICAgICAgICAgICAgIHJl
dHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIEFzc2lnbkJyYWNrZXROb2RlKGxvY2F0aW9uLCBicmFj
a2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBleHByLCBsb2NIYXNBc3NpZ25tZW50
cywgZXhwckhhc0Fzc2lnbm1lbnRzLCBicmFja2V0LT5kaXZvdCgpLCBzdGFydCwgZW5kKTsKKwor
ICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkNvYWxlc2NlRXEgfHwgb3AgPT0gT3BlcmF0b3I6
Ok9yRXEgfHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVxKSB7CisgICAgICAgICAgICBhdXRvKiBub2Rl
ID0gbmV3IChtX3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRBc3NpZ25CcmFja2V0Tm9kZShsb2Nh
dGlvbiwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3AsIGV4cHIsIGxv
Y0hhc0Fzc2lnbm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsK
KyAgICAgICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGJyYWNrZXQtPmRpdm90KCks
IGJyYWNrZXQtPmRpdm90RW5kKCkub2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBub2RlOwor
ICAgICAgICB9CisKICAgICAgICAgUmVhZE1vZGlmeUJyYWNrZXROb2RlKiBub2RlID0gbmV3ICht
X3BhcnNlckFyZW5hKSBSZWFkTW9kaWZ5QnJhY2tldE5vZGUobG9jYXRpb24sIGJyYWNrZXQtPmJh
c2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIG9wLCBleHByLCBsb2NIYXNBc3NpZ25tZW50cywg
ZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAgICAgICAgIG5vZGUtPnNl
dFN1YmV4cHJlc3Npb25JbmZvKGJyYWNrZXQtPmRpdm90KCksIGJyYWNrZXQtPmRpdm90RW5kKCku
b2Zmc2V0KTsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQorCiAgICAgQVNTRVJUKGxvYy0+
aXNEb3RBY2Nlc3Nvck5vZGUoKSk7CiAgICAgRG90QWNjZXNzb3JOb2RlKiBkb3QgPSBzdGF0aWNf
Y2FzdDxEb3RBY2Nlc3Nvck5vZGUqPihsb2MpOworCiAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpF
cXVhbCkKICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXNzaWduRG90Tm9kZShs
b2NhdGlvbiwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBleHByLCBleHBySGFzQXNz
aWdubWVudHMsIGRvdC0+ZGl2b3QoKSwgc3RhcnQsIGVuZCk7CiAKKyAgICBpZiAob3AgPT0gT3Bl
cmF0b3I6OkNvYWxlc2NlRXEgfHwgb3AgPT0gT3BlcmF0b3I6Ok9yRXEgfHwgb3AgPT0gT3BlcmF0
b3I6OkFuZEVxKSB7CisgICAgICAgIGF1dG8qIG5vZGUgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIFNo
b3J0Q2lyY3VpdEFzc2lnbkRvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50
aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQp
OworICAgICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhkb3QtPmRpdm90KCksIGRvdC0+
ZGl2b3RFbmQoKS5vZmZzZXQpOworICAgICAgICByZXR1cm4gbm9kZTsKKyAgICB9CisKICAgICBS
ZWFkTW9kaWZ5RG90Tm9kZSogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgUmVhZE1vZGlmeURv
dE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIs
IGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwogICAgIG5vZGUtPnNldFN1
YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5kaXZvdEVuZCgpLm9mZnNldCk7CiAg
ICAgcmV0dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0xleGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCmluZGV4
IDFmZmM2ZWMyMGMxODA4N2M5NmQxODZhMDI2Y2Y4YTMyOTI2NTM4ZTguLmE0ZmZjYzc0Yzc0NGE3
NWVlZTNmMjczNjBmNzg4MWU2Yjk4NzUwNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
TGV4ZXIuY3BwCkBAIC0yMDkyLDYgKzIwOTIsMTEgQEAgc3RhcnQ6CiAgICAgICAgIHNoaWZ0KCk7
CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJyYnKSB7CiAgICAgICAgICAgICBzaGlmdCgpOwor
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxvZ2ljYWxBc3NpZ25tZW50T3Bl
cmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAgICAgICAgICAgICBzaGlmdCgp
OworICAgICAgICAgICAgICAgIHRva2VuID0gQU5ERVFVQUw7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tlbiA9IEFORDsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC0yMTI5LDYgKzIxMzQsMTEgQEAgc3RhcnQ6CiAgICAgICAg
IH0KICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnfCcpIHsKICAgICAgICAgICAgIHNoaWZ0KCk7
CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlTG9naWNhbEFzc2lnbm1lbnRP
cGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0nKSkgeworICAgICAgICAgICAgICAgIHNoaWZ0
KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBPUkVRVUFMOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBPUjsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC0yMTY1LDYgKzIxNzUsMTEgQEAgc3RhcnQ6CiAgICAgICAg
IHNoaWZ0KCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJz8nKSB7CiAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxvZ2ljYWxBc3Np
Z25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gQ09BTEVTQ0VFUVVBTDsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRva2VuID0gQ09B
TEVTQ0U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCBmZDk3YTBjYTkzNWU3ZTU3
NzhhMDkzODUwMjJmOTg2NzgwMTRhMzI0Li5iMDMyNWRjMTc3Mzc4ZmFhMDA1YzNiMWYyZDdjYjEy
OTczOWRhMmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVD
b25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25z
dHJ1Y3RvcnMuaApAQCAtNzE4LDYgKzcxOCwxNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAg
ICAgfQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdEFzc2lnblJlc29sdmVOb2RlOjpTaG9ydENp
cmN1aXRBc3NpZ25SZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBj
b25zdCBJZGVudGlmaWVyJiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhwcmVzc2lvbk5vZGUqICBy
aWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAgICAg
ICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKQor
ICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICAg
ICAgLCBtX29wZXJhdG9yKG9wZXIpCisgICAgICAgICwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzKHJp
Z2h0SGFzQXNzaWdubWVudHMpCisgICAgeworICAgIH0KKwogICAgIGlubGluZSBBc3NpZ25SZXNv
bHZlTm9kZTo6QXNzaWduUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlv
biwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgQXNzaWdu
bWVudENvbnRleHQgYXNzaWdubWVudENvbnRleHQpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUo
bG9jYXRpb24pCiAgICAgICAgICwgbV9pZGVudChpZGVudCkKQEAgLTczOSw2ICs3NDksMTggQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENpcmN1aXRB
c3NpZ25CcmFja2V0Tm9kZTo6U2hvcnRDaXJjdWl0QXNzaWduQnJhY2tldE5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25O
b2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yIG9wZXIsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9v
bCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5v
ZGUobG9jYXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEoZGl2b3Qs
IGRpdm90U3RhcnQsIGRpdm90RW5kKQorICAgICAgICAsIG1fYmFzZShiYXNlKQorICAgICAgICAs
IG1fc3Vic2NyaXB0KHN1YnNjcmlwdCkKKyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQorICAgICAg
ICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRz
KHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzKQorICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25tZW50
cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUgQXNzaWdu
QnJhY2tldE5vZGU6OkFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9j
YXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBF
eHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wg
cmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5k
KQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIFRocm93YWJs
ZUV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKQEAgLTc3MSw2ICs3
OTMsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBTaG9y
dENpcmN1aXRBc3NpZ25Eb3ROb2RlOjpTaG9ydENpcmN1aXRBc3NpZ25Eb3ROb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29s
IHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCkKKyAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2Fi
bGVTdWJFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisgICAgICAg
ICwgbV9iYXNlKGJhc2UpCisgICAgICAgICwgbV9pZGVudChpZGVudCkKKyAgICAgICAgLCBtX3Jp
Z2h0KHJpZ2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3JpZ2h0
SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7CisgICAgfQorCiAgICAg
aW5saW5lIEFzc2lnbkVycm9yTm9kZTo6QXNzaWduRXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKICAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBUaHJvd2FibGVFeHBy
ZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVzLmgKaW5kZXggMjJkZjVhZTRkMDhlNTg2ZTc4ZjhiMzliMmJiZjVhNjhmZjE4
ZTY1ZC4uYzZlYjg3MjllYWIxMDIyMGFjY2E3NWI2MmMzNDNhZWY2NjAxOGFhMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtNjgsNiArNjgsOSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgQml0T3JFcSwKICAgICAgICAgTW9kRXEsCiAgICAgICAgIFBvd0VxLAorICAg
ICAgICBDb2FsZXNjZUVxLAorICAgICAgICBPckVxLAorICAgICAgICBBbmRFcSwKICAgICAgICAg
TFNoaWZ0LAogICAgICAgICBSU2hpZnQsCiAgICAgICAgIFVSU2hpZnQKQEAgLTEzODksNiArMTM5
MiwxOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVu
dHM7CiAgICAgfTsKIAorICAgIGNsYXNzIFNob3J0Q2lyY3VpdEFzc2lnblJlc29sdmVOb2RlIGZp
bmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRh
dGEgeworICAgIHB1YmxpYzoKKyAgICAgICAgU2hvcnRDaXJjdWl0QXNzaWduUmVzb2x2ZU5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9yLCBFeHBy
ZXNzaW9uTm9kZSogIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
IG92ZXJyaWRlOworCisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OworICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOwor
ICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50czsKKyAgICB9OworCiAgICAgY2xhc3Mg
QXNzaWduUmVzb2x2ZU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBU
aHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBBc3NpZ25SZXNv
bHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgRXhwcmVz
c2lvbk5vZGUqIHJpZ2h0LCBBc3NpZ25tZW50Q29udGV4dCk7CkBAIC0xNDE4LDYgKzE0MzQsMjEg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDog
MTsKICAgICB9OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0QXNzaWduQnJhY2tldE5vZGUgZmlu
YWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVTdWJFeHByZXNzaW9u
RGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBTaG9ydENpcmN1aXRBc3NpZ25CcmFja2V0Tm9k
ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lv
bk5vZGUqIHN1YnNjcmlwdCwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBz
dWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSAwKSBvdmVycmlkZTsKKworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOworICAgICAg
ICBFeHByZXNzaW9uTm9kZSogbV9zdWJzY3JpcHQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBt
X3JpZ2h0OworICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBib29sIG1fc3Vi
c2NyaXB0SGFzQXNzaWdubWVudHMgOiAxOworICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25t
ZW50cyA6IDE7CisgICAgfTsKKwogICAgIGNsYXNzIEFzc2lnbkJyYWNrZXROb2RlIGZpbmFsIDog
cHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewog
ICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduQnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIEV4
cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCBy
aWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
OwpAQCAtMTQ1OSw2ICsxNDkwLDIwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIG1f
cmlnaHRIYXNBc3NpZ25tZW50cyA6IDE7CiAgICAgfTsKIAorICAgIGNsYXNzIFNob3J0Q2lyY3Vp
dEFzc2lnbkRvdE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJv
d2FibGVTdWJFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBTaG9ydENpcmN1
aXRBc3NpZ25Eb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBi
YXNlLCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAg
ICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lk
ZW50OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAgICAgT3BlcmF0b3Ig
bV9vcGVyYXRvcjsKKyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOworICAg
IH07CisKICAgICBjbGFzcyBBc3NpZ25FcnJvck5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lv
bk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAg
ICAgICBBc3NpZ25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcAppbmRleCA4NDg1ODIzYzRlNjQ1YmE2ZTYzMWNhNGEyZGMwNDZhNWY3MDgzYWE3Li5m
NWIyZTJmNDAwYTU5ODNlZTI5MGI3ZTg5NzM5ODMzNjYzNzMzZGFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0zODMzLDcgKzM4MzMsNyBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+Ojpw
YXJzZUFzc2lnbm1lbgogCiAgICAgZmFpbElmRmFsc2UobGhzLCAiQ2Fubm90IHBhcnNlIGV4cHJl
c3Npb24iKTsKICAgICBpZiAoaW5pdGlhbE5vbkxIU0NvdW50ICE9IG1fcGFyc2VyU3RhdGUubm9u
TEhTQ291bnQpIHsKLSAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9r
ZW4ubV90eXBlIDw9IEJJVE9SRVFVQUwpCisgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBF
UVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBBTkRFUVVBTCkKICAgICAgICAgICAgIHNlbWFudGlj
RmFpbCgiTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJyIsIGdldFRva2VuKCksICInIG11c3Qg
YmUgYSByZWZlcmVuY2UiKTsKIAogICAgICAgICByZXR1cm4gbGhzOwpAQCAtMzg1Nyw2ICszODU3
LDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAgICAgY2FzZSBCSVRPUkVRVUFMOiBv
cCA9IE9wZXJhdG9yOjpCaXRPckVxOyBicmVhazsKICAgICAgICAgY2FzZSBNT0RFUVVBTDogb3Ag
PSBPcGVyYXRvcjo6TW9kRXE7IGJyZWFrOwogICAgICAgICBjYXNlIFBPV0VRVUFMOiBvcCA9IE9w
ZXJhdG9yOjpQb3dFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgQ09BTEVTQ0VFUVVBTDogb3AgPSBP
cGVyYXRvcjo6Q29hbGVzY2VFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgT1JFUVVBTDogb3AgPSBP
cGVyYXRvcjo6T3JFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgQU5ERVFVQUw6IG9wID0gT3BlcmF0
b3I6OkFuZEVxOyBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGdvdG8gZW5k
OwogICAgICAgICB9CkBAIC0zODc2LDcgKzM4NzksNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJl
ZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1l
bgogICAgICAgICBsaHMgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOwogICAg
ICAgICBmYWlsSWZGYWxzZShsaHMsICJDYW5ub3QgcGFyc2UgdGhlIHJpZ2h0IGhhbmQgc2lkZSBv
ZiBhbiBhc3NpZ25tZW50IGV4cHJlc3Npb24iKTsKICAgICAgICAgaWYgKGluaXRpYWxOb25MSFND
b3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAgICAgICAgICBpZiAobV90
b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQklUT1JFUVVBTCkKKyAg
ICAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8
PSBBTkRFUVVBTCkKICAgICAgICAgICAgICAgICBzZW1hbnRpY0ZhaWwoIkxlZnQgaGFuZCBzaWRl
IG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAiJyBtdXN0IGJlIGEgcmVmZXJlbmNlIik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggNDgxODFhZTBkNGI5MzM4OTRmOGU0ZjJiZGZkYjYyZTgx
MzgzZDJjNS4uZGUwZWJlYWY4NWZkNzEyMzcxN2Y4NzcxMTI3ZjcxOTIzZmZlNjc0OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCkBAIC0xMzQsNiArMTM0
LDkgQEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgQklUQU5ERVFVQUwsCiAgICAgQklUWE9SRVFV
QUwsCiAgICAgQklUT1JFUVVBTCwKKyAgICBDT0FMRVNDRUVRVUFMLAorICAgIE9SRVFVQUwsCisg
ICAgQU5ERVFVQUwsCiAgICAgRE9URE9URE9ULAogICAgIEFSUk9XRlVOQ1RJT04sCiAgICAgUVVF
U1RJT05ET1QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApp
bmRleCBiODViODI4OGVkZjYyODRlZDgzY2FmNmM2ZDk4ZjMyN2ZhMmRjNGNmLi42ZWQ0MmQ0MDcy
YzhmNmVjMmU4OTA1OGFhY2NlNTdjMzRlYTYxZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTUwMCw2ICs1MDAsNyBAQCBjb25zdGV4cHIgYm9v
bCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAgIHYoQm9vbCwgZm9y
Y2VPU1JFeGl0VG9MTEludCwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIHdlIGFsd2F5cyBleGl0
IHRvIHRoZSBMTEludC4gSWYgZmFsc2UsIHdlIGV4aXQgdG8gd2hhdGV2ZXIgaXMgbW9zdCBjb252
ZW5pZW50LiIpIFwKICAgICB2KFVuc2lnbmVkLCBnZXRCeVZhbElDTWF4TnVtYmVyT2ZJZGVudGlm
aWVycywgNCwgTm9ybWFsLCAiTnVtYmVyIG9mIGlkZW50aWZpZXJzIHdlIHNlZSBpbiB0aGUgTExJ
bnQgdGhhdCBjb3VsZCBjYXVzZSB1cyB0byBiYWlsIG9uIGdlbmVyYXRpbmcgYW4gSUMgZm9yIGdl
dF9ieV92YWwuIikgXAogICAgIHYoQm9vbCwgdXNlUHVibGljQ2xhc3NGaWVsZHMsIHRydWUsIE5v
cm1hbCwgIklmIHRydWUsIHRoZSBwYXJzZXIgd2lsbCB1bmRlcnN0YW5kIHB1YmxpYyBkYXRhIGZp
ZWxkcyBpbnNpZGUgY2xhc3Nlcy4iKSBcCisgICAgdihCb29sLCB1c2VMb2dpY2FsQXNzaWdubWVu
dE9wZXJhdG9ycywgZmFsc2UsIE5vcm1hbCwgIkVuYWJsZSBzdXBwb3J0IGZvciBcP1w/PSwgfHw9
LCBhbmQgJiY9IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMuIikgXAogCiBlbnVtIE9wdGlv
bkVxdWl2YWxlbmNlIHsKICAgICBTYW1lT3B0aW9uLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFjMmQwNTEyYjlkMzhmNWMzZmNiNjUwOGY1MWY1
Nzg2YmQ3MzQzOTcuLmUxZWUwMTNkYzQxYzQ0MzcxM2NjYTQ0ZmMzZWRmNTJmNmI0ZDZiYTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAyMC0wNC0wMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgW0VTTmV4dF0gSW1wbGVtZW50IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcxNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAyMC0wMy0zMSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFNlbmQgY29ycmVjdCBVc2VyQ29u
dGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGFmdGVyIHVzaW5nIFNQSSBXS1dlYnBhZ2VQcmVmZXJl
bmNlcy5fdXNlckNvbnRlbnRDb250cm9sbGVyCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1
bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpp
bmRleCAyZmJlM2I0YmE4ZWE3MDczZGEyYThmNjczY2EwYmJlNjllNjk3YmNlLi5kYzcyYTY0OTk0
ODc2MjBmNWNmMzQ1ZWQ0NzAxNWNiZGEwYWRiZDU0IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3Mt
dGVzdHMKQEAgLTc4Niw2ICs3ODYsMTAgQEAgZGVmIHJ1bk1pbmlNb2RlKCpvcHRpb25hbFRlc3RT
cGVjaWZpY09wdGlvbnMpCiAgICAgcnVuKCJtaW5pLW1vZGUiLCAiLS1mb3JjZU1pbmlWTU1vZGU9
dHJ1ZSIsICpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiBlbmQKIAorZGVmIHJ1bkxvZ2lj
YWxBc3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZCgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25z
KQorICAgIHJ1bigibG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycy1lbmFibGVkIiwgIi0tdXNl
TG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnM9dHJ1ZSIgLCAqKEZUTF9PUFRJT05TICsgb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKK2VuZAorCiBkZWYgZGVmYXVsdFJ1bgogICAgIGlmICRt
b2RlID09ICJxdWljayIKICAgICAgICAgZGVmYXVsdFF1aWNrUnVuCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU2MGY0ZDQ3Y2JlNTM4MGYw
MTIwYjMzMzQwY2QwNTZjYmEwYjliODMuLmQyNmRlMmYwZWU3ODdmOTAzZGFmY2M4OTNiZjFjZTMy
MDk3YWQ4NWIgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMDEgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFtFU05leHRdIEltcGxlbWVudCBsb2dpY2FsIGFzc2ln
bm1lbnQgb3BlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLWNvYWxlc2Nl
LmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9y
LW9yLmpzOiBBZGRlZC4KKworICAgICAgICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6CisKIDIwMjAt
MDMtMzAgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAg
IEFkZCBzdXBwb3J0IGluIG5hbWVkIGNhcHR1cmUgZ3JvdXAgaWRlbnRpZmllcnMgZm9yIGRpcmVj
dCBzdXJyb2dhdGUgcGFpcnMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNz
aWdubWVudC1vcGVyYXRvci1hbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1l
bnQtb3BlcmF0b3ItYW5kLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNTJkMWYyZDE0NjdhYmU5NmNhMjI5MWJj
MmE4NWJmZWQwMzM4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2Fs
LWFzc2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzCkBAIC0wLDAgKzEsMTYxNiBAQAorLy9AIHJ1bkxv
Z2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlvbiBzaG91bGRCZShmdW5j
LCBleHBlY3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBmdW5jKCk7CisgICAgaWYgKHR5cGVvZiBl
eHBlY3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDog
YWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAk
e0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVh
bCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAg
IGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2Vv
ZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JU
eXBlLm5hbWV9IGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworZnVuY3Rp
b24gc2hvdWxkVGhyb3dTeW50YXhFcnJvcihzY3JpcHQpIHsKKyAgICBsZXQgZXJyb3I7CisgICAg
dHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJy
b3IpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFN5bnRheEVycm9yIGJ1dCBz
YXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHg7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJu
IHg7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIHggJiY9IDQyOworICAg
IHJldHVybiB4OworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gdHJ1ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAg
ICByZXR1cm4geCAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxz
ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICByZXR1cm4g
eCAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAw
OworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICB4ICYmPSA0MjsKKyAg
ICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSAiIjsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAi
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOworICAgIHJl
dHVybiB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSAidGVzdCI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHggJiY9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4ICYmPSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYm
PSA0MjsKKyAgICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBudWxsOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIG51bGwp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICB4ICYm
PSA0MjsKKyAgICByZXR1cm4geDsKK30sIG51bGwpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJy
b3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAg
cmV0dXJuIHggJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxz
ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHJldHVy
biB4ICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gMDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDApOworCitzaG91bGRUaHJv
dyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9
LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7
CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7
CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVzdCI7CisgICAg
cmV0dXJuIHggJiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJv
cik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICBy
ZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5l
ZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hICYm
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0
MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IHVuZGVmaW5lZH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5k
ZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07
CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHRydWV9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSAmJj0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCAwKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeC5hICYmPSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4LmEgJiY9IDQyOworICAg
IHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHguYSAmJj0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgJiY9IDQy
OworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHguYSAmJj0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeC5hICYmPSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHguYSAmJj0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0
MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogdW5kZWZpbmVkfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB1
bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51
bGx9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hICYmPSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07Cisg
ICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgJiY9IDQy
OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07
CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07
CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0
MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAi
In07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgIiIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHgu
YSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogInRlc3QifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJl
dHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAg
IHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZp
bmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVk
fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICBy
ZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogdHJ1ZX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSAmJj0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFs
c2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07Cisg
ICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJd
ICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAwfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHhb
ImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IDF9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJl
dHVybiB4WyJhIl0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVz
dCJ9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAmJj0gNDI7Cisg
ICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YToge319OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdICYm
PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4
WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKKworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSAmJj0g
NDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge307CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdW5kZWZp
bmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmlu
ZWR9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEi
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEi
XSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVl
fTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAg
ICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEi
XSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiAwfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1
cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9
OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHhb
ImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
e319OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJu
IHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogW119OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107Cisg
ICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBd
ICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsK
K30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsK
KyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIG51bGwpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSAmJj0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVd
OworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9
IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtm
YWxzZV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHJldHVybiB4WzBd
ICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsw
XTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAg
IHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgeFsw
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAg
IHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgeFsw
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICB4WzBdICYm
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRl
ZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAg
eFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhb
MF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBd
OworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFtudWxsXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICB4WzBdICYmPSA0MjsKKyAg
ICByZXR1cm4geFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gW3RydWVdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdICYmPSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4
WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9
LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICB4
WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gWzFdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsxXTsKKyAgICB4WzBd
ICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBd
ICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOwor
ICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOwor
ICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOwor
ICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAg
bGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIGZhbHNlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAg
bGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ID0gejsKK30sIGZhbHNlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAg
bGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmIHo7Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAg
ICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHwgejsKK30sIGZhbHNlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7Cisg
ICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmPSB6OworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz89IHo7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAx
OworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSB8fD0gejsKK30sIGZhbHNlKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQg
eSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIDMpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAx
OworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA9IHo7Cit9LCAyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAg
ICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgJiYgejsKK30sIDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ICYmPSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7
CisgICAgcmV0dXJuIHggJiY9IHkgJiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7Cisg
ICAgcmV0dXJuIHggJiY9IHkgPz89IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggJiY9IHkgfHw9IHo7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAg
ICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAg
ICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAg
fTsKKworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cu
am9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCBzZXQgNDIiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsK
KyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
Z2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEo
dikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7Cisg
ICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKwor
ICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IGZhbHNlIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBh
ID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAor
ICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAg
ICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hICYmPSA0MjsKKyAgICB4
LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdl
dCBnZXQgdW5kZWZpbmVkIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
bG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdl
dCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJu
IGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4
WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgc2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7CisgICAg
bGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIp
OworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAg
ICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisK
KyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQg
YSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwK
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAg
ICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSAmJj0gNDI7Cisg
ICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsK
K30sICJnZXQgZ2V0IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7
CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAg
IH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJl
dHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEgJiY9IHY7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsK
KyAgICB4LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdl
dC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBh
cmVudCBzZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBs
b2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9h
OworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJz
ZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAg
fQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3Vw
ZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVz
aCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hICYmPSB2OworICAgICAgICB9Cisg
ICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHgu
YSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsg
IiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVu
dCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisK
KyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAg
fQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIp
OworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFz
cyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAg
ICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGls
ZCIpOworICAgICAgICAgICAgc3VwZXIuYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeC5hICYmPSA0
MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4
Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVm
aW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOwor
CisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAg
IH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQi
KTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xh
c3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOwor
ICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQt
Y2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gJiY9IHY7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSAr
ICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBz
ZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBb
XTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAg
ICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFy
ZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAg
IGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEi
XTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
c2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdICYmPSB2OworICAgICAgICB9Cisg
ICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHhb
ImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigi
ICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0
LXBhcmVudCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBh
cmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJh
Il07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSAmJj0gdjsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7Cisg
ICAgeFsiYSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5q
b2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGls
ZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAg
ICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAg
cmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAg
ICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAg
ICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsK
KyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRUaHJv
dyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAg
ICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9
LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7
CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7Cisg
ICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOwor
ICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdy
aXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVm
aW5lZCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisg
ICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwK
KyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9
IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9
OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVu
ZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4
WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9u
KCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRh
YmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIFR5cGVF
cnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBs
ZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAg
dmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFi
bGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZp
bmVkKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAg
ICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggJiY9IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJu
IHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7
CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggJiY9IDQyOworICAg
IH0pKCk7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
dW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ICYm
PSA0MjsKKyAgICB9KSgpOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAg
eCAmJj0gNDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIFR5cGVFcnJvcik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1
bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAg
ICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAgfSko
KTsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICB4
ICYmPSA0MjsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHg7Cit9LCBSZWZlcmVuY2VF
cnJvcik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdW5kZWZpbmVk
ICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYG51bGwg
JiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYHRydWUgJiY9IDQyYCk7CisKK3No
b3VsZFRocm93U3ludGF4RXJyb3IoYGZhbHNlICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRh
eEVycm9yKGAwICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAxICYmPSA0MmAp
OworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAiIiAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dT
eW50YXhFcnJvcihgInRlc3QiICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB7
fSAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgW10gJiY9IDQyYCk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItY29hbGVz
Y2UuanMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItY29hbGVz
Y2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTNkMWMxYzA1MDI0MjdlNGFiODYwMTA1ZGUzMWM5NTAwYTVlYWY3
NQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1v
cGVyYXRvci1jb2FsZXNjZS5qcwpAQCAtMCwwICsxLDE2MzEgQEAKKy8vQCBydW5Mb2dpY2FsQXNz
aWdubWVudE9wZXJhdG9yc0VuYWJsZWQKKworZnVuY3Rpb24gc2hvdWxkQmUoZnVuYywgZXhwZWN0
ZWQpIHsKKyAgICBsZXQgYWN0dWFsID0gZnVuYygpOworICAgIGlmICh0eXBlb2YgZXhwZWN0ZWQg
PT09ICJmdW5jdGlvbiIgPyAhKGFjdHVhbCBpbnN0YW5jZW9mIGV4cGVjdGVkKSA6IGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtKU09OLnN0
cmluZ2lmeShleHBlY3RlZCl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShhY3R1YWwpfWApOwor
fQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKKyAgICBsZXQgZXJy
b3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgZXJyb3JU
eXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlwZS5uYW1l
fSBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK2Z1bmN0aW9uIHNob3Vs
ZFRocm93U3ludGF4RXJyb3Ioc2NyaXB0KSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7Cisg
ICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0g
ZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBTeW50YXhFcnJvciBidXQgc2F3ICR7ZXJy
b3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4OworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHg7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVy
biB4ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB1bmRlZmluZWQ7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsK
KyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgeCA/Pz0g
NDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gMDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwg
MCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4g
eCA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAx
OworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgIiIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHggPz89IDQyOwor
ICAgIHJldHVybiB4OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4ID8/PSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge307CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsK
K30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107Cisg
ICAgcmV0dXJuIHggPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFtdOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgQXJyYXkp
OworCisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5l
ZDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9
LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1
ZTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9
LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOwor
ICAgIHJldHVybiB4ID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwg
ZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICBy
ZXR1cm4geCA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IDA7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAwKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDE7CisgICAgcmV0dXJuIHggPz89IDQyOwor
fSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOworICAgIHgg
Pz89IDQyOworICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSAiIjsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAiIjsKKyAgICB4ID8/PSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
ICJ0ZXN0IjsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ID8/PSA0MjsK
K30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsK
KyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4
ID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFtdOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5h
ID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgPz89IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmlu
ZWR9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSA/
Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IG51bGx9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHgu
YSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogdHJ1ZX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdHJ1ZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICBy
ZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsK
K30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07
CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOwor
fSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAg
IHJldHVybiB4LmEgPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IDF9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0
dXJuIHguYSA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6ICIifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAiIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAg
cmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHt9fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgPz89IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4LmEgPz89IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9Owor
ICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5hID8/PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBu
dWxsfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHgu
YSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiB0cnVlfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07Cisg
ICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiAwfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IDF9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogIiJ9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEg
Pz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30s
IE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319
OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEg
Pz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IFtdfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVy
biB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHt9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsK
KyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0g
Pz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOwor
fSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9
OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHRydWUpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJu
IHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IDB9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgIiIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJdID8/PSA0
MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwg
InRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3Qi
fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJu
IHhbImEiXSA/Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
W119OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdID8/
PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
dW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07Cisg
ICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJd
ID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gPz89
IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBm
YWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07Cisg
ICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiAxfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sICIiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeFsiYSJdID8/
PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7
Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
ICJ0ZXN0In07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgInRl
c3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07Cisg
ICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIEFycmF5KTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeFsi
YSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAg
eFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt1bmRlZmlu
ZWRdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSA/
Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251
bGxdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSA/
Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBb
dHJ1ZV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4
WzBdID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbZmFsc2VdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgZmFs
c2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICByZXR1
cm4geFswXSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbMF07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0g
Pz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFd
OworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgMSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7
Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAg
ICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRlc3QiXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7
Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVz
dCJdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgInRlc3QiKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHJldHVybiB4WzBd
ID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gW3t9XTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIE9iamVjdCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4g
eFswXSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gW1tdXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5
KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICBy
ZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOwor
ICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVy
biB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W251bGxdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICBy
ZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdID8/PSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOworICAgIHhb
MF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30s
IDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOworICAgIHhb
MF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgeFswXSA/
Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgIiIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdID8/
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sICJ0
ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsK
KyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdID8/
PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbe31dOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJu
IHhbMF0gPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gW1tdXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFy
cmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7Cisg
ICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSArIHo7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7Cisg
ICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSA9IHo7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7Cisg
ICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJiB6Owor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOwor
ICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz8gejsK
K30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsK
KyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5IHx8IHo7
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7
CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJj0g
ejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxz
ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ID8/
PSB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZh
bHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkg
fHw9IHo7Cit9LCBmYWxzZSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/
Pz0geSArIHo7Cit9LCAzKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBu
dWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkg
PSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsK
KyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ICYmIHo7
Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAg
IGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz8gejsKK30s
IDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0
IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSB8fCB6OworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9
IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ICYmPSB6OworfSwgMik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ID8/PSB6OworfSwgMSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7Cisg
ICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5IHx8PSB6OworfSwgMSk7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRy
dWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1
c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2
OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7
CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCB0cnVl
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxl
dCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisg
ICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAg
ICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgPz89IDQyOworICAgIHgu
YSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0
IGdldCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsK
KyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNl
dCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSA/
Pz0gNDI7CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAi
ICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0gewor
ICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAg
ICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9
OworCisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJu
IGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNlOwor
ICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJn
ZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAg
ICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQy
OworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgZmFs
c2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAg
bGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAg
ICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAg
IH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAg
ICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gPz89IDQy
OworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVy
biB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAgICAg
ICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0
IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICBy
ZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hID8/PSB2OworICAg
ICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRydWU7
CisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEgPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2lu
KCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBn
ZXQtcGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5h
OworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJz
ZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEgPz89IHY7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gZmFsc2U7CisgICAgeC5hID8/
PSA0MjsKKyAgICB4LmEgPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIg
KyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IGZh
bHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAg
IGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9Cisg
ICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7Cisg
ICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENo
aWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAg
fQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7
CisgICAgICAgICAgICBzdXBlci5hID8/PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0
IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4LmEgPz89IDQyOwor
ICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7
Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVu
dCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAg
bG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAg
ICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBn
ZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAg
IHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89
IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9h
ID0gdHJ1ZTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJl
bnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1
cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBs
b2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdl
dCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAg
cmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSA/Pz0g
djsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2Eg
PSBmYWxzZTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJl
bnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAg
bG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAg
ICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBn
ZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAg
IHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89
IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9h
ID0gdW5kZWZpbmVkOworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJdID8/PSA0MjsKKwor
ICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0
LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFy
ZW50IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9Owor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUs
CisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0
MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9Owor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNl
LAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0g
NDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5k
ZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHgu
YSA/Pz0gNDI7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNl
IHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwg
ImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisg
ICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZh
bHNlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAg
IGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAg
ICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7Cisg
ICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwg
ImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisg
ICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
eCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNl
LAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFi
bGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOwor
CisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4
ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1
ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4
WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1
c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4
LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2Us
CisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9Owor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVm
aW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJh
Il0gPz89IDQyOworfSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggPz89IDQyOwor
ICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAg
ICByZXR1cm4geCA/Pz0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigp
IHsKKyAgICAgICAgcmV0dXJuIHggPz89IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24o
KSB7CisgICAgICAgIHggPz89IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJl
dHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOwor
fSwgZmFsc2UpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdW5k
ZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0
MjsKKyAgICB9KSgpOworfSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9u
KCkgeworICAgIHggPz89IDQyOworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30s
IFJlZmVyZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVy
biB1bmRlZmluZWQgPz89IDQyOworfSwgNDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBu
dWxsID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlID8/PSA0MmApOwor
CitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBmYWxzZSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dT
eW50YXhFcnJvcihgMCA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSA/Pz0g
NDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgIiIgPz89IDQyYCk7CisKK3Nob3VsZFRo
cm93U3ludGF4RXJyb3IoYCJ0ZXN0IiA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJv
cihge30gPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYFtdID8/PSA0MmApOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9y
LmpzIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM4Zjg2NGE5MGE4NGQ4YjI2MWIxNjRkNWQ3ZWMxZDJhMWY3YmVjY2MKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3It
b3IuanMKQEAgLTAsMCArMSwxNjEzIEBACisvL0AgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRv
cnNFbmFibGVkCisKK2Z1bmN0aW9uIHNob3VsZEJlKGZ1bmMsIGV4cGVjdGVkKSB7CisgICAgbGV0
IGFjdHVhbCA9IGZ1bmMoKTsKKyAgICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAiZnVuY3Rpb24i
ID8gIShhY3R1YWwgaW5zdGFuY2VvZiBleHBlY3RlZCkgOiBhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0
ZWQpfSBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkoYWN0dWFsKX1gKTsKK30KKworZnVuY3Rpb24g
c2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7
CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsK
KyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vy
cm9yICYmIGVycm9yLm5hbWV9IWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvd1N5bnRheEVy
cm9yKHNjcmlwdCkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNj
cmlwdCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisg
ICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcihgRXhwZWN0ZWQgU3ludGF4RXJyb3IgYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5h
bWV9IWApOworfQorCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICByZXR1
cm4geCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
OworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOwor
ICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgeCB8fD0gNDI7
CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHggfHw9IDQyOworICAgIHJldHVy
biB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFs
c2U7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgcmV0dXJu
IHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IDA7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAxKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAxOworICAgIHggfHw9IDQyOwor
ICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gIiI7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICBy
ZXR1cm4geCB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sICJ0ZXN0
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJu
IHggfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHggfHw9IDQy
OworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOwor
ICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgQXJyYXkpOworCisKKworc2hvdWxkVGhy
b3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCB8
fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCB8
fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHRydWU7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxk
VGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiB4IHx8
PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSAwOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOworICAgIHJldHVybiB4IHx8PSA0MjsK
K30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICB4
IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDEpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVycm9y
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICBy
ZXR1cm4geCB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCB8
fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge307CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFy
cmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJl
dHVybiB4IHx8PSA0MjsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hIHx8PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSB8
fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHgu
YSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07Cisg
ICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFs
c2V9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9
OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7
Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07Cisg
ICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAg
IHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsK
K30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0
ZXN0In07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4
LmEgfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YToge319OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVj
dCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICBy
ZXR1cm4geC5hIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogW119OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30s
IEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsK
KyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHt9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmlu
ZWR9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeC5hIHx8PSA0MjsKKyAg
ICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHguYSB8fD0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAg
IHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBm
YWxzZX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEg
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IDB9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geC5h
IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IDF9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5h
IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiAiIn07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0
dXJuIHguYSB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiB7fX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgfHw9IDQyOworICAg
IHJldHVybiB4LmE7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIEFycmF5KTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeC5hIHx8
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0g
fHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVu
ZGVmaW5lZH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICBy
ZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0
cnVlfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gfHw9IDQyOwor
ICAgIHJldHVybiB4WyJhIl07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJd
IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAxfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAxKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAiIn07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9Owor
ICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBPYmplY3Qp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsi
YSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gfHw9
IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiBbXX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkp
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJl
dHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVm
aW5lZH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
ZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gfHw9IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeFsi
YSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQy
OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgMSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJh
Il0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsK
KyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOwor
ICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIE9i
amVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319Owor
ICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtd
OworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVk
XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W251bGxdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbbnVsbF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W3RydWVdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFswXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgeFswXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
WzFdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07Cisg
ICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFsiIl07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07Cisg
ICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbInRlc3QiXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W3t9XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtbXV07CisgICAgeFswXSB8fD0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gW107CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgeFswXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4
WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07Cisg
ICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQy
OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1
ZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhb
MF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW2ZhbHNlXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4g
eFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSBbMF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgcmV0dXJuIHhb
MF0gfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbMV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAxKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0g
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
WyIiXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4
WzBdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbInRlc3QiXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
ICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOwor
ICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFtbXV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4IHx8PSB5ICsgejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4g
eCB8fD0geSA9IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHgg
fHw9IHkgJiYgejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8
fD0geSA/PyB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8
PSB5IHx8IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9
IHkgJiY9IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9
IHkgfHw9IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9
IHkgPz89IHo7Cit9LCB0cnVlKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4
IHx8PSB5ICsgejsKK30sIDMpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0g
eSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxs
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiYg
ejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7Cisg
ICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/PyB6Owor
fSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8IHo7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5
ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiY9IHo7Cit9LCAyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgfHw9IHo7Cit9LCAxKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPz89IHo7Cit9LCAxKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0g
dHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9
IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0
MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHRy
dWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAg
bGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwK
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAg
ICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAg
eC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJn
ZXQgc2V0IGdldCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0
IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4g
YTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHgu
YSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsg
IiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0g
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAg
ICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAg
ICB9OworCisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0
dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNl
OworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsK
KyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQg
Z2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKwor
ICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAg
ICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7
CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAi
ICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAg
ICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSB8fD0gdjsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB0
cnVlOworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cu
am9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hp
bGQgZ2V0LXBhcmVudCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBs
b2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9h
OworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJz
ZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAg
fQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3Vw
ZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVz
aCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9Cisg
ICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHgu
YSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsg
IiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVu
dCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2
OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAg
ICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hIHx8
PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5f
YSA9IHVuZGVmaW5lZDsKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0
MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisg
ICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVz
aCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0K
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsK
KyAgICAgICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3Mg
Q2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAg
ICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hp
bGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHhbImEiXSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQg
dHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAg
ICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQor
ICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOwor
ICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBD
aGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9n
LnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAg
ICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGls
ZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHhbImEiXSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQg
c2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBn
ZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsK
KyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAg
ICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAg
ICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEi
XSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAg
IHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQy
OworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGls
ZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTog
dHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEg
fHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTog
ZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5h
IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1
bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4g
eC5hIHx8PSA0MjsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1
c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4
LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwK
KyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRUaHJv
dyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAg
ICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOwor
fSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJp
Y3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwg
eworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisg
ICAgfSk7CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTog
ZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFi
bGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwg
NDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAg
IGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAg
ICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJl
dHVybiB4WyJhIl0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJs
ZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBUeXBlRXJy
b3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAg
ICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKKworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAg
ICB4IHx8PSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlv
bigpIHsKKyAgICAgICAgcmV0dXJuIHggfHw9IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgNDIp
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAg
KGZ1bmN0aW9uKCkgeworICAgICAgICB4IHx8PSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4
OworfSwgdHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBm
YWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7
CisgICAgfSkoKTsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAg
ICAgcmV0dXJuIHggfHw9IDQyOworICAgIH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hv
dWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgeCB8fD0gNDI7CisgICAgbGV0IHggPSB0cnVlOwor
ICAgIHJldHVybiB4OworfSwgUmVmZXJlbmNlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgcmV0dXJuIHVuZGVmaW5lZCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZFRo
cm93U3ludGF4RXJyb3IoYG51bGwgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3Io
YHRydWUgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYGZhbHNlIHx8PSA0MmAp
OworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAwIHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5
bnRheEVycm9yKGAxIHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAiIiB8fD0g
NDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgInRlc3QiIHx8PSA0MmApOworCitzaG91
bGRUaHJvd1N5bnRheEVycm9yKGB7fSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJv
cihgW10gfHw9IDQyYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwg
Yi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKaW5kZXggYjk1ZjM2MzVlYTc2YjY1OTMzMjI3
YTk2ZTg4MTczODY5MmE0YWZkNS4uNzZkZWJjZGE0MGVhNWQ1ZTE0ZGU2MWYxMzk0OGRiOGIyY2M3
NThmOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCisrKyBiL0pTVGVz
dHMvdGVzdDI2Mi9jb25maWcueWFtbApAQCAtNCw2ICs0LDcgQEAgZmxhZ3M6CiAgIEJpZ0ludDog
dXNlQmlnSW50CiAgIFdlYWtSZWY6IHVzZVdlYWtSZWZzCiAgIGNsYXNzLWZpZWxkcy1wdWJsaWM6
IHVzZVB1YmxpY0NsYXNzRmllbGRzCisgIGxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnM6IHVz
ZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzCiBza2lwOgogICBmZWF0dXJlczoKICAgICAtIFNo
YXJlZEFycmF5QnVmZmVyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396009</attachid>
            <date>2020-04-09 14:18:44 -0700</date>
            <delta_ts>2020-04-09 15:01:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200409151843.patch</filename>
            <type>text/plain</type>
            <size>29343</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3NjQzNzg5MDBjODZkOWZmMDc4YWY2NzEzY2Qx
M2EyYjUxMzk4ZGUuLjhhOWRkOTgzYjgxNTE2ZDE3ZDI5MDk4ZDVhODM1NTcyMjQyMDkyODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTA5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBub3cgU3RhZ2UgMy4gSXQgaW50cm9kdWNlcwor
ICAgICAgICB0aHJlZSBuZXcgYXNzaWdubWVudCBvcGVyYXRvcnMgd2hpY2ggd2lsbCBvbmx5IHN0
b3JlIHRoZSByZXN1bHQgb2YgdGhlIHJocyBpbiB0aGUgbGhzIGlmIHRoZQorICAgICAgICBsaHMg
bWVldHMgdGhlIGdpdmVuIGNvbmRpdGlvbjoKKyAgICAgICAgIC0gYD8/PWAsIGZvciBpZiB0aGUg
bGhzIGlzIG51bGxpc2ggKGBudWxsYCBvciBgdW5kZWZpbmVkYCkKKyAgICAgICAgIC0gYHx8PWAs
IGZvciBpZiB0aGUgbGhzIGlzIGZhbHN5CisgICAgICAgICAtIGAmJj1gLCBmb3IgaWYgdGhlIGxo
cyBpcyB0cnV0aHkKKworICAgICAgICBUaGlzIHNob3J0IGNpcmN1aXRpbmcgY2FuIGJlIGJlbmVm
aWNpYWwgYXMgaXQgY2FuIGF2b2lkIGEgcmVkdW5kYW50IHN0b3JlIHdoZW4gdXNlZCBpbiB0aGUK
KyAgICAgICAgY29tbW9uIEphdmFTY3JpcHQgcHJvZ3JhbW1pbmcgcGF0dGVybiBvZiAiZGVmYXVs
dGluZyIgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgYGBganMKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZvbyh4KSB7CisgICAgICAgICAgICAgICAgeCA9IHggfHwgNDI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIGBgYAorCisgICAgICAgIElmIGB4YCBpcyBhIHRydXRoeSB2YWx1ZSwgaXQgd291bGQg
cmVzdWx0IGluIHRoZSByaHMgYHhgIGJlaW5nIHN0b3JlZCBiYWNrIGludG8gdGhlIGxocyBgeGAu
CisgICAgICAgIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gaGF2ZSBuZWdhdGl2ZSB1bmlu
dGVuZGVkIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBmb3IgYGlubmVySFRNTGAuCisKKyAgICAgICAg
TG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycywgaG93ZXZlciwgYXJlIGRlZmluZWQgc3VjaCB0
aGF0IHRoZXkgb25seSBzdG9yZSBpZiB0aGUgcmhzIGlzCisgICAgICAgIHRvIGFjdHVhbGx5IGJl
IG5lZWRlZC91c2VkLCBza2lwcGluZyB0aGUgcmVkdW5kYW50IHN0b3JlIGFuZCBzaW1wbHkgcmV0
dXJuaW5nIGxocyBvdGhlcndpc2UuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcmVhZG9ubHkg
cmVmZXJlbmNlcywgdGhpcyBtZWFucyB0aGF0IGFuIGVycm9yIGlzIG9ubHkgdGhyb3duIHdoZW4g
dGhlCisgICAgICAgIGFzc2lnbm1lbnQgb2NjdXJzLCBtZWFuaW5nIHRoYXQgaWYgdGhlIGxocyBh
bHJlYWR5IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uIGl0IHdpbGwgYmUgdXNlZAorICAgICAgICBh
bmQgcmV0dXJuZWQgd2l0aCBubyBlcnJvci4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6bGV4V2l0aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGU6OlNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlKTogQWRkZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50
KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRN
b2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKworICAg
ICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEgYHVzZUxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0aGlzIGZlYXR1cmUu
CisKIDIwMjAtMDQtMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IERlYnVnZ2VyOiBkZWJ1ZyBob29rcyBzaG91bGQgYWxzbyBiZSBl
bWl0dGVkIGZvciB0aGUgZmlyc3Qgc3ViLWV4cHJlc3Npb24gaW4gYSBjb21tYSBleHByZXNzaW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKaW5kZXggYTVlNGNlYjQ2MmZhNDJjYWFjZTY0MjRhMjEwNjA2ODVkNTY5MmRiYS4uMjky
YWY1NGQ0ODkwZjQzMDI4YThmOGI3ZjRjNWJjNDQ5NmQwZDdkYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMjg1Niw2
ICsyODU2LDEwMyBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogICAgIHJldHVybiByZXR1cm5S
ZXN1bHQ7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworLy8gRklYTUU6IHNob3VsZCB0aGlzIGJlIG1vdmVkIHRvIGJlIGEgbWV0aG9kIG9uIEJ5
dGVjb2RlR2VuZXJhdG9yPworc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBlbWl0U2hvcnRDaXJj
dWl0QXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiB2
YWx1ZSwgT3BlcmF0b3Igb3BlciwgTGFiZWwmIHNob3J0Q2lyY3VpdExhYmVsKQoreworICAgIHN3
aXRjaCAob3BlcikgeworICAgIGNhc2UgT3BlcmF0b3I6OkNvYWxlc2NlRXE6CisgICAgICAgIGdl
bmVyYXRvci5lbWl0SnVtcElmRmFsc2UoZ2VuZXJhdG9yLmVtaXRJc1VuZGVmaW5lZE9yTnVsbChn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHZhbHVlKSwgc2hvcnRDaXJjdWl0TGFiZWwpOworICAg
ICAgICBicmVhazsKKworICAgIGNhc2UgT3BlcmF0b3I6Ok9yRXE6CisgICAgICAgIGdlbmVyYXRv
ci5lbWl0SnVtcElmVHJ1ZSh2YWx1ZSwgc2hvcnRDaXJjdWl0TGFiZWwpOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgT3BlcmF0b3I6OkFuZEVxOgorICAgICAgICBnZW5lcmF0b3IuZW1pdEp1
bXBJZkZhbHNlKHZhbHVlLCBzaG9ydENpcmN1aXRMYWJlbCk7CisgICAgICAgIGJyZWFrOworCisg
ICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorfQorCitSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5
UmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBS
ZWdpc3RlcklEKiBkc3QpCit7CisgICAgSlNUZXh0UG9zaXRpb24gbmV3RGl2b3QgPSBkaXZvdFN0
YXJ0KCkgKyBtX2lkZW50Lmxlbmd0aCgpOworCisgICAgVmFyaWFibGUgdmFyID0gZ2VuZXJhdG9y
LnZhcmlhYmxlKG1faWRlbnQpOworCisgICAgaWYgKFJlZlB0cjxSZWdpc3RlcklEPiBsb2NhbCA9
IHZhci5sb2NhbCgpKSB7CisgICAgICAgIGdlbmVyYXRvci5lbWl0VERaQ2hlY2tJZk5lY2Vzc2Fy
eSh2YXIsIGxvY2FsLmdldCgpLCBudWxscHRyKTsKKworICAgICAgICBpZiAodmFyLmlzUmVhZE9u
bHkoKSkgeworICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGxvY2FsOwor
CisgICAgICAgICAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5l
d0xhYmVsKCk7CisgICAgICAgICAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0
b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOwor
CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFJlYWRPbmx5RXhjZXB0aW9uSWZOZWVkZWQodmFy
KTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9u
KHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFi
ZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQ
cm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAg
ICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKGdlbmVyYXRvci5sZWZ0SGFuZFNpZGVOZWVkc0NvcHkobV9yaWdo
dEhhc0Fzc2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSkpIHsKKyAgICAgICAg
ICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7
CisgICAgICAgICAgICBnZW5lcmF0b3IubW92ZShyZXN1bHQuZ2V0KCksIGxvY2FsLmdldCgpKTsK
KworICAgICAgICAgICAgUmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9IGdlbmVyYXRvci5u
ZXdMYWJlbCgpOworICAgICAgICAgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJh
dG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsK
KworICAgICAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24o
cmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5tb3ZlKGxvY2Fs
LmdldCgpLCByZXN1bHQuZ2V0KCkpOworCisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVs
KHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHJv
ZmlsZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAg
ICAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKKyAgICAgICAg
fQorCisgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBsb2NhbDsKKworICAgICAg
ICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7Cisg
ICAgICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgp
LCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICAgICAgcmVzdWx0
ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0
KTsKKworICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgp
KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90
U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3Qs
IHJlc3VsdC5nZXQoKSk7CisgICAgfQorCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5m
byhuZXdEaXZvdCwgZGl2b3RTdGFydCgpLCBuZXdEaXZvdCk7CisgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgdmFyKTsKKwor
ICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEZyb21TY29w
ZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHNjb3BlLmdldCgpLCB2YXIsIFRocm93SWZOb3RG
b3VuZCk7CisgICAgZ2VuZXJhdG9yLmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5KHZhciwgcmVzdWx0
LmdldCgpLCBudWxscHRyKTsKKworICAgIFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBn
ZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5l
cmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkp
OworCisgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0
LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90
KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgaWYgKHZhci5pc1JlYWRPbmx5KCkp
CisgICAgICAgIGdlbmVyYXRvci5lbWl0UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIpOwor
ICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRUb1Njb3BlKHNjb3Bl
LmdldCgpLCB2YXIsIHJlc3VsdC5nZXQoKSwgVGhyb3dJZk5vdEZvdW5kLCBJbml0aWFsaXphdGlv
bk1vZGU6Ok5vdEluaXRpYWxpemF0aW9uKTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2hv
cnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVz
dWx0LmdldCgpLCB2YXIsIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgcmV0dXJuIGdl
bmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKIHN0YXRpYyBJbml0aWFsaXphdGlvbk1vZGUgaW5pdGlhbGl6YXRpb25N
b2RlRm9yQXNzaWdubWVudENvbnRleHQoQXNzaWdubWVudENvbnRleHQgYXNzaWdubWVudENvbnRl
eHQpCiB7CiAgICAgc3dpdGNoIChhc3NpZ25tZW50Q29udGV4dCkgewpAQCAtMjg3MSw4ICsyOTY4
LDYgQEAgc3RhdGljIEluaXRpYWxpemF0aW9uTW9kZSBpbml0aWFsaXphdGlvbk1vZGVGb3JBc3Np
Z25tZW50Q29udGV4dChBc3NpZ25tZW50Q29udGUKICAgICByZXR1cm4gSW5pdGlhbGl6YXRpb25N
b2RlOjpOb3RJbml0aWFsaXphdGlvbjsKIH0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KIFJlZ2lzdGVySUQqIEFzc2lnblJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIFZhcmlhYmxl
IHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2lkZW50KTsKQEAgLTI5NzMsNiArMzA2OCwzNyBA
QCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5RG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdAogICAgIHJldHVybiByZXQ7CiB9CiAKKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBTaG9ydENp
cmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBn
ZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFz
ZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2Jhc2UsIG1fcmlnaHRIYXNB
c3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOworICAgIFJlZlB0cjxSZWdp
c3RlcklEPiB0aGlzVmFsdWU7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0OworCisg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3QoKSwgc3Vi
ZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+
aXNTdXBlck5vZGUoKSkgeworICAgICAgICB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5zdXJlVGhp
cygpOworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLnRl
bXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1faWRlbnQp
OworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2Vu
ZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBtX2lkZW50KTsKKworICAg
IFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAg
ICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9v
cGVyYXRvciwgc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2VuZXJh
dG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBn
ZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RF
bmQoKSk7CisgICAgaWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkKKyAgICAgICAgcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXRQdXRCeUlkKGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgbV9pZGVu
dCwgcmVzdWx0LmdldCgpKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5l
bWl0UHV0QnlJZChiYXNlLmdldCgpLCBtX2lkZW50LCByZXN1bHQuZ2V0KCkpOworCisgICAgZ2Vu
ZXJhdG9yLmVtaXRMYWJlbChzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgZ2VuZXJhdG9y
LmVtaXRQcm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7
CisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKwogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2lnbkVycm9yTm9kZSAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZWdpc3RlcklEKiBBc3NpZ25FcnJvck5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikK
QEAgLTMwMzcsNiArMzE2MywzOCBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5QnJhY2tldE5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogICAgIHJldHVy
biB1cGRhdGVkVmFsdWU7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBT
aG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXRO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJ
RCogZHN0KQoreworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXRO
b2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFzZSwgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyB8fCBt
X3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fc3Vic2NyaXB0LT5pc1B1cmUoZ2VuZXJhdG9yKSAmJiBt
X3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3Bl
cnR5ID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlRm9yUHJvcGVydHkobV9zdWJz
Y3JpcHQsIG1fcmlnaHRIYXNBc3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikp
OworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzVmFsdWU7CisKKyAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gcmVzdWx0OworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHBy
ZXNzaW9uRGl2b3QoKSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7
CisgICAgaWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAgICAgICB0aGlzVmFsdWUgPSBn
ZW5lcmF0b3IuZW5zdXJlVGhpcygpOworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdl
dEJ5VmFsKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgdGhpc1Zh
bHVlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9
IGdlbmVyYXRvci5lbWl0R2V0QnlWYWwoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBi
YXNlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSk7CisKKyAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3Vp
dExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2ln
bm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3IsIHNob3J0Q2lyY3VpdExh
YmVsLmdldCgpKTsKKworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0
aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9u
SW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGlmIChtX2Jhc2Ut
PmlzU3VwZXJOb2RlKCkpCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlWYWwo
YmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSwgcmVzdWx0LmdldCgp
KTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlWYWwoYmFz
ZS5nZXQoKSwgcHJvcGVydHkuZ2V0KCksIHJlc3VsdC5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3Iu
ZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFBy
b2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBy
ZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29tbWFOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCiBSZWdpc3RlcklEKiBDb21tYU5vZGU6OmVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDQzYjE3MWZiYzRlN2IzNTlkYmU2ODI3
ZmE1ZGM1Yjg1YTg5ZWJmYzAuLmQ5NTU4MDhjNmEzMjhkY2UwNmRhNzNlNzUxZDYyMjM3ZGQ3N2Jh
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0xNTQ4
LDYgKzE1NDgsNyBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUFzc2lnbk5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcgogCiAgICAgaWYgKGxvYy0+aXNS
ZXNvbHZlTm9kZSgpKSB7CiAgICAgICAgIFJlc29sdmVOb2RlKiByZXNvbHZlID0gc3RhdGljX2Nh
c3Q8UmVzb2x2ZU5vZGUqPihsb2MpOworCiAgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6RXF1
YWwpIHsKICAgICAgICAgICAgIGlmIChleHByLT5pc0Jhc2VGdW5jRXhwck5vZGUoKSkgewogICAg
ICAgICAgICAgICAgIGF1dG8gbWV0YWRhdGEgPSBzdGF0aWNfY2FzdDxCYXNlRnVuY0V4cHJOb2Rl
Kj4oZXhwciktPm1ldGFkYXRhKCk7CkBAIC0xNTU4LDIxICsxNTU5LDQyIEBAIEV4cHJlc3Npb25O
b2RlKiBBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxv
Y2F0aW9uLCBFeHByCiAgICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBzdGFy
dCwgZGl2b3QsIGVuZCk7CiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgICAgfQorCisg
ICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6Q29hbGVzY2VFcSB8fCBvcCA9PSBPcGVyYXRvcjo6
T3JFcSB8fCBvcCA9PSBPcGVyYXRvcjo6QW5kRXEpCisgICAgICAgICAgICByZXR1cm4gbmV3ICht
X3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUobG9jYXRpb24s
IHJlc29sdmUtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2
b3QsIHN0YXJ0LCBlbmQpOworCiAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFJl
YWRNb2RpZnlSZXNvbHZlTm9kZShsb2NhdGlvbiwgcmVzb2x2ZS0+aWRlbnRpZmllcigpLCBvcCwg
ZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAgICAgfQorCiAg
ICAgaWYgKGxvYy0+aXNCcmFja2V0QWNjZXNzb3JOb2RlKCkpIHsKICAgICAgICAgQnJhY2tldEFj
Y2Vzc29yTm9kZSogYnJhY2tldCA9IHN0YXRpY19jYXN0PEJyYWNrZXRBY2Nlc3Nvck5vZGUqPihs
b2MpOworCiAgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6RXF1YWwpCiAgICAgICAgICAgICBy
ZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBc3NpZ25CcmFja2V0Tm9kZShsb2NhdGlvbiwgYnJh
Y2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgZXhwciwgbG9jSGFzQXNzaWdubWVu
dHMsIGV4cHJIYXNBc3NpZ25tZW50cywgYnJhY2tldC0+ZGl2b3QoKSwgc3RhcnQsIGVuZCk7CisK
KyAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpDb2FsZXNjZUVxIHx8IG9wID09IE9wZXJhdG9y
OjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkgeworICAgICAgICAgICAgYXV0byogbm9k
ZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2Rl
KGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBvcCwgZXhw
ciwgbG9jSGFzQXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBl
bmQpOworICAgICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2
b3QoKSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIG5v
ZGU7CisgICAgICAgIH0KKwogICAgICAgICBSZWFkTW9kaWZ5QnJhY2tldE5vZGUqIG5vZGUgPSBu
ZXcgKG1fcGFyc2VyQXJlbmEpIFJlYWRNb2RpZnlCcmFja2V0Tm9kZShsb2NhdGlvbiwgYnJhY2tl
dC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3AsIGV4cHIsIGxvY0hhc0Fzc2lnbm1l
bnRzLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKICAgICAgICAgbm9k
ZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2b3QoKSwgYnJhY2tldC0+ZGl2b3RF
bmQoKS5vZmZzZXQpOwogICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9CisKICAgICBBU1NFUlQo
bG9jLT5pc0RvdEFjY2Vzc29yTm9kZSgpKTsKICAgICBEb3RBY2Nlc3Nvck5vZGUqIGRvdCA9IHN0
YXRpY19jYXN0PERvdEFjY2Vzc29yTm9kZSo+KGxvYyk7CisKICAgICBpZiAob3AgPT0gT3BlcmF0
b3I6OkVxdWFsKQogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBc3NpZ25Eb3RO
b2RlKGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90LT5pZGVudGlmaWVyKCksIGV4cHIsIGV4cHJI
YXNBc3NpZ25tZW50cywgZG90LT5kaXZvdCgpLCBzdGFydCwgZW5kKTsKIAorICAgIGlmIChvcCA9
PSBPcGVyYXRvcjo6Q29hbGVzY2VFcSB8fCBvcCA9PSBPcGVyYXRvcjo6T3JFcSB8fCBvcCA9PSBP
cGVyYXRvcjo6QW5kRXEpIHsKKyAgICAgICAgYXV0byogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVu
YSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBk
b3QtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0
YXJ0LCBlbmQpOworICAgICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhkb3QtPmRpdm90
KCksIGRvdC0+ZGl2b3RFbmQoKS5vZmZzZXQpOworICAgICAgICByZXR1cm4gbm9kZTsKKyAgICB9
CisKICAgICBSZWFkTW9kaWZ5RG90Tm9kZSogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgUmVh
ZE1vZGlmeURvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwg
b3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwogICAgIG5v
ZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5kaXZvdEVuZCgpLm9m
ZnNldCk7CiAgICAgcmV0dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0xleGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIu
Y3BwCmluZGV4IDRmYjgzY2EzYTBhN2M4YWE5OTJkMjAyOWU5MDlhMDMyYzE1ZDkwMDYuLjlhYTI2
NzMwMzMwZDY1MzhmNDhiMGMwMTUzNmI3YzIzMjE1Mjc1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC0yMDg2LDYgKzIwODYsMTEgQEAgc3RhcnQ6CiAgICAgICAg
IHNoaWZ0KCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJyYnKSB7CiAgICAgICAgICAgICBz
aGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxvZ2ljYWxBc3Np
Z25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gQU5ERVFVQUw7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tlbiA9IEFORDsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMTIzLDYgKzIxMjgsMTEgQEAgc3RhcnQ6
CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnfCcpIHsKICAgICAgICAgICAg
IHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlTG9naWNhbEFz
c2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0nKSkgeworICAgICAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBPUkVRVUFMOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBPUjsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMTU5LDYgKzIxNjksMTEgQEAgc3RhcnQ6
CiAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJz8nKSB7CiAgICAg
ICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxv
Z2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAg
ICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gQ09BTEVTQ0VFUVVB
TDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRv
a2VuID0gQ09BTEVTQ0U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCBmZDk3YTBj
YTkzNWU3ZTU3NzhhMDkzODUwMjJmOTg2NzgwMTRhMzI0Li5hZjA0MzQ1OGE0Mzc2MTYyNDQxYjYy
NDA4MTA5ZGU1OGEyMmI1ZWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaApAQCAtNzE4LDYgKzcxOCwxNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICB7CiAgICAgfQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZl
Tm9kZTo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBPcGVyYXRvciBvcGVyLCBF
eHByZXNzaW9uTm9kZSogIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKKyAgICAgICAgOiBFeHByZXNzaW9uTm9kZShs
b2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RT
dGFydCwgZGl2b3RFbmQpCisgICAgICAgICwgbV9pZGVudChpZGVudCkKKyAgICAgICAgLCBtX3Jp
Z2h0KHJpZ2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3JpZ2h0
SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7CisgICAgfQorCiAgICAg
aW5saW5lIEFzc2lnblJlc29sdmVOb2RlOjpBc3NpZ25SZXNvbHZlTm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgRXhwcmVzc2lvbk5v
ZGUqIHJpZ2h0LCBBc3NpZ25tZW50Q29udGV4dCBhc3NpZ25tZW50Q29udGV4dCkKICAgICAgICAg
OiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX2lkZW50KGlkZW50KQpAQCAt
NzM5LDYgKzc0OSwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgfQogCisgICAgaW5s
aW5lIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZTo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeUJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Np
b25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBPcGVyYXRvciBvcGVyLCBF
eHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wg
cmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5k
KQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIFRocm93YWJs
ZVN1YkV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKKyAgICAgICAg
LCBtX2Jhc2UoYmFzZSkKKyAgICAgICAgLCBtX3N1YnNjcmlwdChzdWJzY3JpcHQpCisgICAgICAg
ICwgbV9yaWdodChyaWdodCkKKyAgICAgICAgLCBtX29wZXJhdG9yKG9wZXIpCisgICAgICAgICwg
bV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyhzdWJzY3JpcHRIYXNBc3NpZ25tZW50cykKKyAgICAg
ICAgLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7Cisg
ICAgfQorCiAgICAgaW5saW5lIEFzc2lnbkJyYWNrZXROb2RlOjpBc3NpZ25CcmFja2V0Tm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhw
cmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNj
cmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2Nh
dGlvbikKICAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFy
dCwgZGl2b3RFbmQpCkBAIC03NzEsNiArNzkzLDE3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsK
ICAgICB9CiAKKyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGU6OlNob3J0
Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24s
IEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgT3BlcmF0b3Ig
b3BlciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3Rh
cnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKKyAgICAgICAgOiBFeHByZXNzaW9u
Tm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YShkaXZv
dCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisgICAgICAgICwgbV9iYXNlKGJhc2UpCisgICAgICAg
ICwgbV9pZGVudChpZGVudCkKKyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQorICAgICAgICAsIG1f
b3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMocmlnaHRIYXNB
c3NpZ25tZW50cykKKyAgICB7CisgICAgfQorCiAgICAgaW5saW5lIEFzc2lnbkVycm9yTm9kZTo6
QXNzaWduRXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShs
b2NhdGlvbikKICAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RT
dGFydCwgZGl2b3RFbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5kZXggMjJk
ZjVhZTRkMDhlNTg2ZTc4ZjhiMzliMmJiZjVhNjhmZjE4ZTY1ZC4uYzI5NzRlYWQxMDEwYWMzMmJh
MzE4M2RjZWUxMWQ0NThiN2MwMGQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMu
aApAQCAtNjgsNiArNjgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQml0T3JFcSwKICAg
ICAgICAgTW9kRXEsCiAgICAgICAgIFBvd0VxLAorICAgICAgICBDb2FsZXNjZUVxLAorICAgICAg
ICBPckVxLAorICAgICAgICBBbmRFcSwKICAgICAgICAgTFNoaWZ0LAogICAgICAgICBSU2hpZnQs
CiAgICAgICAgIFVSU2hpZnQKQEAgLTEzODksNiArMTM5MiwxOSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHM7CiAgICAgfTsKIAorICAgIGNsYXNz
IFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNz
aW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiAgcmln
aHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90RW5kKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAg
ICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fcmlnaHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9y
aWdodEhhc0Fzc2lnbm1lbnRzOworICAgIH07CisKICAgICBjbGFzcyBBc3NpZ25SZXNvbHZlTm9k
ZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Np
b25EYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2lnblJlc29sdmVOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9uTm9kZSogcmlnaHQs
IEFzc2lnbm1lbnRDb250ZXh0KTsKQEAgLTE0MTgsNiArMTQzNCwyMSBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOwogICAgIH07CiAKKyAg
ICBjbGFzcyBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUgZmluYWwgOiBwdWJsaWMg
RXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YSB7CisgICAg
cHVibGljOgorICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBz
dWJzY3JpcHQsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0
SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3Zl
cnJpZGU7CisKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKKyAgICAgICAgRXhwcmVz
c2lvbk5vZGUqIG1fc3Vic2NyaXB0OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsK
KyAgICAgICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsKKyAgICAgICAgYm9vbCBtX3N1YnNjcmlwdEhh
c0Fzc2lnbm1lbnRzIDogMTsKKyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAx
OworICAgIH07CisKICAgICBjbGFzcyBBc3NpZ25CcmFja2V0Tm9kZSBmaW5hbCA6IHB1YmxpYyBF
eHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIEFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4
cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHByZXNzaW9u
Tm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNB
c3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKQEAgLTE0
NTksNiArMTQ5MCwyMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBtX3JpZ2h0SGFz
QXNzaWdubWVudHMgOiAxOwogICAgIH07CiAKKyAgICBjbGFzcyBTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5RG90Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJs
ZVN1YkV4cHJlc3Npb25EYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNob3J0Q2lyY3VpdFJl
YWRNb2RpZnlEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBi
YXNlLCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAg
ICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lk
ZW50OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAgICAgT3BlcmF0b3Ig
bV9vcGVyYXRvcjsKKyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOworICAg
IH07CisKICAgICBjbGFzcyBBc3NpZ25FcnJvck5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lv
bk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAg
ICAgICBBc3NpZ25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcAppbmRleCBkZDI1MWY3YWJlNzViZmJjZTBhMzliOGMwZWVmNTViMmQ0MWJmNzA5Li5h
Mzk3MTllYjc0YWViOTY2Njk3MGNkZjNkNzg2ZDQwZDI5MWUwMWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0zODQ3LDcgKzM4NDcsNyBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+Ojpw
YXJzZUFzc2lnbm1lbgogCiAgICAgZmFpbElmRmFsc2UobGhzLCAiQ2Fubm90IHBhcnNlIGV4cHJl
c3Npb24iKTsKICAgICBpZiAoaW5pdGlhbE5vbkxIU0NvdW50ICE9IG1fcGFyc2VyU3RhdGUubm9u
TEhTQ291bnQpIHsKLSAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9r
ZW4ubV90eXBlIDw9IEJJVE9SRVFVQUwpCisgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBF
UVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBBTkRFUVVBTCkKICAgICAgICAgICAgIHNlbWFudGlj
RmFpbCgiTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJyIsIGdldFRva2VuKCksICInIG11c3Qg
YmUgYSByZWZlcmVuY2UiKTsKIAogICAgICAgICByZXR1cm4gbGhzOwpAQCAtMzg3MSw2ICszODcx
LDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAgICAgY2FzZSBCSVRPUkVRVUFMOiBv
cCA9IE9wZXJhdG9yOjpCaXRPckVxOyBicmVhazsKICAgICAgICAgY2FzZSBNT0RFUVVBTDogb3Ag
PSBPcGVyYXRvcjo6TW9kRXE7IGJyZWFrOwogICAgICAgICBjYXNlIFBPV0VRVUFMOiBvcCA9IE9w
ZXJhdG9yOjpQb3dFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgQ09BTEVTQ0VFUVVBTDogb3AgPSBP
cGVyYXRvcjo6Q29hbGVzY2VFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgT1JFUVVBTDogb3AgPSBP
cGVyYXRvcjo6T3JFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgQU5ERVFVQUw6IG9wID0gT3BlcmF0
b3I6OkFuZEVxOyBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGdvdG8gZW5k
OwogICAgICAgICB9CkBAIC0zODkwLDcgKzM4OTMsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJl
ZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1l
bgogICAgICAgICBsaHMgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKGNvbnRleHQpOwogICAg
ICAgICBmYWlsSWZGYWxzZShsaHMsICJDYW5ub3QgcGFyc2UgdGhlIHJpZ2h0IGhhbmQgc2lkZSBv
ZiBhbiBhc3NpZ25tZW50IGV4cHJlc3Npb24iKTsKICAgICAgICAgaWYgKGluaXRpYWxOb25MSFND
b3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAgICAgICAgICBpZiAobV90
b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQklUT1JFUVVBTCkKKyAg
ICAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8
PSBBTkRFUVVBTCkKICAgICAgICAgICAgICAgICBzZW1hbnRpY0ZhaWwoIkxlZnQgaGFuZCBzaWRl
IG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAiJyBtdXN0IGJlIGEgcmVmZXJlbmNlIik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggNDgxODFhZTBkNGI5MzM4OTRmOGU0ZjJiZGZkYjYyZTgx
MzgzZDJjNS4uZGUwZWJlYWY4NWZkNzEyMzcxN2Y4NzcxMTI3ZjcxOTIzZmZlNjc0OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCkBAIC0xMzQsNiArMTM0
LDkgQEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgQklUQU5ERVFVQUwsCiAgICAgQklUWE9SRVFV
QUwsCiAgICAgQklUT1JFUVVBTCwKKyAgICBDT0FMRVNDRUVRVUFMLAorICAgIE9SRVFVQUwsCisg
ICAgQU5ERVFVQUwsCiAgICAgRE9URE9URE9ULAogICAgIEFSUk9XRlVOQ1RJT04sCiAgICAgUVVF
U1RJT05ET1QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApp
bmRleCA5OTY5NGQwMTI3YmFlMWNlYTVjZjYzZmE5Y2RkOTc3MDAwY2I3YWE0Li5jMjhiZmMzNGJm
ZTgwZjc2MzRhNDBlMWYzOGQwMjk3YjZhNzBkNzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTUwMCw2ICs1MDAsNyBAQCBjb25zdGV4cHIgYm9v
bCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAgIHYoQm9vbCwgZm9y
Y2VPU1JFeGl0VG9MTEludCwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIHdlIGFsd2F5cyBleGl0
IHRvIHRoZSBMTEludC4gSWYgZmFsc2UsIHdlIGV4aXQgdG8gd2hhdGV2ZXIgaXMgbW9zdCBjb252
ZW5pZW50LiIpIFwKICAgICB2KFVuc2lnbmVkLCBnZXRCeVZhbElDTWF4TnVtYmVyT2ZJZGVudGlm
aWVycywgNCwgTm9ybWFsLCAiTnVtYmVyIG9mIGlkZW50aWZpZXJzIHdlIHNlZSBpbiB0aGUgTExJ
bnQgdGhhdCBjb3VsZCBjYXVzZSB1cyB0byBiYWlsIG9uIGdlbmVyYXRpbmcgYW4gSUMgZm9yIGdl
dF9ieV92YWwuIikgXAogICAgIHYoQm9vbCwgdXNlUHVibGljQ2xhc3NGaWVsZHMsIHRydWUsIE5v
cm1hbCwgIklmIHRydWUsIHRoZSBwYXJzZXIgd2lsbCB1bmRlcnN0YW5kIHB1YmxpYyBkYXRhIGZp
ZWxkcyBpbnNpZGUgY2xhc3Nlcy4iKSBcCisgICAgdihCb29sLCB1c2VMb2dpY2FsQXNzaWdubWVu
dE9wZXJhdG9ycywgZmFsc2UsIE5vcm1hbCwgIkVuYWJsZSBzdXBwb3J0IGZvciBcP1w/PSwgfHw9
LCBhbmQgJiY9IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMuIikgXAogICAgIHYoQm9vbCwg
dXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbiwgZmFsc2UsIE5vcm1hbCwg
IkZvciB0aGUgYXJtNjQgRXhlY3V0YWJsZUFsbG9jYXRvciwgaWYgdHJ1ZSwgc2VsZWN0IHdoaWNo
IHJlZ2lvbiB0byB1c2UgcmFuZG9tbHkuIFRoaXMgaXMgdXNlZnVsIGZvciB0ZXN0aW5nIHRoYXQg
anVtcCBpc2xhbmRzIHdvcmsuIikgXAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYjljYmNmYmM2
NGFiMzIyM2VjNGI3MjEyMmIxZGRiOTUwYWFjNGFlLi4yOTRjMjUzZmExY2U1ZmVlMGExODVmMTBi
OWE1OTlhNmQ0MWMyNTBhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDQtMDkgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtFU05leHRdIEltcGxlbWVudCBsb2dpY2FsIGFz
c2lnbm1lbnQgb3BlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIwMjAtMDQtMDkg
IEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtld3NdIHJl
bmFtZSBDb21waWxlSlNDVG9UIHRvIENvbXBpbGVKU0NXaXRob3V0UGF0Y2gKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1q
c2Mtc3RyZXNzLXRlc3RzCmluZGV4IDdiZGE2MTc3ZDY0MDA5YzI2NWJjN2M0MDg3MWEzMGY3NDQ3
ZDUxNmIuLmM0ZTA4ZjBmZjRmNmRiYmE3ODEzZmFhYzllODcxNjNhZmJjODA0NzcgMTAwNzU1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0
cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNzg3LDYgKzc4NywxMCBAQCBkZWYgcnVuTWluaU1v
ZGUoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICBydW4oIm1pbmktbW9kZSIsICIt
LWZvcmNlTWluaVZNTW9kZT10cnVlIiwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKIGVu
ZAogCitkZWYgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkKCpvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpCisgICAgcnVuKCJsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3Jz
LWVuYWJsZWQiLCAiLS11c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycz10cnVlIiAsICooRlRM
X09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorZW5kCisKIGRlZiBkZWZh
dWx0UnVuCiAgICAgaWYgJG1vZGUgPT0gInF1aWNrIgogICAgICAgICBkZWZhdWx0UXVpY2tSdW4K
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YWNkM2U0NDY4M2FiMTYyMmVmMWI3ODNlMzMyZTk3MTBkMzk2ZjE0Mi4uNTNjMjk0NWI4NjE2M2Y3
YTFiODdkZTU0ZGU0ZGExNmZlYzk1ODJmYyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNC0wMSAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW0VTTmV4dF0gSW1wbGVt
ZW50IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVy
YXRvci1hbmQuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQt
b3BlcmF0b3ItY29hbGVzY2UuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9sb2dpY2FsLWFz
c2lnbm1lbnQtb3BlcmF0b3Itb3IuanM6IEFkZGVkLgorCisgICAgICAgICogdGVzdDI2Mi9jb25m
aWcueWFtbDoKKwogMjAyMC0wNC0wOSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZSBjYW4gc3RpbGwgY2FjaGUgZGVsZXRlIGluIHN0cmljdCBtb2RlIGFzIGxv
bmcgYXMgdGhlIHByb3BlcnR5IGlzIG5vdCAibm9uLWNvbmZpZ3VyYWJsZSIKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFt
bAppbmRleCAwYjZiNTZlOGMxZDJjZTEwYTZlNjNjYjQ3MDJmODA5NDBjN2UwYTU4Li4zMjRlOGVi
MjBkMmZkOTFmYjg5OWQ0NDNjM2JmYmQwZGZjZWZmYTY0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rl
c3QyNjIvY29uZmlnLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC00
LDYgKzQsNyBAQCBmbGFnczoKICAgQmlnSW50OiB1c2VCaWdJbnQKICAgV2Vha1JlZjogdXNlV2Vh
a1JlZnMKICAgY2xhc3MtZmllbGRzLXB1YmxpYzogdXNlUHVibGljQ2xhc3NGaWVsZHMKKyAgbG9n
aWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yczogdXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMK
IHNraXA6CiAgIGZlYXR1cmVzOgogICAgIC0gU2hhcmVkQXJyYXlCdWZmZXIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396017</attachid>
            <date>2020-04-09 15:01:55 -0700</date>
            <delta_ts>2020-04-09 15:05:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200409160154.patch</filename>
            <type>text/plain</type>
            <size>86715</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3NjQzNzg5MDBjODZkOWZmMDc4YWY2NzEzY2Qx
M2EyYjUxMzk4ZGUuLjhhOWRkOTgzYjgxNTE2ZDE3ZDI5MDk4ZDVhODM1NTcyMjQyMDkyODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTA5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBub3cgU3RhZ2UgMy4gSXQgaW50cm9kdWNlcwor
ICAgICAgICB0aHJlZSBuZXcgYXNzaWdubWVudCBvcGVyYXRvcnMgd2hpY2ggd2lsbCBvbmx5IHN0
b3JlIHRoZSByZXN1bHQgb2YgdGhlIHJocyBpbiB0aGUgbGhzIGlmIHRoZQorICAgICAgICBsaHMg
bWVldHMgdGhlIGdpdmVuIGNvbmRpdGlvbjoKKyAgICAgICAgIC0gYD8/PWAsIGZvciBpZiB0aGUg
bGhzIGlzIG51bGxpc2ggKGBudWxsYCBvciBgdW5kZWZpbmVkYCkKKyAgICAgICAgIC0gYHx8PWAs
IGZvciBpZiB0aGUgbGhzIGlzIGZhbHN5CisgICAgICAgICAtIGAmJj1gLCBmb3IgaWYgdGhlIGxo
cyBpcyB0cnV0aHkKKworICAgICAgICBUaGlzIHNob3J0IGNpcmN1aXRpbmcgY2FuIGJlIGJlbmVm
aWNpYWwgYXMgaXQgY2FuIGF2b2lkIGEgcmVkdW5kYW50IHN0b3JlIHdoZW4gdXNlZCBpbiB0aGUK
KyAgICAgICAgY29tbW9uIEphdmFTY3JpcHQgcHJvZ3JhbW1pbmcgcGF0dGVybiBvZiAiZGVmYXVs
dGluZyIgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgYGBganMKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZvbyh4KSB7CisgICAgICAgICAgICAgICAgeCA9IHggfHwgNDI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIGBgYAorCisgICAgICAgIElmIGB4YCBpcyBhIHRydXRoeSB2YWx1ZSwgaXQgd291bGQg
cmVzdWx0IGluIHRoZSByaHMgYHhgIGJlaW5nIHN0b3JlZCBiYWNrIGludG8gdGhlIGxocyBgeGAu
CisgICAgICAgIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gaGF2ZSBuZWdhdGl2ZSB1bmlu
dGVuZGVkIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBmb3IgYGlubmVySFRNTGAuCisKKyAgICAgICAg
TG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycywgaG93ZXZlciwgYXJlIGRlZmluZWQgc3VjaCB0
aGF0IHRoZXkgb25seSBzdG9yZSBpZiB0aGUgcmhzIGlzCisgICAgICAgIHRvIGFjdHVhbGx5IGJl
IG5lZWRlZC91c2VkLCBza2lwcGluZyB0aGUgcmVkdW5kYW50IHN0b3JlIGFuZCBzaW1wbHkgcmV0
dXJuaW5nIGxocyBvdGhlcndpc2UuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcmVhZG9ubHkg
cmVmZXJlbmNlcywgdGhpcyBtZWFucyB0aGF0IGFuIGVycm9yIGlzIG9ubHkgdGhyb3duIHdoZW4g
dGhlCisgICAgICAgIGFzc2lnbm1lbnQgb2NjdXJzLCBtZWFuaW5nIHRoYXQgaWYgdGhlIGxocyBh
bHJlYWR5IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uIGl0IHdpbGwgYmUgdXNlZAorICAgICAgICBh
bmQgcmV0dXJuZWQgd2l0aCBubyBlcnJvci4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6bGV4V2l0aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGU6OlNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlKTogQWRkZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50
KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRN
b2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKworICAg
ICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEgYHVzZUxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0aGlzIGZlYXR1cmUu
CisKIDIwMjAtMDQtMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IERlYnVnZ2VyOiBkZWJ1ZyBob29rcyBzaG91bGQgYWxzbyBiZSBl
bWl0dGVkIGZvciB0aGUgZmlyc3Qgc3ViLWV4cHJlc3Npb24gaW4gYSBjb21tYSBleHByZXNzaW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKaW5kZXggYTVlNGNlYjQ2MmZhNDJjYWFjZTY0MjRhMjEwNjA2ODVkNTY5MmRiYS4uYjg4
Y2Y1MmU0ZmFiOTFkYTM1MGVlNDdiOWM4MDYzZDUwOTBlMGMxNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMjg1Niw2
ICsyODU2LDEwMyBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogICAgIHJldHVybiByZXR1cm5S
ZXN1bHQ7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworLy8gRklYTUU6IHNob3VsZCB0aGlzIGJlIG1vdmVkIHRvIGJlIGEgbWV0aG9kIG9uIEJ5
dGVjb2RlR2VuZXJhdG9yPworc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBlbWl0U2hvcnRDaXJj
dWl0QXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiB2
YWx1ZSwgT3BlcmF0b3Igb3BlciwgTGFiZWwmIHNob3J0Q2lyY3VpdExhYmVsKQoreworICAgIHN3
aXRjaCAob3BlcikgeworICAgIGNhc2UgT3BlcmF0b3I6Ok51bGxpc2hFcToKKyAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXRKdW1wSWZGYWxzZShnZW5lcmF0b3IuZW1pdElzVW5kZWZpbmVkT3JOdWxsKGdl
bmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgdmFsdWUpLCBzaG9ydENpcmN1aXRMYWJlbCk7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBPcGVyYXRvcjo6T3JFcToKKyAgICAgICAgZ2VuZXJhdG9y
LmVtaXRKdW1wSWZUcnVlKHZhbHVlLCBzaG9ydENpcmN1aXRMYWJlbCk7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBPcGVyYXRvcjo6QW5kRXE6CisgICAgICAgIGdlbmVyYXRvci5lbWl0SnVt
cElmRmFsc2UodmFsdWUsIHNob3J0Q2lyY3VpdExhYmVsKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICBicmVhazsKKyAgICB9Cit9CisKK1JlZ2lzdGVySUQqIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlS
ZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJl
Z2lzdGVySUQqIGRzdCkKK3sKKyAgICBKU1RleHRQb3NpdGlvbiBuZXdEaXZvdCA9IGRpdm90U3Rh
cnQoKSArIG1faWRlbnQubGVuZ3RoKCk7CisKKyAgICBWYXJpYWJsZSB2YXIgPSBnZW5lcmF0b3Iu
dmFyaWFibGUobV9pZGVudCk7CisKKyAgICBpZiAoUmVmUHRyPFJlZ2lzdGVySUQ+IGxvY2FsID0g
dmFyLmxvY2FsKCkpIHsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5
KHZhciwgbG9jYWwuZ2V0KCksIG51bGxwdHIpOworCisgICAgICAgIGlmICh2YXIuaXNSZWFkT25s
eSgpKSB7CisgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0ID0gbG9jYWw7CisK
KyAgICAgICAgICAgIFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3
TGFiZWwoKTsKKyAgICAgICAgICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRv
ciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisK
KyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIp
OworICAgICAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24o
cmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJl
bChzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFBy
b2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoZ2VuZXJhdG9yLmxlZnRIYW5kU2lkZU5lZWRzQ29weShtX3JpZ2h0
SGFzQXNzaWdubWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKSkgeworICAgICAgICAg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsK
KyAgICAgICAgICAgIGdlbmVyYXRvci5tb3ZlKHJlc3VsdC5nZXQoKSwgbG9jYWwuZ2V0KCkpOwor
CisgICAgICAgICAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5l
d0xhYmVsKCk7CisgICAgICAgICAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0
b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOwor
CisgICAgICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihy
ZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAgICAgICAgICAgZ2VuZXJhdG9yLm1vdmUobG9jYWwu
Z2V0KCksIHJlc3VsdC5nZXQoKSk7CisKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwo
c2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9m
aWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgICAg
ICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAgICB9
CisKKyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGxvY2FsOworCisgICAgICAg
IFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAg
ICAgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCks
IG1fb3BlcmF0b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgICAgICByZXN1bHQg
PSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQp
OworCisgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkp
OworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RT
dGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwg
cmVzdWx0LmdldCgpKTsKKyAgICB9CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZv
KG5ld0Rpdm90LCBkaXZvdFN0YXJ0KCksIG5ld0Rpdm90KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJ
RD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShudWxscHRyLCB2YXIpOworCisg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0RnJvbVNjb3Bl
KGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgc2NvcGUuZ2V0KCksIHZhciwgVGhyb3dJZk5vdEZv
dW5kKTsKKyAgICBnZW5lcmF0b3IuZW1pdFREWkNoZWNrSWZOZWNlc3NhcnkodmFyLCByZXN1bHQu
Z2V0KCksIG51bGxwdHIpOworCisgICAgUmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9IGdl
bmVyYXRvci5uZXdMYWJlbCgpOworICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVy
YXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7
CisKKyAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQu
Z2V0KCksIG1fcmlnaHQpOworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3Qo
KSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBpZiAodmFyLmlzUmVhZE9ubHkoKSkK
KyAgICAgICAgZ2VuZXJhdG9yLmVtaXRSZWFkT25seUV4Y2VwdGlvbklmTmVlZGVkKHZhcik7Cisg
ICAgZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdFB1dFRvU2NvcGUoc2NvcGUu
Z2V0KCksIHZhciwgcmVzdWx0LmdldCgpLCBUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9u
TW9kZTo6Tm90SW5pdGlhbGl6YXRpb24pOworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzaG9y
dENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1
bHQuZ2V0KCksIHZhciwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICByZXR1cm4gZ2Vu
ZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gQXNzaWduUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKwogc3RhdGljIEluaXRpYWxpemF0aW9uTW9kZSBpbml0aWFsaXphdGlvbk1v
ZGVGb3JBc3NpZ25tZW50Q29udGV4dChBc3NpZ25tZW50Q29udGV4dCBhc3NpZ25tZW50Q29udGV4
dCkKIHsKICAgICBzd2l0Y2ggKGFzc2lnbm1lbnRDb250ZXh0KSB7CkBAIC0yODcxLDggKzI5Njgs
NiBAQCBzdGF0aWMgSW5pdGlhbGl6YXRpb25Nb2RlIGluaXRpYWxpemF0aW9uTW9kZUZvckFzc2ln
bm1lbnRDb250ZXh0KEFzc2lnbm1lbnRDb250ZQogICAgIHJldHVybiBJbml0aWFsaXphdGlvbk1v
ZGU6Ok5vdEluaXRpYWxpemF0aW9uOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gQXNzaWduUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLQogUmVnaXN0ZXJJRCogQXNzaWduUmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAgVmFyaWFibGUg
dmFyID0gZ2VuZXJhdG9yLnZhcmlhYmxlKG1faWRlbnQpOwpAQCAtMjk3Myw2ICszMDY4LDM3IEBA
IFJlZ2lzdGVySUQqIFJlYWRNb2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0CiAgICAgcmV0dXJuIHJldDsKIH0KIAorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1JlZ2lzdGVySUQqIFNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdl
bmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNl
ID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFzZSwgbV9yaWdodEhhc0Fz
c2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IHRoaXNWYWx1ZTsKKworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQ7CisKKyAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHN1YmV4cHJlc3Npb25EaXZvdCgpLCBzdWJl
eHByZXNzaW9uU3RhcnQoKSwgc3ViZXhwcmVzc2lvbkVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5p
c1N1cGVyTm9kZSgpKSB7CisgICAgICAgIHRoaXNWYWx1ZSA9IGdlbmVyYXRvci5lbnN1cmVUaGlz
KCk7CisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IudGVt
cERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgbV9pZGVudCk7
CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5l
cmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIG1faWRlbnQpOworCisgICAg
UmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAg
IGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29w
ZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBnZW5lcmF0
b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAgIGdl
bmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVu
ZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKQorICAgICAgICByZXN1bHQgPSBn
ZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBtX2lkZW50
LCByZXN1bHQuZ2V0KCkpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVt
aXRQdXRCeUlkKGJhc2UuZ2V0KCksIG1faWRlbnQsIHJlc3VsdC5nZXQoKSk7CisKKyAgICBnZW5l
cmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsK
KyAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXNzaWduRXJyb3JOb2RlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJlZ2lzdGVySUQqIEFzc2lnbkVycm9yTm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqKQpA
QCAtMzAzNyw2ICszMTYzLDM4IEBAIFJlZ2lzdGVySUQqIFJlYWRNb2RpZnlCcmFja2V0Tm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlCiAgICAgcmV0dXJu
IHVwZGF0ZWRWYWx1ZTsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNo
b3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5v
ZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklE
KiBkc3QpCit7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5v
ZGVGb3JMZWZ0SGFuZFNpZGUobV9iYXNlLCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzIHx8IG1f
cmlnaHRIYXNBc3NpZ25tZW50cywgbV9zdWJzY3JpcHQtPmlzUHVyZShnZW5lcmF0b3IpICYmIG1f
cmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVy
dHkgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGVGb3JQcm9wZXJ0eShtX3N1YnNj
cmlwdCwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7
CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNWYWx1ZTsKKworICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiByZXN1bHQ7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHN1YmV4cHJl
c3Npb25EaXZvdCgpLCBzdWJleHByZXNzaW9uU3RhcnQoKSwgc3ViZXhwcmVzc2lvbkVuZCgpKTsK
KyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKSB7CisgICAgICAgIHRoaXNWYWx1ZSA9IGdl
bmVyYXRvci5lbnN1cmVUaGlzKCk7CisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0
QnlWYWwoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCB0aGlzVmFs
dWUuZ2V0KCksIHByb3BlcnR5LmdldCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJh
c2UuZ2V0KCksIHByb3BlcnR5LmdldCgpKTsKKworICAgIFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0
TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdu
bWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFi
ZWwuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRp
b24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25J
bmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+
aXNTdXBlck5vZGUoKSkKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRCeVZhbChi
YXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIHByb3BlcnR5LmdldCgpLCByZXN1bHQuZ2V0KCkp
OworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRCeVZhbChiYXNl
LmdldCgpLCBwcm9wZXJ0eS5nZXQoKSwgcmVzdWx0LmdldCgpKTsKKworICAgIGdlbmVyYXRvci5l
bWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJv
ZmlsZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIHJl
dHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cit9CisKIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb21tYU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKIFJlZ2lzdGVySUQqIENvbW1hTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXggNDNiMTcxZmJjNGU3YjM1OWRiZTY4Mjdm
YTVkYzViODVhODllYmZjMC4uNWUzNTNiZDE3NjNkOWUyZjc0ZDM2NDI0NGEwYjBkYWRkMjI1ODJi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTE1NDgs
NiArMTU0OCw3IEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByCiAKICAgICBpZiAobG9jLT5pc1Jl
c29sdmVOb2RlKCkpIHsKICAgICAgICAgUmVzb2x2ZU5vZGUqIHJlc29sdmUgPSBzdGF0aWNfY2Fz
dDxSZXNvbHZlTm9kZSo+KGxvYyk7CisKICAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpFcXVh
bCkgewogICAgICAgICAgICAgaWYgKGV4cHItPmlzQmFzZUZ1bmNFeHByTm9kZSgpKSB7CiAgICAg
ICAgICAgICAgICAgYXV0byBtZXRhZGF0YSA9IHN0YXRpY19jYXN0PEJhc2VGdW5jRXhwck5vZGUq
PihleHByKS0+bWV0YWRhdGEoKTsKQEAgLTE1NTgsMjEgKzE1NTksNDIgQEAgRXhwcmVzc2lvbk5v
ZGUqIEFTVEJ1aWxkZXI6Om1ha2VBc3NpZ25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9j
YXRpb24sIEV4cHIKICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIHN0YXJ0
LCBkaXZvdCwgZW5kKTsKICAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgICB9CisKKyAg
ICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpOdWxsaXNoRXEgfHwgb3AgPT0gT3BlcmF0b3I6Ok9y
RXEgfHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVxKQorICAgICAgICAgICAgcmV0dXJuIG5ldyAobV9w
YXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlKGxvY2F0aW9uLCBy
ZXNvbHZlLT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90
LCBzdGFydCwgZW5kKTsKKwogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBSZWFk
TW9kaWZ5UmVzb2x2ZU5vZGUobG9jYXRpb24sIHJlc29sdmUtPmlkZW50aWZpZXIoKSwgb3AsIGV4
cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwogICAgIH0KKwogICAg
IGlmIChsb2MtPmlzQnJhY2tldEFjY2Vzc29yTm9kZSgpKSB7CiAgICAgICAgIEJyYWNrZXRBY2Nl
c3Nvck5vZGUqIGJyYWNrZXQgPSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4obG9j
KTsKKwogICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkVxdWFsKQogICAgICAgICAgICAgcmV0
dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXNzaWduQnJhY2tldE5vZGUobG9jYXRpb24sIGJyYWNr
ZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRz
LCBleHBySGFzQXNzaWdubWVudHMsIGJyYWNrZXQtPmRpdm90KCksIHN0YXJ0LCBlbmQpOworCisg
ICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJhdG9yOjpP
ckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkgeworICAgICAgICAgICAgYXV0byogbm9kZSA9
IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlKGxv
Y2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBvcCwgZXhwciwg
bG9jSGFzQXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQp
OworICAgICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2b3Qo
KSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIG5vZGU7
CisgICAgICAgIH0KKwogICAgICAgICBSZWFkTW9kaWZ5QnJhY2tldE5vZGUqIG5vZGUgPSBuZXcg
KG1fcGFyc2VyQXJlbmEpIFJlYWRNb2RpZnlCcmFja2V0Tm9kZShsb2NhdGlvbiwgYnJhY2tldC0+
YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3AsIGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRz
LCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKICAgICAgICAgbm9kZS0+
c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2b3QoKSwgYnJhY2tldC0+ZGl2b3RFbmQo
KS5vZmZzZXQpOwogICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9CisKICAgICBBU1NFUlQobG9j
LT5pc0RvdEFjY2Vzc29yTm9kZSgpKTsKICAgICBEb3RBY2Nlc3Nvck5vZGUqIGRvdCA9IHN0YXRp
Y19jYXN0PERvdEFjY2Vzc29yTm9kZSo+KGxvYyk7CisKICAgICBpZiAob3AgPT0gT3BlcmF0b3I6
OkVxdWFsKQogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBc3NpZ25Eb3ROb2Rl
KGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90LT5pZGVudGlmaWVyKCksIGV4cHIsIGV4cHJIYXNB
c3NpZ25tZW50cywgZG90LT5kaXZvdCgpLCBzdGFydCwgZW5kKTsKIAorICAgIGlmIChvcCA9PSBP
cGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJhdG9yOjpPckVxIHx8IG9wID09IE9wZXJh
dG9yOjpBbmRFcSkgeworICAgICAgICBhdXRvKiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBT
aG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCksIGRvdC0+
aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQs
IGVuZCk7CisgICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwg
ZG90LT5kaXZvdEVuZCgpLm9mZnNldCk7CisgICAgICAgIHJldHVybiBub2RlOworICAgIH0KKwog
ICAgIFJlYWRNb2RpZnlEb3ROb2RlKiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBSZWFkTW9k
aWZ5RG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBvcCwg
ZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAgICAgbm9kZS0+
c2V0U3ViZXhwcmVzc2lvbkluZm8oZG90LT5kaXZvdCgpLCBkb3QtPmRpdm90RW5kKCkub2Zmc2V0
KTsKICAgICByZXR1cm4gbm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAK
aW5kZXggNGZiODNjYTNhMGE3YzhhYTk5MmQyMDI5ZTkwOWEwMzJjMTVkOTAwNi4uYmFlNWY2Zjgz
OTI5YjA4NTY4NTMzYTgyZjIxNjQzOTM3ODNiMjJkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5jcHAKQEAgLTIwODYsNiArMjA4NiwxMSBAQCBzdGFydDoKICAgICAgICAgc2hp
ZnQoKTsKICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnJicpIHsKICAgICAgICAgICAgIHNoaWZ0
KCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlTG9naWNhbEFzc2lnbm1l
bnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0nKSkgeworICAgICAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBBTkRFUVVBTDsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRva2VuID0gQU5EOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxMjMsNiArMjEyOCwxMSBAQCBzdGFydDoKICAg
ICAgICAgfQogICAgICAgICBpZiAobV9jdXJyZW50ID09ICd8JykgewogICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VMb2dpY2FsQXNzaWdu
bWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9PSAnPScpKSB7CisgICAgICAgICAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9IE9SRVFVQUw7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tlbiA9IE9SOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxNTksNiArMjE2OSwxMSBAQCBzdGFydDoKICAg
ICAgICAgc2hpZnQoKTsKICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnPycpIHsKICAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlTG9naWNh
bEFzc2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0nKSkgeworICAgICAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBOVUxMSVNIRVFVQUw7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tlbiA9
IENPQUxFU0NFOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggZmQ5N2EwY2E5MzVl
N2U1Nzc4YTA5Mzg1MDIyZjk4Njc4MDE0YTMyNC4uYWYwNDM0NThhNDM3NjE2MjQ0MWI2MjQwODEw
OWRlNThhMjJiNWVlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
Q29uc3RydWN0b3JzLmgKQEAgLTcxOCw2ICs3MTgsMTYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6
OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhwcmVz
c2lvbk5vZGUqICByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRp
b24pCisgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQs
IGRpdm90RW5kKQorICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdodChy
aWdodCkKKyAgICAgICAgLCBtX29wZXJhdG9yKG9wZXIpCisgICAgICAgICwgbV9yaWdodEhhc0Fz
c2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdubWVudHMpCisgICAgeworICAgIH0KKwogICAgIGlubGlu
ZSBBc3NpZ25SZXNvbHZlTm9kZTo6QXNzaWduUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEV4cHJlc3Npb25Ob2RlKiBy
aWdodCwgQXNzaWdubWVudENvbnRleHQgYXNzaWdubWVudENvbnRleHQpCiAgICAgICAgIDogRXhw
cmVzc2lvbk5vZGUobG9jYXRpb24pCiAgICAgICAgICwgbV9pZGVudChpZGVudCkKQEAgLTczOSw2
ICs3NDksMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBT
aG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlC
cmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9k
ZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgT3BlcmF0b3Igb3BlciwgRXhwcmVz
c2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0
SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKKyAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2FibGVTdWJF
eHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisgICAgICAgICwgbV9i
YXNlKGJhc2UpCisgICAgICAgICwgbV9zdWJzY3JpcHQoc3Vic2NyaXB0KQorICAgICAgICAsIG1f
cmlnaHQocmlnaHQpCisgICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAsIG1fc3Vi
c2NyaXB0SGFzQXNzaWdubWVudHMoc3Vic2NyaXB0SGFzQXNzaWdubWVudHMpCisgICAgICAgICwg
bV9yaWdodEhhc0Fzc2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdubWVudHMpCisgICAgeworICAgIH0K
KwogICAgIGlubGluZSBBc3NpZ25CcmFja2V0Tm9kZTo6QXNzaWduQnJhY2tldE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Np
b25Ob2RlKiBzdWJzY3JpcHQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRI
YXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RFbmQpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24p
CiAgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQsIGRp
dm90RW5kKQpAQCAtNzcxLDYgKzc5MywxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAg
fQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlOjpTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5RG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHBy
ZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9wZXJhdG9yIG9wZXIs
IEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUo
bG9jYXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRp
dm90U3RhcnQsIGRpdm90RW5kKQorICAgICAgICAsIG1fYmFzZShiYXNlKQorICAgICAgICAsIG1f
aWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICAgICAgLCBtX29wZXJh
dG9yKG9wZXIpCisgICAgICAgICwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdu
bWVudHMpCisgICAgeworICAgIH0KKwogICAgIGlubGluZSBBc3NpZ25FcnJvck5vZGU6OkFzc2ln
bkVycm9yTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRp
b24pCiAgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQs
IGRpdm90RW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDIyZGY1YWU0
ZDA4ZTU4NmU3OGY4YjM5YjJiYmY1YTY4ZmYxOGU2NWQuLmI1MTU2MDRhNjhhYTZiZTQzOGY0ZGZl
NzlhYjRhODA0MmM4YWZkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAg
LTY4LDYgKzY4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEJpdE9yRXEsCiAgICAgICAg
IE1vZEVxLAogICAgICAgICBQb3dFcSwKKyAgICAgICAgTnVsbGlzaEVxLAorICAgICAgICBPckVx
LAorICAgICAgICBBbmRFcSwKICAgICAgICAgTFNoaWZ0LAogICAgICAgICBSU2hpZnQsCiAgICAg
ICAgIFVSU2hpZnQKQEAgLTEzODksNiArMTM5MiwxOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHM7CiAgICAgfTsKIAorICAgIGNsYXNzIFNob3J0
Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9k
ZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiAgcmlnaHQsIGJv
b2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
RW5kKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAg
Y29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmln
aHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9yaWdodEhh
c0Fzc2lnbm1lbnRzOworICAgIH07CisKICAgICBjbGFzcyBBc3NpZ25SZXNvbHZlTm9kZSBmaW5h
bCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRh
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2lnblJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIEFzc2ln
bm1lbnRDb250ZXh0KTsKQEAgLTE0MTgsNiArMTQzNCwyMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOwogICAgIH07CiAKKyAgICBjbGFz
cyBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVz
c2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGlj
OgorICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3Jp
cHQsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNz
aWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7
CisKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKKyAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fc3Vic2NyaXB0OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAg
ICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsKKyAgICAgICAgYm9vbCBtX3N1YnNjcmlwdEhhc0Fzc2ln
bm1lbnRzIDogMTsKKyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOworICAg
IH07CisKICAgICBjbGFzcyBBc3NpZ25CcmFja2V0Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNz
aW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIEFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Np
b25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHByZXNzaW9uTm9kZSog
cmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25t
ZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKQEAgLTE0NTksNiAr
MTQ5MCwyMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdu
bWVudHMgOiAxOwogICAgIH07CiAKKyAgICBjbGFzcyBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90
Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZVN1YkV4
cHJlc3Npb25EYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNob3J0Q2lyY3VpdFJlYWRNb2Rp
ZnlEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBj
b25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBy
aWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogbV9iYXNlOworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50Owor
ICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAgICAgT3BlcmF0b3IgbV9vcGVy
YXRvcjsKKyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOworICAgIH07CisK
ICAgICBjbGFzcyBBc3NpZ25FcnJvck5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUs
IHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBB
c3NpZ25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNw
cAppbmRleCBkZDI1MWY3YWJlNzViZmJjZTBhMzliOGMwZWVmNTViMmQ0MWJmNzA5Li45NzY3NTdi
ZDQ5NGRmYTkwYmJkMDI4ZjczZGM2OTNhMzUwNDkyYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCkBAIC0zODQ3LDcgKzM4NDcsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFz
c2lnbm1lbgogCiAgICAgZmFpbElmRmFsc2UobGhzLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24i
KTsKICAgICBpZiAoaW5pdGlhbE5vbkxIU0NvdW50ICE9IG1fcGFyc2VyU3RhdGUubm9uTEhTQ291
bnQpIHsKLSAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90
eXBlIDw9IEJJVE9SRVFVQUwpCisgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAm
JiBtX3Rva2VuLm1fdHlwZSA8PSBBTkRFUVVBTCkKICAgICAgICAgICAgIHNlbWFudGljRmFpbCgi
TGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJyIsIGdldFRva2VuKCksICInIG11c3QgYmUgYSBy
ZWZlcmVuY2UiKTsKIAogICAgICAgICByZXR1cm4gbGhzOwpAQCAtMzg3MSw2ICszODcxLDkgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAgICAgY2FzZSBCSVRPUkVRVUFMOiBvcCA9IE9w
ZXJhdG9yOjpCaXRPckVxOyBicmVhazsKICAgICAgICAgY2FzZSBNT0RFUVVBTDogb3AgPSBPcGVy
YXRvcjo6TW9kRXE7IGJyZWFrOwogICAgICAgICBjYXNlIFBPV0VRVUFMOiBvcCA9IE9wZXJhdG9y
OjpQb3dFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgTlVMTElTSEVRVUFMOiBvcCA9IE9wZXJhdG9y
OjpOdWxsaXNoRXE7IGJyZWFrOworICAgICAgICBjYXNlIE9SRVFVQUw6IG9wID0gT3BlcmF0b3I6
Ok9yRXE7IGJyZWFrOworICAgICAgICBjYXNlIEFOREVRVUFMOiBvcCA9IE9wZXJhdG9yOjpBbmRF
cTsgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBnb3RvIGVuZDsKICAgICAg
ICAgfQpAQCAtMzg5MCw3ICszODkzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVy
PiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAg
ICAgbGhzID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFp
bElmRmFsc2UobGhzLCAiQ2Fubm90IHBhcnNlIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgYW4gYXNz
aWdubWVudCBleHByZXNzaW9uIik7CiAgICAgICAgIGlmIChpbml0aWFsTm9uTEhTQ291bnQgIT0g
bV9wYXJzZXJTdGF0ZS5ub25MSFNDb3VudCkgewotICAgICAgICAgICAgaWYgKG1fdG9rZW4ubV90
eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90eXBlIDw9IEJJVE9SRVFVQUwpCisgICAgICAgICAg
ICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQU5ERVFV
QUwpCiAgICAgICAgICAgICAgICAgc2VtYW50aWNGYWlsKCJMZWZ0IGhhbmQgc2lkZSBvZiBvcGVy
YXRvciAnIiwgZ2V0VG9rZW4oKSwgIicgbXVzdCBiZSBhIHJlZmVyZW5jZSIpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyVG9rZW5zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
clRva2Vucy5oCmluZGV4IDQ4MTgxYWUwZDRiOTMzODk0ZjhlNGYyYmRmZGI2MmU4MTM4M2QyYzUu
LmQxYzQ3ZWZlMmNmYmE0M2NjOGM2ZmYwMGFmMmU5ODI0Y2FlYzY5NDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaApAQCAtMTM0LDYgKzEzNCw5IEBAIGVu
dW0gSlNUb2tlblR5cGUgewogICAgIEJJVEFOREVRVUFMLAogICAgIEJJVFhPUkVRVUFMLAogICAg
IEJJVE9SRVFVQUwsCisgICAgTlVMTElTSEVRVUFMLAorICAgIE9SRVFVQUwsCisgICAgQU5ERVFV
QUwsCiAgICAgRE9URE9URE9ULAogICAgIEFSUk9XRlVOQ1RJT04sCiAgICAgUVVFU1RJT05ET1Qs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCA5OTY5
NGQwMTI3YmFlMWNlYTVjZjYzZmE5Y2RkOTc3MDAwY2I3YWE0Li5jMjhiZmMzNGJmZTgwZjc2MzRh
NDBlMWYzOGQwMjk3YjZhNzBkNzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnNMaXN0LmgKQEAgLTUwMCw2ICs1MDAsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVX
ZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAgIHYoQm9vbCwgZm9yY2VPU1JFeGl0
VG9MTEludCwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIHdlIGFsd2F5cyBleGl0IHRvIHRoZSBM
TEludC4gSWYgZmFsc2UsIHdlIGV4aXQgdG8gd2hhdGV2ZXIgaXMgbW9zdCBjb252ZW5pZW50LiIp
IFwKICAgICB2KFVuc2lnbmVkLCBnZXRCeVZhbElDTWF4TnVtYmVyT2ZJZGVudGlmaWVycywgNCwg
Tm9ybWFsLCAiTnVtYmVyIG9mIGlkZW50aWZpZXJzIHdlIHNlZSBpbiB0aGUgTExJbnQgdGhhdCBj
b3VsZCBjYXVzZSB1cyB0byBiYWlsIG9uIGdlbmVyYXRpbmcgYW4gSUMgZm9yIGdldF9ieV92YWwu
IikgXAogICAgIHYoQm9vbCwgdXNlUHVibGljQ2xhc3NGaWVsZHMsIHRydWUsIE5vcm1hbCwgIklm
IHRydWUsIHRoZSBwYXJzZXIgd2lsbCB1bmRlcnN0YW5kIHB1YmxpYyBkYXRhIGZpZWxkcyBpbnNp
ZGUgY2xhc3Nlcy4iKSBcCisgICAgdihCb29sLCB1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9y
cywgZmFsc2UsIE5vcm1hbCwgIkVuYWJsZSBzdXBwb3J0IGZvciBcP1w/PSwgfHw9LCBhbmQgJiY9
IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMuIikgXAogICAgIHYoQm9vbCwgdXNlUmFuZG9t
aXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbiwgZmFsc2UsIE5vcm1hbCwgIkZvciB0aGUg
YXJtNjQgRXhlY3V0YWJsZUFsbG9jYXRvciwgaWYgdHJ1ZSwgc2VsZWN0IHdoaWNoIHJlZ2lvbiB0
byB1c2UgcmFuZG9tbHkuIFRoaXMgaXMgdXNlZnVsIGZvciB0ZXN0aW5nIHRoYXQganVtcCBpc2xh
bmRzIHdvcmsuIikgXAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYjljYmNmYmM2NGFiMzIyM2Vj
NGI3MjEyMmIxZGRiOTUwYWFjNGFlLi4yOTRjMjUzZmExY2U1ZmVlMGExODVmMTBiOWE1OTlhNmQ0
MWMyNTBhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDQtMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgorCisgICAgICAgIFtFU05leHRdIEltcGxlbWVudCBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIwMjAtMDQtMDkgIEFha2FzaCBK
YWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtld3NdIHJlbmFtZSBDb21w
aWxlSlNDVG9UIHRvIENvbXBpbGVKU0NXaXRob3V0UGF0Y2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNz
LXRlc3RzCmluZGV4IDdiZGE2MTc3ZDY0MDA5YzI2NWJjN2M0MDg3MWEzMGY3NDQ3ZDUxNmIuLmM0
ZTA4ZjBmZjRmNmRiYmE3ODEzZmFhYzllODcxNjNhZmJjODA0NzcgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cwpAQCAtNzg3LDYgKzc4NywxMCBAQCBkZWYgcnVuTWluaU1vZGUoKm9wdGlv
bmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICBydW4oIm1pbmktbW9kZSIsICItLWZvcmNlTWlu
aVZNTW9kZT10cnVlIiwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKIGVuZAogCitkZWYg
cnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkKCpvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpCisgICAgcnVuKCJsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzLWVuYWJsZWQi
LCAiLS11c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycz10cnVlIiAsICooRlRMX09QVElPTlMg
KyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorZW5kCisKIGRlZiBkZWZhdWx0UnVuCiAg
ICAgaWYgJG1vZGUgPT0gInF1aWNrIgogICAgICAgICBkZWZhdWx0UXVpY2tSdW4KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWNkM2U0NDY4
M2FiMTYyMmVmMWI3ODNlMzMyZTk3MTBkMzk2ZjE0Mi4uZjUxZDM2OGQ0MzkyZDZjYWRiYWYzMWQz
MTI1NzhiMjkzZDhjZjc2MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNC0wMSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW0VTTmV4dF0gSW1wbGVtZW50IGxvZ2lj
YWwgYXNzaWdubWVudCBvcGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwOTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQu
anM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3It
bnVsbGlzaC5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1v
cGVyYXRvci1vci5qczogQWRkZWQuCisKKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1sOgor
ICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisgICAgICAgIFJpZ2h0IG5vdywg
dGVzdDI2MiBleHBlY3RzIGFuIGVhcmx5IGVycm9yIHRvIGJlIHRocm93biBpZiB0aGUgbGhzIGlz
IG5vdCBzaW1wbGUsIHdoaWNoIGRvZXMKKyAgICAgICAgbm90IG1hdGNoIHdoYXQgd2UgZG8gd2l0
aCBvdGhlciByZWFkLW1vZGlmeSBhc3NpZ25tZW50IG9wZXJhdG9ycy4gVGhpcyBpcyBsaWtlbHkg
dG8gY2hhbmdlCisgICAgICAgIGluIHRoZSBmdXR1cmUgdG8gbWF0Y2ggZXhpc3RpbmcgYmVoYXZp
b3IgKHRocm93IGEgYFJlZmVyZW5jZUVycm9yYCkgWzFdLgorCisgICAgICAgIFsxXTogPGh0dHBz
Oi8vZ2l0aHViLmNvbS90YzM5L2VjbWEyNjIvaXNzdWVzLzI1NyNpc3N1ZWNvbW1lbnQtNTAyODc4
NzA4PgorCiAyMDIwLTA0LTA5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlIGNhbiBzdGlsbCBjYWNoZSBkZWxldGUgaW4gc3RyaWN0IG1vZGUgYXMgbG9uZyBh
cyB0aGUgcHJvcGVydHkgaXMgbm90ICJub24tY29uZmlndXJhYmxlIgpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLWFuZC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E1
MmQxZjJkMTQ2N2FiZTk2Y2EyMjkxYmMyYTg1YmZlZDAzMzhkYgotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQuanMKQEAgLTAs
MCArMSwxNjE2IEBACisvL0AgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkCisK
K2Z1bmN0aW9uIHNob3VsZEJlKGZ1bmMsIGV4cGVjdGVkKSB7CisgICAgbGV0IGFjdHVhbCA9IGZ1
bmMoKTsKKyAgICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAiZnVuY3Rpb24iID8gIShhY3R1YWwg
aW5zdGFuY2VvZiBleHBlY3RlZCkgOiBhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpfSBidXQgZ290
ICR7SlNPTi5zdHJpbmdpZnkoYWN0dWFsKX1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3co
ZnVuYywgZXJyb3JUeXBlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGZ1
bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAg
ICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vycm9yICYmIGVycm9y
Lm5hbWV9IWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvd1N5bnRheEVycm9yKHNjcmlwdCkg
eworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJy
b3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhw
ZWN0ZWQgU3ludGF4RXJyb3IgYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICByZXR1cm4geCAmJj0gNDI7
Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAg
ICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiB4ICYmPSA0MjsK
K30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5k
ZWZpbmVkOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIHJldHVybiB4ICYm
PSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51
bGw7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHJldHVybiB4ICYmPSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHgg
JiY9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IGZhbHNlOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSAwOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9
LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAxOworICAgIHJldHVy
biB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSAxOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICB4ICYmPSA0
MjsKKyAgICByZXR1cm4geDsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSAidGVzdCI7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4ICYmPSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
fTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHgg
JiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtd
OworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCAmJj0g
NDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gdW5kZWZpbmVkOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgdW5kZWZpbmVk
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IG51bGw7CisgICAgcmV0
dXJuIHggJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBudWxsOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgbnVsbCk7CisK
K3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0cnVlOworICAgIHJldHVy
biB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IDA7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4
OworfSwgMCk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOwor
ICAgIHJldHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSAiIjsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCAiIik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAiIjsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sICIiKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOwor
CitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJu
IHggJiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4
LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmlu
ZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9
OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4LmEgJiY9IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIG51bGwp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4
LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9Owor
ICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4LmEgJiY9IDQy
OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBm
YWxzZX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geC5h
ICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAwfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAwKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSAmJj0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9
OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4LmEgJiY9IDQy
OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07
CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgIiIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4LmEgJiY9
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAi
dGVzdCJ9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEg
JiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiB7fX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSAm
Jj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IFtdfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHguYSAm
Jj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge307CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVk
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9
OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSAmJj0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBu
dWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsK
KyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geC5hICYm
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiB0cnVlfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVy
biB4LmEgJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07
CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsK
KyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9
OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
InRlc3QifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHguYSAmJj0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHguYSAmJj0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHguYSAmJj0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCB1bmRlZmlu
ZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHhbImEi
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhb
ImEiXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJu
IHhbImEiXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgbnVsbCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHhbImEi
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1
ZX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJu
IHhbImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IDB9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gJiY9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07
CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEi
XSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IHt9fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICByZXR1
cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogW119OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsK
KyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9
LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
IHVuZGVmaW5lZH07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
dW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBu
dWxsfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHhbImEiXSAmJj0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9Owor
ICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHhb
ImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogZmFsc2V9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiAwfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHhbImEiXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCAi
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAg
IHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sICIiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJh
Il0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6ICJ0ZXN0In07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsK
KyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeFsiYSJdICYmPSA0
MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRlZmlu
ZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSAmJj0g
NDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFt1bmRlZmluZWRdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdW5k
ZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbbnVsbF07Cisg
ICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gW251bGxdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBd
OworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVd
OworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhb
MF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW2ZhbHNl
XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBbMF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOwor
ICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbMV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAgICBy
ZXR1cm4geFswXSAmJj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gWyIiXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRlc3QiXTsKKyAgICBy
ZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICBy
ZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW3t9XTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbW11dOworICAgIHJldHVy
biB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbW11dOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOwor
CisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVy
biB4WzBdICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBbXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdW5k
ZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFswXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsK
K30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxd
OworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgbnVsbCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0g
JiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W3RydWVdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICByZXR1cm4g
eFswXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbZmFsc2VdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
ZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOworICAg
IHJldHVybiB4WzBdICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gWzBdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
MCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgcmV0
dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gWzFdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICByZXR1
cm4geFswXSAmJj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbIiJdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgIiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyJ0ZXN0Il07CisgICAg
cmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOwor
ICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFt7fV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOwor
ICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNl
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgKyB6
OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNl
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPSB6
OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNl
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgJiYg
ejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxz
ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ID8/
IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFs
c2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSB8
fCB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZh
bHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkg
JiY9IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
ZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0g
eSA/Pz0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYm
PSB5IHx8PSB6OworfSwgZmFsc2UpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJu
IHggJiY9IHkgKyB6OworfSwgMyk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYm
PSB5ID0gejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRy
dWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSAm
JiB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsK
KyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ID8/IHo7
Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAg
IGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHwgejsKK30s
IDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0
IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSAmJj0gejsKK30sIDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkg
PSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA/Pz0gejsKK30sIDEpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAx
OworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSB8fD0gejsKK30sIDEpOworCisK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEg
PSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBh
ID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQg
Z2V0IHNldCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAg
ICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7
CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hICYmPSA0
MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBh
OworfSwgImdldCBnZXQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0IHggPSB7CisgICAg
ICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAg
cmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisK
KyAgICB4LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCB1bmRlZmluZWQiKTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAg
ICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikg
eworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAg
ICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsK
KworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCBz
ZXQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisg
ICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAg
fSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAg
ICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSAmJj0gNDI7
CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsg
YTsKK30sICJnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0geworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAg
IHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBs
b2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9Owor
CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisgICAgcmV0dXJuIGxv
Zy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdW5kZWZpbmVkIik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJl
bnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50
Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAg
dGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1j
aGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAg
ICAgc3VwZXIuYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENo
aWxkOworICAgIHguX2EgPSB0cnVlOworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsK
KworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQg
Z2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQt
cGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2Eg
JiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVy
LmEgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gZmFsc2U7CisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAg
cmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFy
ZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBh
KCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAg
ICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAg
ICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hICYmPSB2Owor
ICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVu
ZGVmaW5lZDsKKyAgICB4LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4g
bG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0
LWNoaWxkIGdldC1wYXJlbnQgdW5kZWZpbmVkIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAg
ICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAg
ICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSAm
Jj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHgu
X2EgPSB0cnVlOworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAg
IHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBh
cmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50
IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7
CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJh
Il0gJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gZmFsc2U7CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOwor
CisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBn
ZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2
OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAg
ICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7
CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlclsi
YSJdICYmPSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7Cisg
ICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNo
aWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdW5kZWZpbmVkIik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxl
OiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6
IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3Jp
dGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZp
bmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsK
KyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAg
ICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAg
ICByZXR1cm4geC5hICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0
YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVy
biB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgewor
ICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOwor
ICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsK
KyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7
CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJh
IiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2Us
CisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCisK
Kworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4
ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1
ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4
WyJhIl0gJiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5k
ZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhb
ImEiXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCAmJj0gNDI7
CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAg
ICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigp
IHsKKyAgICAgICAgcmV0dXJuIHggJiY9IDQyOworICAgIH0pKCk7Cit9LCB1bmRlZmluZWQpOwor
CisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAg
KGZ1bmN0aW9uKCkgeworICAgICAgICB4ICYmPSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4
OworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IGZhbHNlOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ICYmPSA0
MjsKKyAgICB9KSgpOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJl
dHVybiB4ICYmPSA0MjsKKyAgICB9KSgpOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRo
cm93KGZ1bmN0aW9uKCkgeworICAgIHggJiY9IDQyOworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBy
ZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIHJldHVybiB1bmRlZmluZWQgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxk
VGhyb3dTeW50YXhFcnJvcihgbnVsbCAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJv
cihgdHJ1ZSAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgZmFsc2UgJiY9IDQy
YCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYDAgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93
U3ludGF4RXJyb3IoYDEgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCIiICYm
PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAidGVzdCIgJiY9IDQyYCk7CisKK3No
b3VsZFRocm93U3ludGF4RXJyb3IoYHt9ICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVy
cm9yKGBbXSAmJj0gNDJgKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNz
aWdubWVudC1vcGVyYXRvci1vci5qcyBiL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVu
dC1vcGVyYXRvci1vci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGY4NjRhOTBhODRkOGIyNjFiMTY0ZDVkN2Vj
MWQyYTFmN2JlY2NjCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1h
c3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzCkBAIC0wLDAgKzEsMTYxMyBAQAorLy9AIHJ1bkxvZ2lj
YWxBc3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlvbiBzaG91bGRCZShmdW5jLCBl
eHBlY3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBmdW5jKCk7CisgICAgaWYgKHR5cGVvZiBleHBl
Y3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0
dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pT
T04uc3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9
YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxl
dCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBl
cnJvclR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBl
Lm5hbWV9IGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworZnVuY3Rpb24g
c2hvdWxkVGhyb3dTeW50YXhFcnJvcihzY3JpcHQpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5
IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJy
b3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3Ip
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFN5bnRheEVycm9yIGJ1dCBzYXcg
JHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHg7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAg
cmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHVuZGVmaW5lZDsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIHJldHVybiB4
IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBu
dWxsOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwg
dHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICB4
IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICB4IHx8PSA0MjsK
KyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSAwOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDE7CisgICAgcmV0dXJu
IHggfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
MTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDEpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICB4IHx8PSA0MjsK
KyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSAidGVzdCI7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAidGVzdCI7CisgICAgeCB8fD0gNDI7CisgICAg
cmV0dXJuIHg7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHt9OworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7
Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOwor
ICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbXTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIEFycmF5
KTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmlu
ZWQ7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3co
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IG51bGw7CisgICAgcmV0dXJuIHggfHw9IDQyOwor
fSwgVHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRy
dWU7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB0cnVlOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4Owor
fSwgdHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxz
ZTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBU
eXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAg
ICByZXR1cm4geCB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IDE7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAxKTsKKworc2hv
dWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICIiOworICAgIHJldHVybiB4IHx8
PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSAidGVzdCI7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0g
NDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e307CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIE9iamVj
dCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1
cm4geCB8fD0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbXTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBBcnJheSk7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4LmEgfHw9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5k
ZWZpbmVkfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4
LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiBudWxsfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVy
biB4LmEgfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IHRydWV9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHRy
dWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07Cisg
ICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9Owor
ICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAg
IHJldHVybiB4LmEgfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IDF9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0
dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6ICIifTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAg
cmV0dXJuIHguYSB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHt9fTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgfHw9IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4LmEgfHw9IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9Owor
ICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBu
dWxsfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHgu
YSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiB0cnVlfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07Cisg
ICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAw
fTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
MX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAi
In07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiAidGVzdCJ9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHguYSB8fD0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgT2Jq
ZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07Cisg
ICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSB8fD0g
NDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogW119OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIEFycmF5KTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHhb
ImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge307CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAg
IHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHhbImEiXSB8fD0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07Cisg
ICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geFsi
YSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogZmFsc2V9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAg
cmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge2E6IDB9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07
CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
ICIifTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sICJ0ZXN0Iik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4WyJhIl0g
fHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YToge319OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIE9i
amVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAg
ICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJu
IHhbImEiXTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHhbImEiXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5l
ZH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHJldHVy
biB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IG51bGx9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0
cnVlfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSB8fD0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4WyJh
Il0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IDB9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICBy
ZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IDF9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIi
fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCAidGVzdCIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07Cisg
ICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhb
ImEiXSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IHt9fTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
IFtdfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgeFswXSB8fD0gNDI7
CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt1bmRlZmluZWRdOworICAgIHhb
MF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHhb
MF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAg
eFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOwor
ICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHhb
MF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCAxKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMV07CisgICAgeFswXSB8fD0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbIiJdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbIiJdOworICAgIHhbMF0gfHw9IDQyOwor
ICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSB8
fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgT2Jq
ZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHhb
MF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbW11dOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30s
IEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbW11dOworICAg
IHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgQXJyYXkpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4WzBdIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOwor
ICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0g
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W3VuZGVmaW5lZF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgcmV0
dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gW251bGxdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOworICAg
IHJldHVybiB4WzBdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gW3RydWVdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBd
OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFs
c2VdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbMF07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVy
biB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
WzFdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gWzFdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbIiJd
OworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhb
MF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRl
c3QiXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCBPYmplY3QpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICB4WzBdIHx8
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIEFy
cmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAg
eFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBBcnJheSk7CisKKworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSArIHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPSB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4IHx8PSB5ICYmIHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9
IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPz8gejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCB8fD0geSB8fCB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4IHx8PSB5ICYmPSB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4IHx8PSB5IHx8PSB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4IHx8PSB5ID8/PSB6OworfSwgdHJ1ZSk7CisKKworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6
ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSArIHo7Cit9LCAzKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7
CisgICAgcmV0dXJuIHggfHw9IHkgPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAg
IHJldHVybiB4IHx8PSB5ICYmIHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggfHw9IHkgPz8gejsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4g
eCB8fD0geSB8fCB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8
PSB5ICYmPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
bnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5
IHx8PSB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVs
bDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ID8/
PSB6OworfSwgMSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7Cisg
ICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQi
KTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgfHw9
IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IGE7Cit9LCAiZ2V0IGdldCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0
dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAg
ICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAi
KSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0
IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOwor
ICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAg
ICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9
LAorICAgIH07CisKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1
cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0g
dHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9
IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSB8fD0gNDI7CisgICAgeFsiYSJd
IHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQg
Z2V0IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOwor
CisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAg
ICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOwor
ICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSB8fD0g
NDI7CisgICAgeFsiYSJdIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAi
ICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAg
ICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAg
ICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAg
fTsKKworICAgIHhbImEiXSB8fD0gNDI7CisgICAgeFsiYSJdIHx8PSA0MjsKKworICAgIHJldHVy
biBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFy
ZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVu
dCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0
IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAg
IHRoaXMuX2EgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5k
cyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQt
Y2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAg
IHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAg
ICAgIHN1cGVyLmEgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBD
aGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7
CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxk
IGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAg
ICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0g
djsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7Cisg
ICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAg
ICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSB8
fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHgu
X2EgPSBmYWxzZTsKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1
cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQg
c2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFz
cyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQt
cGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAg
ICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBl
eHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAg
ICAgICAgICAgc3VwZXIuYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0g
bmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeC5hIHx8PSA0MjsKKyAgICB4
LmEgfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwg
ImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0
LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgewor
ICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9
CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1
cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdIHx8PSB2Owor
ICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRy
dWU7CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJu
IGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdl
dC1jaGlsZCBnZXQtcGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1
c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgICAgIH0K
KyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVy
biBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gfHw9IHY7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gZmFs
c2U7CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJu
IGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNl
dC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3Mg
UGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBh
cmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAg
ICAgIHRoaXMuX2EgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0
ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJn
ZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9Cisg
ICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAg
ICAgICAgICAgIHN1cGVyWyJhIl0gfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQg
eCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOworICAgIHhbImEiXSB8fD0gNDI7
CisgICAgeFsiYSJdIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsg
eC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQt
cGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIs
IHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9
KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIs
IHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAg
fSk7CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwg
eworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisg
ICAgfSk7CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAg
ICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAg
IGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAg
ICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICBy
ZXR1cm4geC5hIHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9u
KCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgVHlw
ZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307Cisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwK
KyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9
IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFs
c2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJd
IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1
bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4g
eFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
ICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxz
ZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91
bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxz
ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0g
fHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAg
InVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTog
ZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBUeXBlRXJyb3Ip
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIChm
dW5jdGlvbigpIHsKKyAgICAgICAgeCB8fD0gNDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsK
K30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOwor
ICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4IHx8PSA0MjsKKyAgICB9
KSgpOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVm
aW5lZDsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7
CisgICAgfSkoKTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCB8fD0gNDI7CisgICAg
fSkoKTsKKyAgICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAg
ICAgcmV0dXJuIHggfHw9IDQyOworICAgIH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRU
aHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgVHlw
ZUVycm9yKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIHggfHw9IDQyOwor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB1bmRlZmluZWQgfHw9IDQyOwor
fSwgNDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBudWxsIHx8PSA0MmApOworCitzaG91
bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlIHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVy
cm9yKGBmYWxzZSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMCB8fD0gNDJg
KTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dT
eW50YXhFcnJvcihgIiIgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCJ0ZXN0
IiB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihge30gfHw9IDQyYCk7CisKK3No
b3VsZFRocm93U3ludGF4RXJyb3IoYFtdIHx8PSA0MmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90
ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4IDBi
NmI1NmU4YzFkMmNlMTBhNmU2M2NiNDcwMmY4MDk0MGM3ZTBhNTguLjBjNjdhNGRlNjMzZTJkNTVk
OWM5MzU0N2Q2OGMwNGQ2NGIxYzAzZjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9jb25m
aWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTQsNiArNCw3IEBA
IGZsYWdzOgogICBCaWdJbnQ6IHVzZUJpZ0ludAogICBXZWFrUmVmOiB1c2VXZWFrUmVmcwogICBj
bGFzcy1maWVsZHMtcHVibGljOiB1c2VQdWJsaWNDbGFzc0ZpZWxkcworICBsb2dpY2FsLWFzc2ln
bm1lbnQtb3BlcmF0b3JzOiB1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycwogc2tpcDoKICAg
ZmVhdHVyZXM6CiAgICAgLSBTaGFyZWRBcnJheUJ1ZmZlcgpAQCAtMjAsOCArMjEsNiBAQCBza2lw
OgogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQ3NQog
ICAgIC0gcmVnZXhwLW1hdGNoLWluZGljZXMKICAgICAtIHRvcC1sZXZlbC1hd2FpdAotICAgICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcxNgotICAgIC0gbG9n
aWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycwogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMjU2NgogICAgIC0gUHJvbWlzZS5hbnkKICAgICAtIEFnZ3JlZ2F0
ZUVycm9yCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9K
U1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggN2JkN2Q3Zjg5NmVmODJiYzNi
MDg3OWYxMzA1YWM2MDgwMmQ2NjdiMi4uOWFkN2I3ZDlhODI5NjBkODAzOWU0NTkzOWJhMDJkM2Q5
MWY0M2E2OSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisr
KyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMjc2MCw2ICsyNzYwLDEy
IEBAIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvaW1wb3J0Lm1ldGEvc3ludGF4L2ludmFsaWQt
YXNzaWdubWVudC10YXJnZXQtZm9yLW9mLWxvCiB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2lu
c3RhbmNlb2YvcHJvdG90eXBlLWdldHRlci13aXRoLXByaW1pdGl2ZS5qczoKICAgZGVmYXVsdDog
IlRlc3QyNjJFcnJvcjogZ2V0dGVyIGZvciAncHJvdG90eXBlJyBjYWxsZWQiCiAgIHN0cmljdCBt
b2RlOiAiVGVzdDI2MkVycm9yOiBnZXR0ZXIgZm9yICdwcm90b3R5cGUnIGNhbGxlZCIKK3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1l
bnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanM6CisgIGRlZmF1bHQ6ICJUZXN0MjYyOiBUaGlz
IHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4iCit0ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRv
ci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVtZW50
IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxo
cy5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUg
ZXZhbHVhdGVkLiIKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbmV3L2N0b3JFeHByLWZuLXJl
Zi1iZWZvcmUtYXJncy1ldmFsLWZuLXdyYXB1cC5qczoKICAgZGVmYXVsdDogIlR5cGVFcnJvcjog
MSBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IHgoeCA9IDEpJykiCiAgIHN0
cmljdCBtb2RlOiAiVHlwZUVycm9yOiAxIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5n
ICduZXcgeCh4ID0gMSknKSIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396018</attachid>
            <date>2020-04-09 15:05:49 -0700</date>
            <delta_ts>2020-04-09 16:40:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200409160548.patch</filename>
            <type>text/plain</type>
            <size>114532</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3NjQzNzg5MDBjODZkOWZmMDc4YWY2NzEzY2Qx
M2EyYjUxMzk4ZGUuLjhhOWRkOTgzYjgxNTE2ZDE3ZDI5MDk4ZDVhODM1NTcyMjQyMDkyODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTA5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBub3cgU3RhZ2UgMy4gSXQgaW50cm9kdWNlcwor
ICAgICAgICB0aHJlZSBuZXcgYXNzaWdubWVudCBvcGVyYXRvcnMgd2hpY2ggd2lsbCBvbmx5IHN0
b3JlIHRoZSByZXN1bHQgb2YgdGhlIHJocyBpbiB0aGUgbGhzIGlmIHRoZQorICAgICAgICBsaHMg
bWVldHMgdGhlIGdpdmVuIGNvbmRpdGlvbjoKKyAgICAgICAgIC0gYD8/PWAsIGZvciBpZiB0aGUg
bGhzIGlzIG51bGxpc2ggKGBudWxsYCBvciBgdW5kZWZpbmVkYCkKKyAgICAgICAgIC0gYHx8PWAs
IGZvciBpZiB0aGUgbGhzIGlzIGZhbHN5CisgICAgICAgICAtIGAmJj1gLCBmb3IgaWYgdGhlIGxo
cyBpcyB0cnV0aHkKKworICAgICAgICBUaGlzIHNob3J0IGNpcmN1aXRpbmcgY2FuIGJlIGJlbmVm
aWNpYWwgYXMgaXQgY2FuIGF2b2lkIGEgcmVkdW5kYW50IHN0b3JlIHdoZW4gdXNlZCBpbiB0aGUK
KyAgICAgICAgY29tbW9uIEphdmFTY3JpcHQgcHJvZ3JhbW1pbmcgcGF0dGVybiBvZiAiZGVmYXVs
dGluZyIgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgYGBganMKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZvbyh4KSB7CisgICAgICAgICAgICAgICAgeCA9IHggfHwgNDI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIGBgYAorCisgICAgICAgIElmIGB4YCBpcyBhIHRydXRoeSB2YWx1ZSwgaXQgd291bGQg
cmVzdWx0IGluIHRoZSByaHMgYHhgIGJlaW5nIHN0b3JlZCBiYWNrIGludG8gdGhlIGxocyBgeGAu
CisgICAgICAgIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gaGF2ZSBuZWdhdGl2ZSB1bmlu
dGVuZGVkIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBmb3IgYGlubmVySFRNTGAuCisKKyAgICAgICAg
TG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycywgaG93ZXZlciwgYXJlIGRlZmluZWQgc3VjaCB0
aGF0IHRoZXkgb25seSBzdG9yZSBpZiB0aGUgcmhzIGlzCisgICAgICAgIHRvIGFjdHVhbGx5IGJl
IG5lZWRlZC91c2VkLCBza2lwcGluZyB0aGUgcmVkdW5kYW50IHN0b3JlIGFuZCBzaW1wbHkgcmV0
dXJuaW5nIGxocyBvdGhlcndpc2UuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcmVhZG9ubHkg
cmVmZXJlbmNlcywgdGhpcyBtZWFucyB0aGF0IGFuIGVycm9yIGlzIG9ubHkgdGhyb3duIHdoZW4g
dGhlCisgICAgICAgIGFzc2lnbm1lbnQgb2NjdXJzLCBtZWFuaW5nIHRoYXQgaWYgdGhlIGxocyBh
bHJlYWR5IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uIGl0IHdpbGwgYmUgdXNlZAorICAgICAgICBh
bmQgcmV0dXJuZWQgd2l0aCBubyBlcnJvci4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6bGV4V2l0aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGU6OlNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlKTogQWRkZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50
KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRN
b2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKworICAg
ICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEgYHVzZUxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0aGlzIGZlYXR1cmUu
CisKIDIwMjAtMDQtMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IERlYnVnZ2VyOiBkZWJ1ZyBob29rcyBzaG91bGQgYWxzbyBiZSBl
bWl0dGVkIGZvciB0aGUgZmlyc3Qgc3ViLWV4cHJlc3Npb24gaW4gYSBjb21tYSBleHByZXNzaW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKaW5kZXggYTVlNGNlYjQ2MmZhNDJjYWFjZTY0MjRhMjEwNjA2ODVkNTY5MmRiYS4uYjg4
Y2Y1MmU0ZmFiOTFkYTM1MGVlNDdiOWM4MDYzZDUwOTBlMGMxNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMjg1Niw2
ICsyODU2LDEwMyBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogICAgIHJldHVybiByZXR1cm5S
ZXN1bHQ7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworLy8gRklYTUU6IHNob3VsZCB0aGlzIGJlIG1vdmVkIHRvIGJlIGEgbWV0aG9kIG9uIEJ5
dGVjb2RlR2VuZXJhdG9yPworc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBlbWl0U2hvcnRDaXJj
dWl0QXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiB2
YWx1ZSwgT3BlcmF0b3Igb3BlciwgTGFiZWwmIHNob3J0Q2lyY3VpdExhYmVsKQoreworICAgIHN3
aXRjaCAob3BlcikgeworICAgIGNhc2UgT3BlcmF0b3I6Ok51bGxpc2hFcToKKyAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXRKdW1wSWZGYWxzZShnZW5lcmF0b3IuZW1pdElzVW5kZWZpbmVkT3JOdWxsKGdl
bmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgdmFsdWUpLCBzaG9ydENpcmN1aXRMYWJlbCk7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBPcGVyYXRvcjo6T3JFcToKKyAgICAgICAgZ2VuZXJhdG9y
LmVtaXRKdW1wSWZUcnVlKHZhbHVlLCBzaG9ydENpcmN1aXRMYWJlbCk7CisgICAgICAgIGJyZWFr
OworCisgICAgY2FzZSBPcGVyYXRvcjo6QW5kRXE6CisgICAgICAgIGdlbmVyYXRvci5lbWl0SnVt
cElmRmFsc2UodmFsdWUsIHNob3J0Q2lyY3VpdExhYmVsKTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBkZWZhdWx0OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICBicmVhazsKKyAgICB9Cit9CisKK1JlZ2lzdGVySUQqIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlS
ZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJl
Z2lzdGVySUQqIGRzdCkKK3sKKyAgICBKU1RleHRQb3NpdGlvbiBuZXdEaXZvdCA9IGRpdm90U3Rh
cnQoKSArIG1faWRlbnQubGVuZ3RoKCk7CisKKyAgICBWYXJpYWJsZSB2YXIgPSBnZW5lcmF0b3Iu
dmFyaWFibGUobV9pZGVudCk7CisKKyAgICBpZiAoUmVmUHRyPFJlZ2lzdGVySUQ+IGxvY2FsID0g
dmFyLmxvY2FsKCkpIHsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5
KHZhciwgbG9jYWwuZ2V0KCksIG51bGxwdHIpOworCisgICAgICAgIGlmICh2YXIuaXNSZWFkT25s
eSgpKSB7CisgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0ID0gbG9jYWw7CisK
KyAgICAgICAgICAgIFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3
TGFiZWwoKTsKKyAgICAgICAgICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRv
ciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisK
KyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIp
OworICAgICAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24o
cmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJl
bChzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFBy
b2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAg
ICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAoZ2VuZXJhdG9yLmxlZnRIYW5kU2lkZU5lZWRzQ29weShtX3JpZ2h0
SGFzQXNzaWdubWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKSkgeworICAgICAgICAg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsK
KyAgICAgICAgICAgIGdlbmVyYXRvci5tb3ZlKHJlc3VsdC5nZXQoKSwgbG9jYWwuZ2V0KCkpOwor
CisgICAgICAgICAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5l
d0xhYmVsKCk7CisgICAgICAgICAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0
b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOwor
CisgICAgICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihy
ZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAgICAgICAgICAgZ2VuZXJhdG9yLm1vdmUobG9jYWwu
Z2V0KCksIHJlc3VsdC5nZXQoKSk7CisKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwo
c2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9m
aWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgICAg
ICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAgICB9
CisKKyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGxvY2FsOworCisgICAgICAg
IFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAg
ICAgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCks
IG1fb3BlcmF0b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgICAgICByZXN1bHQg
PSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQp
OworCisgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkp
OworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RT
dGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwg
cmVzdWx0LmdldCgpKTsKKyAgICB9CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZv
KG5ld0Rpdm90LCBkaXZvdFN0YXJ0KCksIG5ld0Rpdm90KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJ
RD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShudWxscHRyLCB2YXIpOworCisg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0RnJvbVNjb3Bl
KGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgc2NvcGUuZ2V0KCksIHZhciwgVGhyb3dJZk5vdEZv
dW5kKTsKKyAgICBnZW5lcmF0b3IuZW1pdFREWkNoZWNrSWZOZWNlc3NhcnkodmFyLCByZXN1bHQu
Z2V0KCksIG51bGxwdHIpOworCisgICAgUmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9IGdl
bmVyYXRvci5uZXdMYWJlbCgpOworICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVy
YXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7
CisKKyAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQu
Z2V0KCksIG1fcmlnaHQpOworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3Qo
KSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBpZiAodmFyLmlzUmVhZE9ubHkoKSkK
KyAgICAgICAgZ2VuZXJhdG9yLmVtaXRSZWFkT25seUV4Y2VwdGlvbklmTmVlZGVkKHZhcik7Cisg
ICAgZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdFB1dFRvU2NvcGUoc2NvcGUu
Z2V0KCksIHZhciwgcmVzdWx0LmdldCgpLCBUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9u
TW9kZTo6Tm90SW5pdGlhbGl6YXRpb24pOworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzaG9y
dENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1
bHQuZ2V0KCksIHZhciwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICByZXR1cm4gZ2Vu
ZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gQXNzaWduUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKwogc3RhdGljIEluaXRpYWxpemF0aW9uTW9kZSBpbml0aWFsaXphdGlvbk1v
ZGVGb3JBc3NpZ25tZW50Q29udGV4dChBc3NpZ25tZW50Q29udGV4dCBhc3NpZ25tZW50Q29udGV4
dCkKIHsKICAgICBzd2l0Y2ggKGFzc2lnbm1lbnRDb250ZXh0KSB7CkBAIC0yODcxLDggKzI5Njgs
NiBAQCBzdGF0aWMgSW5pdGlhbGl6YXRpb25Nb2RlIGluaXRpYWxpemF0aW9uTW9kZUZvckFzc2ln
bm1lbnRDb250ZXh0KEFzc2lnbm1lbnRDb250ZQogICAgIHJldHVybiBJbml0aWFsaXphdGlvbk1v
ZGU6Ok5vdEluaXRpYWxpemF0aW9uOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gQXNzaWduUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLQogUmVnaXN0ZXJJRCogQXNzaWduUmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAgVmFyaWFibGUg
dmFyID0gZ2VuZXJhdG9yLnZhcmlhYmxlKG1faWRlbnQpOwpAQCAtMjk3Myw2ICszMDY4LDM3IEBA
IFJlZ2lzdGVySUQqIFJlYWRNb2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0CiAgICAgcmV0dXJuIHJldDsKIH0KIAorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1JlZ2lzdGVySUQqIFNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdl
bmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNl
ID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFzZSwgbV9yaWdodEhhc0Fz
c2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IHRoaXNWYWx1ZTsKKworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQ7CisKKyAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHN1YmV4cHJlc3Npb25EaXZvdCgpLCBzdWJl
eHByZXNzaW9uU3RhcnQoKSwgc3ViZXhwcmVzc2lvbkVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5p
c1N1cGVyTm9kZSgpKSB7CisgICAgICAgIHRoaXNWYWx1ZSA9IGdlbmVyYXRvci5lbnN1cmVUaGlz
KCk7CisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IudGVt
cERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgbV9pZGVudCk7
CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5l
cmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIG1faWRlbnQpOworCisgICAg
UmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAg
IGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29w
ZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBnZW5lcmF0
b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAgIGdl
bmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVu
ZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKQorICAgICAgICByZXN1bHQgPSBn
ZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBtX2lkZW50
LCByZXN1bHQuZ2V0KCkpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVt
aXRQdXRCeUlkKGJhc2UuZ2V0KCksIG1faWRlbnQsIHJlc3VsdC5nZXQoKSk7CisKKyAgICBnZW5l
cmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKyAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsK
KyAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQXNzaWduRXJyb3JOb2RlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJlZ2lzdGVySUQqIEFzc2lnbkVycm9yTm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqKQpA
QCAtMzAzNyw2ICszMTYzLDM4IEBAIFJlZ2lzdGVySUQqIFJlYWRNb2RpZnlCcmFja2V0Tm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlCiAgICAgcmV0dXJu
IHVwZGF0ZWRWYWx1ZTsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNo
b3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5v
ZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklE
KiBkc3QpCit7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5v
ZGVGb3JMZWZ0SGFuZFNpZGUobV9iYXNlLCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzIHx8IG1f
cmlnaHRIYXNBc3NpZ25tZW50cywgbV9zdWJzY3JpcHQtPmlzUHVyZShnZW5lcmF0b3IpICYmIG1f
cmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVy
dHkgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGVGb3JQcm9wZXJ0eShtX3N1YnNj
cmlwdCwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7
CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNWYWx1ZTsKKworICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiByZXN1bHQ7CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHN1YmV4cHJl
c3Npb25EaXZvdCgpLCBzdWJleHByZXNzaW9uU3RhcnQoKSwgc3ViZXhwcmVzc2lvbkVuZCgpKTsK
KyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKSB7CisgICAgICAgIHRoaXNWYWx1ZSA9IGdl
bmVyYXRvci5lbnN1cmVUaGlzKCk7CisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0
QnlWYWwoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCB0aGlzVmFs
dWUuZ2V0KCksIHByb3BlcnR5LmdldCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJh
c2UuZ2V0KCksIHByb3BlcnR5LmdldCgpKTsKKworICAgIFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0
TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdu
bWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFi
ZWwuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRp
b24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25J
bmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+
aXNTdXBlck5vZGUoKSkKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRCeVZhbChi
YXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIHByb3BlcnR5LmdldCgpLCByZXN1bHQuZ2V0KCkp
OworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRCeVZhbChiYXNl
LmdldCgpLCBwcm9wZXJ0eS5nZXQoKSwgcmVzdWx0LmdldCgpKTsKKworICAgIGdlbmVyYXRvci5l
bWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJv
ZmlsZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIHJl
dHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cit9CisKIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb21tYU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKIFJlZ2lzdGVySUQqIENvbW1hTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXggNDNiMTcxZmJjNGU3YjM1OWRiZTY4Mjdm
YTVkYzViODVhODllYmZjMC4uNWUzNTNiZDE3NjNkOWUyZjc0ZDM2NDI0NGEwYjBkYWRkMjI1ODJi
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTE1NDgs
NiArMTU0OCw3IEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByCiAKICAgICBpZiAobG9jLT5pc1Jl
c29sdmVOb2RlKCkpIHsKICAgICAgICAgUmVzb2x2ZU5vZGUqIHJlc29sdmUgPSBzdGF0aWNfY2Fz
dDxSZXNvbHZlTm9kZSo+KGxvYyk7CisKICAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpFcXVh
bCkgewogICAgICAgICAgICAgaWYgKGV4cHItPmlzQmFzZUZ1bmNFeHByTm9kZSgpKSB7CiAgICAg
ICAgICAgICAgICAgYXV0byBtZXRhZGF0YSA9IHN0YXRpY19jYXN0PEJhc2VGdW5jRXhwck5vZGUq
PihleHByKS0+bWV0YWRhdGEoKTsKQEAgLTE1NTgsMjEgKzE1NTksNDIgQEAgRXhwcmVzc2lvbk5v
ZGUqIEFTVEJ1aWxkZXI6Om1ha2VBc3NpZ25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9j
YXRpb24sIEV4cHIKICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUsIHN0YXJ0
LCBkaXZvdCwgZW5kKTsKICAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgICB9CisKKyAg
ICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpOdWxsaXNoRXEgfHwgb3AgPT0gT3BlcmF0b3I6Ok9y
RXEgfHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVxKQorICAgICAgICAgICAgcmV0dXJuIG5ldyAobV9w
YXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlKGxvY2F0aW9uLCBy
ZXNvbHZlLT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90
LCBzdGFydCwgZW5kKTsKKwogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBSZWFk
TW9kaWZ5UmVzb2x2ZU5vZGUobG9jYXRpb24sIHJlc29sdmUtPmlkZW50aWZpZXIoKSwgb3AsIGV4
cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwogICAgIH0KKwogICAg
IGlmIChsb2MtPmlzQnJhY2tldEFjY2Vzc29yTm9kZSgpKSB7CiAgICAgICAgIEJyYWNrZXRBY2Nl
c3Nvck5vZGUqIGJyYWNrZXQgPSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4obG9j
KTsKKwogICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkVxdWFsKQogICAgICAgICAgICAgcmV0
dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXNzaWduQnJhY2tldE5vZGUobG9jYXRpb24sIGJyYWNr
ZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRz
LCBleHBySGFzQXNzaWdubWVudHMsIGJyYWNrZXQtPmRpdm90KCksIHN0YXJ0LCBlbmQpOworCisg
ICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJhdG9yOjpP
ckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkgeworICAgICAgICAgICAgYXV0byogbm9kZSA9
IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlKGxv
Y2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBvcCwgZXhwciwg
bG9jSGFzQXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQp
OworICAgICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2b3Qo
KSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOworICAgICAgICAgICAgcmV0dXJuIG5vZGU7
CisgICAgICAgIH0KKwogICAgICAgICBSZWFkTW9kaWZ5QnJhY2tldE5vZGUqIG5vZGUgPSBuZXcg
KG1fcGFyc2VyQXJlbmEpIFJlYWRNb2RpZnlCcmFja2V0Tm9kZShsb2NhdGlvbiwgYnJhY2tldC0+
YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3AsIGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRz
LCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKICAgICAgICAgbm9kZS0+
c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2b3QoKSwgYnJhY2tldC0+ZGl2b3RFbmQo
KS5vZmZzZXQpOwogICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9CisKICAgICBBU1NFUlQobG9j
LT5pc0RvdEFjY2Vzc29yTm9kZSgpKTsKICAgICBEb3RBY2Nlc3Nvck5vZGUqIGRvdCA9IHN0YXRp
Y19jYXN0PERvdEFjY2Vzc29yTm9kZSo+KGxvYyk7CisKICAgICBpZiAob3AgPT0gT3BlcmF0b3I6
OkVxdWFsKQogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBc3NpZ25Eb3ROb2Rl
KGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90LT5pZGVudGlmaWVyKCksIGV4cHIsIGV4cHJIYXNB
c3NpZ25tZW50cywgZG90LT5kaXZvdCgpLCBzdGFydCwgZW5kKTsKIAorICAgIGlmIChvcCA9PSBP
cGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJhdG9yOjpPckVxIHx8IG9wID09IE9wZXJh
dG9yOjpBbmRFcSkgeworICAgICAgICBhdXRvKiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBT
aG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCksIGRvdC0+
aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQs
IGVuZCk7CisgICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwg
ZG90LT5kaXZvdEVuZCgpLm9mZnNldCk7CisgICAgICAgIHJldHVybiBub2RlOworICAgIH0KKwog
ICAgIFJlYWRNb2RpZnlEb3ROb2RlKiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBSZWFkTW9k
aWZ5RG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBvcCwg
ZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAgICAgbm9kZS0+
c2V0U3ViZXhwcmVzc2lvbkluZm8oZG90LT5kaXZvdCgpLCBkb3QtPmRpdm90RW5kKCkub2Zmc2V0
KTsKICAgICByZXR1cm4gbm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAK
aW5kZXggNGZiODNjYTNhMGE3YzhhYTk5MmQyMDI5ZTkwOWEwMzJjMTVkOTAwNi4uYmFlNWY2Zjgz
OTI5YjA4NTY4NTMzYTgyZjIxNjQzOTM3ODNiMjJkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5jcHAKQEAgLTIwODYsNiArMjA4NiwxMSBAQCBzdGFydDoKICAgICAgICAgc2hp
ZnQoKTsKICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnJicpIHsKICAgICAgICAgICAgIHNoaWZ0
KCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlTG9naWNhbEFzc2lnbm1l
bnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0nKSkgeworICAgICAgICAgICAgICAgIHNo
aWZ0KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBBTkRFUVVBTDsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRva2VuID0gQU5EOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxMjMsNiArMjEyOCwxMSBAQCBzdGFydDoKICAg
ICAgICAgfQogICAgICAgICBpZiAobV9jdXJyZW50ID09ICd8JykgewogICAgICAgICAgICAgc2hp
ZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VMb2dpY2FsQXNzaWdu
bWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9PSAnPScpKSB7CisgICAgICAgICAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9IE9SRVFVQUw7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tlbiA9IE9SOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxNTksNiArMjE2OSwxMSBAQCBzdGFydDoKICAg
ICAgICAgc2hpZnQoKTsKICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnPycpIHsKICAgICAgICAg
ICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlTG9naWNh
bEFzc2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0nKSkgeworICAgICAgICAg
ICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBOVUxMSVNIRVFVQUw7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tlbiA9
IENPQUxFU0NFOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggZmQ5N2EwY2E5MzVl
N2U1Nzc4YTA5Mzg1MDIyZjk4Njc4MDE0YTMyNC4uYWYwNDM0NThhNDM3NjE2MjQ0MWI2MjQwODEw
OWRlNThhMjJiNWVlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
Q29uc3RydWN0b3JzLmgKQEAgLTcxOCw2ICs3MTgsMTYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6
OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhwcmVz
c2lvbk5vZGUqICByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRp
b24pCisgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQs
IGRpdm90RW5kKQorICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdodChy
aWdodCkKKyAgICAgICAgLCBtX29wZXJhdG9yKG9wZXIpCisgICAgICAgICwgbV9yaWdodEhhc0Fz
c2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdubWVudHMpCisgICAgeworICAgIH0KKwogICAgIGlubGlu
ZSBBc3NpZ25SZXNvbHZlTm9kZTo6QXNzaWduUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEV4cHJlc3Npb25Ob2RlKiBy
aWdodCwgQXNzaWdubWVudENvbnRleHQgYXNzaWdubWVudENvbnRleHQpCiAgICAgICAgIDogRXhw
cmVzc2lvbk5vZGUobG9jYXRpb24pCiAgICAgICAgICwgbV9pZGVudChpZGVudCkKQEAgLTczOSw2
ICs3NDksMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBT
aG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlC
cmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9k
ZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgT3BlcmF0b3Igb3BlciwgRXhwcmVz
c2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0
SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKKyAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2FibGVTdWJF
eHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisgICAgICAgICwgbV9i
YXNlKGJhc2UpCisgICAgICAgICwgbV9zdWJzY3JpcHQoc3Vic2NyaXB0KQorICAgICAgICAsIG1f
cmlnaHQocmlnaHQpCisgICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAsIG1fc3Vi
c2NyaXB0SGFzQXNzaWdubWVudHMoc3Vic2NyaXB0SGFzQXNzaWdubWVudHMpCisgICAgICAgICwg
bV9yaWdodEhhc0Fzc2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdubWVudHMpCisgICAgeworICAgIH0K
KwogICAgIGlubGluZSBBc3NpZ25CcmFja2V0Tm9kZTo6QXNzaWduQnJhY2tldE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Np
b25Ob2RlKiBzdWJzY3JpcHQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRI
YXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RFbmQpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24p
CiAgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQsIGRp
dm90RW5kKQpAQCAtNzcxLDYgKzc5MywxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAg
fQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlOjpTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5RG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHBy
ZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9wZXJhdG9yIG9wZXIs
IEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUo
bG9jYXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRp
dm90U3RhcnQsIGRpdm90RW5kKQorICAgICAgICAsIG1fYmFzZShiYXNlKQorICAgICAgICAsIG1f
aWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICAgICAgLCBtX29wZXJh
dG9yKG9wZXIpCisgICAgICAgICwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdu
bWVudHMpCisgICAgeworICAgIH0KKwogICAgIGlubGluZSBBc3NpZ25FcnJvck5vZGU6OkFzc2ln
bkVycm9yTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRp
b24pCiAgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQs
IGRpdm90RW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDIyZGY1YWU0
ZDA4ZTU4NmU3OGY4YjM5YjJiYmY1YTY4ZmYxOGU2NWQuLmI1MTU2MDRhNjhhYTZiZTQzOGY0ZGZl
NzlhYjRhODA0MmM4YWZkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAg
LTY4LDYgKzY4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEJpdE9yRXEsCiAgICAgICAg
IE1vZEVxLAogICAgICAgICBQb3dFcSwKKyAgICAgICAgTnVsbGlzaEVxLAorICAgICAgICBPckVx
LAorICAgICAgICBBbmRFcSwKICAgICAgICAgTFNoaWZ0LAogICAgICAgICBSU2hpZnQsCiAgICAg
ICAgIFVSU2hpZnQKQEAgLTEzODksNiArMTM5MiwxOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHM7CiAgICAgfTsKIAorICAgIGNsYXNzIFNob3J0
Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9k
ZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBjb25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiAgcmlnaHQsIGJv
b2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
RW5kKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAg
Y29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmln
aHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9yaWdodEhh
c0Fzc2lnbm1lbnRzOworICAgIH07CisKICAgICBjbGFzcyBBc3NpZ25SZXNvbHZlTm9kZSBmaW5h
bCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRh
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2lnblJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIEFzc2ln
bm1lbnRDb250ZXh0KTsKQEAgLTE0MTgsNiArMTQzNCwyMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOwogICAgIH07CiAKKyAgICBjbGFz
cyBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVz
c2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGlj
OgorICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3Jp
cHQsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNz
aWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7
CisKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKKyAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fc3Vic2NyaXB0OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAg
ICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsKKyAgICAgICAgYm9vbCBtX3N1YnNjcmlwdEhhc0Fzc2ln
bm1lbnRzIDogMTsKKyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOworICAg
IH07CisKICAgICBjbGFzcyBBc3NpZ25CcmFja2V0Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNz
aW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIEFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Np
b25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHByZXNzaW9uTm9kZSog
cmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25t
ZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKQEAgLTE0NTksNiAr
MTQ5MCwyMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdu
bWVudHMgOiAxOwogICAgIH07CiAKKyAgICBjbGFzcyBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90
Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZVN1YkV4
cHJlc3Npb25EYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNob3J0Q2lyY3VpdFJlYWRNb2Rp
ZnlEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBj
b25zdCBJZGVudGlmaWVyJiwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBy
aWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
OworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogbV9iYXNlOworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50Owor
ICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAgICAgT3BlcmF0b3IgbV9vcGVy
YXRvcjsKKyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAxOworICAgIH07CisK
ICAgICBjbGFzcyBBc3NpZ25FcnJvck5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUs
IHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBB
c3NpZ25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNw
cAppbmRleCBkZDI1MWY3YWJlNzViZmJjZTBhMzliOGMwZWVmNTViMmQ0MWJmNzA5Li45NzY3NTdi
ZDQ5NGRmYTkwYmJkMDI4ZjczZGM2OTNhMzUwNDkyYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCkBAIC0zODQ3LDcgKzM4NDcsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFz
c2lnbm1lbgogCiAgICAgZmFpbElmRmFsc2UobGhzLCAiQ2Fubm90IHBhcnNlIGV4cHJlc3Npb24i
KTsKICAgICBpZiAoaW5pdGlhbE5vbkxIU0NvdW50ICE9IG1fcGFyc2VyU3RhdGUubm9uTEhTQ291
bnQpIHsKLSAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90
eXBlIDw9IEJJVE9SRVFVQUwpCisgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAm
JiBtX3Rva2VuLm1fdHlwZSA8PSBBTkRFUVVBTCkKICAgICAgICAgICAgIHNlbWFudGljRmFpbCgi
TGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJyIsIGdldFRva2VuKCksICInIG11c3QgYmUgYSBy
ZWZlcmVuY2UiKTsKIAogICAgICAgICByZXR1cm4gbGhzOwpAQCAtMzg3MSw2ICszODcxLDkgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAgICAgY2FzZSBCSVRPUkVRVUFMOiBvcCA9IE9w
ZXJhdG9yOjpCaXRPckVxOyBicmVhazsKICAgICAgICAgY2FzZSBNT0RFUVVBTDogb3AgPSBPcGVy
YXRvcjo6TW9kRXE7IGJyZWFrOwogICAgICAgICBjYXNlIFBPV0VRVUFMOiBvcCA9IE9wZXJhdG9y
OjpQb3dFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgTlVMTElTSEVRVUFMOiBvcCA9IE9wZXJhdG9y
OjpOdWxsaXNoRXE7IGJyZWFrOworICAgICAgICBjYXNlIE9SRVFVQUw6IG9wID0gT3BlcmF0b3I6
Ok9yRXE7IGJyZWFrOworICAgICAgICBjYXNlIEFOREVRVUFMOiBvcCA9IE9wZXJhdG9yOjpBbmRF
cTsgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBnb3RvIGVuZDsKICAgICAg
ICAgfQpAQCAtMzg5MCw3ICszODkzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVy
PiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAg
ICAgbGhzID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFp
bElmRmFsc2UobGhzLCAiQ2Fubm90IHBhcnNlIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgYW4gYXNz
aWdubWVudCBleHByZXNzaW9uIik7CiAgICAgICAgIGlmIChpbml0aWFsTm9uTEhTQ291bnQgIT0g
bV9wYXJzZXJTdGF0ZS5ub25MSFNDb3VudCkgewotICAgICAgICAgICAgaWYgKG1fdG9rZW4ubV90
eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90eXBlIDw9IEJJVE9SRVFVQUwpCisgICAgICAgICAg
ICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQU5ERVFV
QUwpCiAgICAgICAgICAgICAgICAgc2VtYW50aWNGYWlsKCJMZWZ0IGhhbmQgc2lkZSBvZiBvcGVy
YXRvciAnIiwgZ2V0VG9rZW4oKSwgIicgbXVzdCBiZSBhIHJlZmVyZW5jZSIpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyVG9rZW5zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
clRva2Vucy5oCmluZGV4IDQ4MTgxYWUwZDRiOTMzODk0ZjhlNGYyYmRmZGI2MmU4MTM4M2QyYzUu
LmQxYzQ3ZWZlMmNmYmE0M2NjOGM2ZmYwMGFmMmU5ODI0Y2FlYzY5NDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaApAQCAtMTM0LDYgKzEzNCw5IEBAIGVu
dW0gSlNUb2tlblR5cGUgewogICAgIEJJVEFOREVRVUFMLAogICAgIEJJVFhPUkVRVUFMLAogICAg
IEJJVE9SRVFVQUwsCisgICAgTlVMTElTSEVRVUFMLAorICAgIE9SRVFVQUwsCisgICAgQU5ERVFV
QUwsCiAgICAgRE9URE9URE9ULAogICAgIEFSUk9XRlVOQ1RJT04sCiAgICAgUVVFU1RJT05ET1Qs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCA5OTY5
NGQwMTI3YmFlMWNlYTVjZjYzZmE5Y2RkOTc3MDAwY2I3YWE0Li5jMjhiZmMzNGJmZTgwZjc2MzRh
NDBlMWYzOGQwMjk3YjZhNzBkNzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnNMaXN0LmgKQEAgLTUwMCw2ICs1MDAsNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVX
ZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAgIHYoQm9vbCwgZm9yY2VPU1JFeGl0
VG9MTEludCwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIHdlIGFsd2F5cyBleGl0IHRvIHRoZSBM
TEludC4gSWYgZmFsc2UsIHdlIGV4aXQgdG8gd2hhdGV2ZXIgaXMgbW9zdCBjb252ZW5pZW50LiIp
IFwKICAgICB2KFVuc2lnbmVkLCBnZXRCeVZhbElDTWF4TnVtYmVyT2ZJZGVudGlmaWVycywgNCwg
Tm9ybWFsLCAiTnVtYmVyIG9mIGlkZW50aWZpZXJzIHdlIHNlZSBpbiB0aGUgTExJbnQgdGhhdCBj
b3VsZCBjYXVzZSB1cyB0byBiYWlsIG9uIGdlbmVyYXRpbmcgYW4gSUMgZm9yIGdldF9ieV92YWwu
IikgXAogICAgIHYoQm9vbCwgdXNlUHVibGljQ2xhc3NGaWVsZHMsIHRydWUsIE5vcm1hbCwgIklm
IHRydWUsIHRoZSBwYXJzZXIgd2lsbCB1bmRlcnN0YW5kIHB1YmxpYyBkYXRhIGZpZWxkcyBpbnNp
ZGUgY2xhc3Nlcy4iKSBcCisgICAgdihCb29sLCB1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9y
cywgZmFsc2UsIE5vcm1hbCwgIkVuYWJsZSBzdXBwb3J0IGZvciBcP1w/PSwgfHw9LCBhbmQgJiY9
IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMuIikgXAogICAgIHYoQm9vbCwgdXNlUmFuZG9t
aXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbiwgZmFsc2UsIE5vcm1hbCwgIkZvciB0aGUg
YXJtNjQgRXhlY3V0YWJsZUFsbG9jYXRvciwgaWYgdHJ1ZSwgc2VsZWN0IHdoaWNoIHJlZ2lvbiB0
byB1c2UgcmFuZG9tbHkuIFRoaXMgaXMgdXNlZnVsIGZvciB0ZXN0aW5nIHRoYXQganVtcCBpc2xh
bmRzIHdvcmsuIikgXAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjYjljYmNmYmM2NGFiMzIyM2Vj
NGI3MjEyMmIxZGRiOTUwYWFjNGFlLi4yOTRjMjUzZmExY2U1ZmVlMGExODVmMTBiOWE1OTlhNmQ0
MWMyNTBhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDQtMDkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgorCisgICAgICAgIFtFU05leHRdIEltcGxlbWVudCBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIwMjAtMDQtMDkgIEFha2FzaCBK
YWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtld3NdIHJlbmFtZSBDb21w
aWxlSlNDVG9UIHRvIENvbXBpbGVKU0NXaXRob3V0UGF0Y2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNz
LXRlc3RzCmluZGV4IDdiZGE2MTc3ZDY0MDA5YzI2NWJjN2M0MDg3MWEzMGY3NDQ3ZDUxNmIuLmM0
ZTA4ZjBmZjRmNmRiYmE3ODEzZmFhYzllODcxNjNhZmJjODA0NzcgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cwpAQCAtNzg3LDYgKzc4NywxMCBAQCBkZWYgcnVuTWluaU1vZGUoKm9wdGlv
bmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICBydW4oIm1pbmktbW9kZSIsICItLWZvcmNlTWlu
aVZNTW9kZT10cnVlIiwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKIGVuZAogCitkZWYg
cnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkKCpvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpCisgICAgcnVuKCJsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzLWVuYWJsZWQi
LCAiLS11c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycz10cnVlIiAsICooRlRMX09QVElPTlMg
KyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorZW5kCisKIGRlZiBkZWZhdWx0UnVuCiAg
ICAgaWYgJG1vZGUgPT0gInF1aWNrIgogICAgICAgICBkZWZhdWx0UXVpY2tSdW4KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWNkM2U0NDY4
M2FiMTYyMmVmMWI3ODNlMzMyZTk3MTBkMzk2ZjE0Mi4uZjUxZDM2OGQ0MzkyZDZjYWRiYWYzMWQz
MTI1NzhiMjkzZDhjZjc2MCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNC0wMSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW0VTTmV4dF0gSW1wbGVtZW50IGxvZ2lj
YWwgYXNzaWdubWVudCBvcGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwOTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQu
anM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3It
bnVsbGlzaC5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1v
cGVyYXRvci1vci5qczogQWRkZWQuCisKKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1sOgor
ICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisgICAgICAgIFJpZ2h0IG5vdywg
dGVzdDI2MiBleHBlY3RzIGFuIGVhcmx5IGVycm9yIHRvIGJlIHRocm93biBpZiB0aGUgbGhzIGlz
IG5vdCBzaW1wbGUsIHdoaWNoIGRvZXMKKyAgICAgICAgbm90IG1hdGNoIHdoYXQgd2UgZG8gd2l0
aCBvdGhlciByZWFkLW1vZGlmeSBhc3NpZ25tZW50IG9wZXJhdG9ycy4gVGhpcyBpcyBsaWtlbHkg
dG8gY2hhbmdlCisgICAgICAgIGluIHRoZSBmdXR1cmUgdG8gbWF0Y2ggZXhpc3RpbmcgYmVoYXZp
b3IgKHRocm93IGEgYFJlZmVyZW5jZUVycm9yYCkgWzFdLgorCisgICAgICAgIFsxXTogPGh0dHBz
Oi8vZ2l0aHViLmNvbS90YzM5L2VjbWEyNjIvaXNzdWVzLzI1NyNpc3N1ZWNvbW1lbnQtNTAyODc4
NzA4PgorCiAyMDIwLTA0LTA5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlIGNhbiBzdGlsbCBjYWNoZSBkZWxldGUgaW4gc3RyaWN0IG1vZGUgYXMgbG9uZyBh
cyB0aGUgcHJvcGVydHkgaXMgbm90ICJub24tY29uZmlndXJhYmxlIgpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLWFuZC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E1
MmQxZjJkMTQ2N2FiZTk2Y2EyMjkxYmMyYTg1YmZlZDAzMzhkYgotLS0gL2Rldi9udWxsCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQuanMKQEAgLTAs
MCArMSwxNjE2IEBACisvL0AgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkCisK
K2Z1bmN0aW9uIHNob3VsZEJlKGZ1bmMsIGV4cGVjdGVkKSB7CisgICAgbGV0IGFjdHVhbCA9IGZ1
bmMoKTsKKyAgICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAiZnVuY3Rpb24iID8gIShhY3R1YWwg
aW5zdGFuY2VvZiBleHBlY3RlZCkgOiBhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpfSBidXQgZ290
ICR7SlNPTi5zdHJpbmdpZnkoYWN0dWFsKX1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3co
ZnVuYywgZXJyb3JUeXBlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGZ1
bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAg
ICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vycm9yICYmIGVycm9y
Lm5hbWV9IWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvd1N5bnRheEVycm9yKHNjcmlwdCkg
eworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJy
b3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhw
ZWN0ZWQgU3ludGF4RXJyb3IgYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICByZXR1cm4geCAmJj0gNDI7
Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAg
ICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiB4ICYmPSA0MjsK
K30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5k
ZWZpbmVkOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIHJldHVybiB4ICYm
PSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51
bGw7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHJldHVybiB4ICYmPSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHgg
JiY9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IGZhbHNlOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSAwOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9
LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAxOworICAgIHJldHVy
biB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSAxOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICB4ICYmPSA0
MjsKKyAgICByZXR1cm4geDsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSAidGVzdCI7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4ICYmPSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
fTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHgg
JiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtd
OworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCAmJj0g
NDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gdW5kZWZpbmVkOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgdW5kZWZpbmVk
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IG51bGw7CisgICAgcmV0
dXJuIHggJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBudWxsOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgbnVsbCk7CisK
K3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0cnVlOworICAgIHJldHVy
biB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IDA7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4
OworfSwgMCk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOwor
ICAgIHJldHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSAiIjsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCAiIik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAiIjsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sICIiKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOwor
CitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJu
IHggJiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4
LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmlu
ZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9
OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4LmEgJiY9IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIG51bGwp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4
LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9Owor
ICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4LmEgJiY9IDQy
OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBm
YWxzZX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geC5h
ICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAwfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAwKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSAmJj0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9
OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4LmEgJiY9IDQy
OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07
CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgIiIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4LmEgJiY9
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAi
dGVzdCJ9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEg
JiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiB7fX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSAm
Jj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IFtdfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHguYSAm
Jj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge307CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVk
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9
OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSAmJj0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBu
dWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsK
KyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geC5hICYm
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiB0cnVlfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVy
biB4LmEgJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07
CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsK
KyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9
OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
InRlc3QifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHguYSAmJj0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHguYSAmJj0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHguYSAmJj0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCB1bmRlZmlu
ZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHhbImEi
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhb
ImEiXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJu
IHhbImEiXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgbnVsbCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHhbImEi
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1
ZX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJu
IHhbImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IDB9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gJiY9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07
CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEi
XSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IHt9fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICByZXR1
cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogW119OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsK
KyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9
LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
IHVuZGVmaW5lZH07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
dW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBu
dWxsfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHhbImEiXSAmJj0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9Owor
ICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHhb
ImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogZmFsc2V9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiAwfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHhbImEiXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCAi
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAg
IHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sICIiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJh
Il0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6ICJ0ZXN0In07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsK
KyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeFsiYSJdICYmPSA0
MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRlZmlu
ZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSAmJj0g
NDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFt1bmRlZmluZWRdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdW5k
ZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbbnVsbF07Cisg
ICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gW251bGxdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBd
OworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVd
OworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhb
MF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW2ZhbHNl
XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBbMF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOwor
ICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbMV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAgICBy
ZXR1cm4geFswXSAmJj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gWyIiXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRlc3QiXTsKKyAgICBy
ZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICBy
ZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW3t9XTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbW11dOworICAgIHJldHVy
biB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbW11dOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOwor
CisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVy
biB4WzBdICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBbXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdW5k
ZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFswXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsK
K30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxd
OworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgbnVsbCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0g
JiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W3RydWVdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICByZXR1cm4g
eFswXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbZmFsc2VdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
ZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOworICAg
IHJldHVybiB4WzBdICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gWzBdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
MCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgcmV0
dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gWzFdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICByZXR1
cm4geFswXSAmJj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbIiJdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgIiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyJ0ZXN0Il07CisgICAg
cmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOwor
ICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFt7fV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOwor
ICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNl
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgKyB6
OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNl
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPSB6
OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNl
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgJiYg
ejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxz
ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ID8/
IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFs
c2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSB8
fCB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZh
bHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkg
JiY9IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
ZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0g
eSA/Pz0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYm
PSB5IHx8PSB6OworfSwgZmFsc2UpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJu
IHggJiY9IHkgKyB6OworfSwgMyk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYm
PSB5ID0gejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRy
dWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSAm
JiB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsK
KyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ID8/IHo7
Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAg
IGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHwgejsKK30s
IDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0
IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSAmJj0gejsKK30sIDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkg
PSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA/Pz0gejsKK30sIDEpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAx
OworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSB8fD0gejsKK30sIDEpOworCisK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEg
PSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBh
ID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQg
Z2V0IHNldCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAg
ICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7
CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hICYmPSA0
MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBh
OworfSwgImdldCBnZXQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0IHggPSB7CisgICAg
ICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAg
cmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisK
KyAgICB4LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCB1bmRlZmluZWQiKTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAg
ICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikg
eworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAg
ICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsK
KworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCBz
ZXQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisg
ICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAg
fSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAg
ICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSAmJj0gNDI7
CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsg
YTsKK30sICJnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0geworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAg
IHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBs
b2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9Owor
CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisgICAgcmV0dXJuIGxv
Zy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdW5kZWZpbmVkIik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJl
bnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50
Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAg
dGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1j
aGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAg
ICAgc3VwZXIuYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENo
aWxkOworICAgIHguX2EgPSB0cnVlOworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsK
KworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQg
Z2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQt
cGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2Eg
JiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVy
LmEgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gZmFsc2U7CisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAg
cmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFy
ZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBh
KCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAg
ICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAg
ICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hICYmPSB2Owor
ICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVu
ZGVmaW5lZDsKKyAgICB4LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4g
bG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0
LWNoaWxkIGdldC1wYXJlbnQgdW5kZWZpbmVkIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAg
ICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAg
ICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSAm
Jj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHgu
X2EgPSB0cnVlOworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAg
IHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBh
cmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50
IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7
CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJh
Il0gJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gZmFsc2U7CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOwor
CisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBn
ZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2
OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAg
ICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7
CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlclsi
YSJdICYmPSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7Cisg
ICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNo
aWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdW5kZWZpbmVkIik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxl
OiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6
IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3Jp
dGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZp
bmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsK
KyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAg
ICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAg
ICByZXR1cm4geC5hICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0
YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVy
biB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgewor
ICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOwor
ICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsK
KyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7
CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJh
IiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2Us
CisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCisK
Kworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4
ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1
ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4
WyJhIl0gJiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5k
ZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhb
ImEiXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCAmJj0gNDI7
CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAg
ICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigp
IHsKKyAgICAgICAgcmV0dXJuIHggJiY9IDQyOworICAgIH0pKCk7Cit9LCB1bmRlZmluZWQpOwor
CisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAg
KGZ1bmN0aW9uKCkgeworICAgICAgICB4ICYmPSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4
OworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IGZhbHNlOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ICYmPSA0
MjsKKyAgICB9KSgpOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJl
dHVybiB4ICYmPSA0MjsKKyAgICB9KSgpOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRo
cm93KGZ1bmN0aW9uKCkgeworICAgIHggJiY9IDQyOworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBy
ZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIHJldHVybiB1bmRlZmluZWQgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxk
VGhyb3dTeW50YXhFcnJvcihgbnVsbCAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJv
cihgdHJ1ZSAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgZmFsc2UgJiY9IDQy
YCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYDAgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93
U3ludGF4RXJyb3IoYDEgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCIiICYm
PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAidGVzdCIgJiY9IDQyYCk7CisKK3No
b3VsZFRocm93U3ludGF4RXJyb3IoYHt9ICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVy
cm9yKGBbXSAmJj0gNDJgKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNz
aWdubWVudC1vcGVyYXRvci1udWxsaXNoLmpzIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3Np
Z25tZW50LW9wZXJhdG9yLW51bGxpc2guanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNkMWMxYzA1MDI0MjdlNGFi
ODYwMTA1ZGUzMWM5NTAwYTVlYWY3NQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNz
L2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1udWxsaXNoLmpzCkBAIC0wLDAgKzEsMTYzMSBA
QAorLy9AIHJ1bkxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlvbiBz
aG91bGRCZShmdW5jLCBleHBlY3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBmdW5jKCk7CisgICAg
aWYgKHR5cGVvZiBleHBlY3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2Yg
ZXhwZWN0ZWQpIDogYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KGBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3Ry
aW5naWZ5KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9y
VHlwZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJy
b3IgaW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVj
dGVkICR7ZXJyb3JUeXBlLm5hbWV9IGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsK
K30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3dTeW50YXhFcnJvcihzY3JpcHQpIHsKKyAgICBsZXQg
ZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNl
b2YgU3ludGF4RXJyb3IpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFN5bnRh
eEVycm9yIGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICB4ID8/PSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1
bmRlZmluZWQ7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1
cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxs
OworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBudWxsOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJu
IHggPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gdHJ1ZTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHJldHVybiB4ID8/PSA0
MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxz
ZTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDAp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgeCA/Pz0gNDI7
CisgICAgcmV0dXJuIHg7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSAxOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IDE7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICByZXR1cm4g
eCA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
IiI7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ID8/PSA0MjsKK30s
ICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOwor
ICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBPYmpl
Y3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHggPz89
IDQyOworICAgIHJldHVybiB4OworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgeCA/Pz0gNDI7CisgICAg
cmV0dXJuIHg7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIFR5cGVFcnJv
cik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBudWxsOworICAg
IHJldHVybiB4ID8/PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB0cnVlOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIHRydWUpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICB4ID8/PSA0
MjsKKyAgICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gNDI7
CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSAwOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4g
eDsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAg
ICByZXR1cm4geCA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IDE7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAxKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICIiOworICAgIHJldHVybiB4ID8/PSA0
MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICIiOwor
ICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sICJ0
ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVzdCI7Cisg
ICAgcmV0dXJuIHggPz89IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIE9iamVjdCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCA/
Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW107CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgQXJy
YXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBy
ZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAg
cmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxs
fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0
cnVlfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogZmFsc2V9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeC5hID8/PSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDApOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICB4LmEgPz89IDQy
OworICAgIHJldHVybiB4LmE7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeC5hID8/PSA0MjsKKyAg
ICByZXR1cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHguYSA/Pz0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hID8/
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgT2Jq
ZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAg
IHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsK
K30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119
OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIEFycmF5KTsKKworCisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geC5hID8/
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9
OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4
LmEgPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9Owor
ICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0
cnVlfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHguYSA/Pz0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5h
ID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwg
MCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAg
eC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICB4
LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAi
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAg
IHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4LmEgPz89IDQy
OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiAidGVzdCJ9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICJ0ZXN0Iik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJl
dHVybiB4LmEgPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOwor
fSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBb
XX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAg
IHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSA/
Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IG51bGx9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0
dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IGZhbHNlfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHhbImEiXSA/Pz0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAw
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeFsi
YSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOwor
fSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAg
IHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDEpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0g
NDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIi
fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJu
IHhbImEiXSA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhb
ImEiXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IHt9fTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICB4WyJhIl0gPz89IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBB
cnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAg
ICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBBcnJheSk7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHhbImEi
XSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAg
ICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4WyJh
Il0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0g
NDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiB0cnVlfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07Cisg
ICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDApOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHhbImEiXSA/
Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwg
MSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAg
eFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gPz89
IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
ICIifTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAiIik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICBy
ZXR1cm4geFsiYSJdID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIE9iamVjdCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHhb
ImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0g
Pz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBB
cnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAg
IHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAg
ICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhb
MF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxd
OworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbbnVsbF07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhb
MF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVd
OworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtm
YWxzZV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgeFswXSA/Pz0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsx
XTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbMV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbIiJdOworICAg
IHJldHVybiB4WzBdID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbIiJdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAg
IHJldHVybiB4WzBdID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhb
MF07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7
fV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVy
biB4WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBbW11dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbW11dOworICAgIHhbMF0gPz89IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFtdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHhbMF0gPz89IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFsw
XSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAg
IHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsK
K30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVd
OworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBd
ID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFtmYWxzZV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBmYWxz
ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07CisgICAgcmV0
dXJuIHhbMF0gPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbMF07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAwKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsxXTsKKyAgICByZXR1cm4g
eFswXSA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFsxXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDEpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICByZXR1cm4geFsw
XSA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbIiJdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgIiIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJu
IHhbMF0gPz89IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFsidGVzdCJdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOwor
fSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt7fV07
CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFt7fV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJu
IHhbMF07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAgIHhbMF0gPz89IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4ID8/PSB5ICsgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4ID8/PSB5ID0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4ID8/PSB5ICYmIHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICBy
ZXR1cm4geCA/Pz0geSA/PyB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggPz89IHkgfHwgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAg
IHJldHVybiB4ID8/PSB5ICYmPSB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7Cisg
ICAgcmV0dXJuIHggPz89IHkgPz89IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsK
KyAgICByZXR1cm4geCA/Pz0geSB8fD0gejsKK30sIGZhbHNlKTsKKworCisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ID8/PSB5ICsgejsKK30sIDMpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsK
KyAgICByZXR1cm4geCA/Pz0geSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggPz89IHkgJiYgejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1
cm4geCA/Pz0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4
ID8/PSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89
IHkgJiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBu
dWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkg
Pz89IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxs
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgfHw9
IHo7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBb
XTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7
CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAg
ICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIp
OworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSA/Pz0g
NDI7CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsg
YTsKK30sICJnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1
cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1
c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAg
IHguYSA/Pz0gNDI7CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIp
ICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxldCB4
ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAg
ICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwK
KyAgICB9OworCisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEgPz89IDQyOworCisgICAgcmV0dXJu
IGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRy
dWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1
c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2
OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/
Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdl
dCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKwor
ICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAg
ICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAg
IH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAg
ICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gPz89IDQy
OworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAg
ICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAg
bG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsK
KworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJdID8/PSA0MjsKKworICAgIHJldHVybiBs
b2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50
IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIp
OworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEo
dikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRo
aXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQ
YXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hp
bGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAg
IHN1cGVyLmEgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGls
ZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisK
KyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBn
ZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSA/Pz0gdjsK
KyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAg
ICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAg
ICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAg
ICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSA/Pz0g
djsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2Eg
PSBmYWxzZTsKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4g
bG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0
LWNoaWxkIGdldC1wYXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1
c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0K
KyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVy
biBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEgPz89IHY7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVk
OworICAgIHguYSA/Pz0gNDI7CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9p
bigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQg
Z2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJl
bnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50
Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAg
dGhpcy5fYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1j
aGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAg
ICAgICAgc3VwZXJbImEiXSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0g
bmV3IENoaWxkOworICAgIHguX2EgPSB0cnVlOworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsi
YSJdID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30s
ICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVu
dCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQi
KTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBh
KHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0
aGlzLl9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMg
UGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNo
aWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAg
ICAgICBzdXBlclsiYSJdID8/PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBu
ZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsi
YSJdID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30s
ICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJl
bnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50
Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAg
dGhpcy5fYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1j
aGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAg
ICAgICAgc3VwZXJbImEiXSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0g
bmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsiYSJdID8/PSA0MjsKKyAg
ICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9h
OworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJl
bnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgewor
ICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOwor
ICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgewor
ICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsK
KyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7
CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAg
ICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRy
dWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVy
biB4LmEgPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxl
OiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIFR5cGVFcnJvcik7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30s
IHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAg
ICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307Cisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZp
bmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEi
XSA/Pz0gNDI7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNl
IHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwg
ImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisg
ICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAg
ICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsK
K30sIGZhbHNlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3Qi
OworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgewor
ICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAg
fSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsK
KyAgICAgICAgeCA/Pz0gNDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIHRydWUpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHJldHVybiAo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOworfSwgZmFs
c2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAg
ICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCA/Pz0gNDI7CisgICAgfSko
KTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0
cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCA/Pz0gNDI7CisgICAgfSkoKTsKKyAg
ICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHgg
Pz89IDQyOworICAgIH0pKCk7Cit9LCBmYWxzZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAg
ICAgICAgcmV0dXJuIHggPz89IDQyOworICAgIH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCisKKwor
c2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgeCA/Pz0gNDI7CisgICAgbGV0IHggPSB0cnVl
OworICAgIHJldHVybiB4OworfSwgUmVmZXJlbmNlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgcmV0dXJuIHVuZGVmaW5lZCA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZFRocm93U3ludGF4RXJyb3IoYG51bGwgPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJy
b3IoYHRydWUgPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYGZhbHNlID8/PSA0
MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAwID8/PSA0MmApOworCitzaG91bGRUaHJv
d1N5bnRheEVycm9yKGAxID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAiIiA/
Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgInRlc3QiID8/PSA0MmApOworCitz
aG91bGRUaHJvd1N5bnRheEVycm9yKGB7fSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhF
cnJvcihgW10gPz89IDQyYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFz
c2lnbm1lbnQtb3BlcmF0b3Itb3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1l
bnQtb3BlcmF0b3Itb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzhmODY0YTkwYTg0ZDhiMjYxYjE2NGQ1ZDdl
YzFkMmExZjdiZWNjYwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwt
YXNzaWdubWVudC1vcGVyYXRvci1vci5qcwpAQCAtMCwwICsxLDE2MTMgQEAKKy8vQCBydW5Mb2dp
Y2FsQXNzaWdubWVudE9wZXJhdG9yc0VuYWJsZWQKKworZnVuY3Rpb24gc2hvdWxkQmUoZnVuYywg
ZXhwZWN0ZWQpIHsKKyAgICBsZXQgYWN0dWFsID0gZnVuYygpOworICAgIGlmICh0eXBlb2YgZXhw
ZWN0ZWQgPT09ICJmdW5jdGlvbiIgPyAhKGFjdHVhbCBpbnN0YW5jZW9mIGV4cGVjdGVkKSA6IGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtK
U09OLnN0cmluZ2lmeShleHBlY3RlZCl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShhY3R1YWwp
fWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKKyAgICBs
ZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2Yg
ZXJyb3JUeXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlw
ZS5uYW1lfSBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZFRocm93U3ludGF4RXJyb3Ioc2NyaXB0KSB7CisgICAgbGV0IGVycm9yOworICAgIHRy
eSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVy
cm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9y
KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBTeW50YXhFcnJvciBidXQgc2F3
ICR7ZXJyb3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4OworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAg
IHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB1bmRlZmluZWQ7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICByZXR1cm4g
eCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
bnVsbDsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHJldHVybiB4IHx8PSA0MjsKK30s
IHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAg
eCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgeCB8fD0gNDI7
CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gMDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAxOworICAgIHJldHVy
biB4IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IDE7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAgeCB8fD0gNDI7
CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gInRlc3QiOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOworICAgIHggfHw9IDQyOworICAg
IHJldHVybiB4OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4
OworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsK
KyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gW107CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBBcnJh
eSk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdW5kZWZp
bmVkOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBudWxsOworICAgIHJldHVybiB4IHx8PSA0MjsK
K30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0
cnVlOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsK
K30sIHRydWUpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFs
c2U7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3co
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDA7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwg
VHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDE7Cisg
ICAgcmV0dXJuIHggfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSAxOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgMSk7CisKK3No
b3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAiIjsKKyAgICByZXR1cm4geCB8
fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gInRlc3QiOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVzdCI7CisgICAgcmV0dXJuIHggfHw9
IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHt9OworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBPYmpl
Y3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgcmV0
dXJuIHggfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gW107CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgQXJyYXkpOworCisKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAg
ICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHguYSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVu
ZGVmaW5lZH07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4g
eC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogbnVsbH07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1
cm4geC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9Owor
ICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsK
KyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAg
ICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAxfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJl
dHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAiIn07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAg
IHJldHVybiB4LmEgfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiB7fX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeC5hIHx8PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeC5hIHx8PSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeC5hIHx8PSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsK
KyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
bnVsbH07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4
LmEgfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogdHJ1ZX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdHJ1
ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9Owor
ICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
MH07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
IDF9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
IiJ9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVy
biB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgfHw9
IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIE9i
amVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319Owor
ICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEgfHw9
IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IFtdfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHt9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAg
ICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwg
dHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9Owor
ICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHRydWUpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHhb
ImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAg
IHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9
OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJu
IHhbImEiXTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAiIn07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCAidGVzdCIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAg
IHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geFsiYSJd
IHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IHt9fTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBP
YmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07Cisg
ICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVy
biB4WyJhIl07Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4WyJhIl0gfHw9IDQyOwor
ICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmlu
ZWR9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICByZXR1
cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
dHJ1ZX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gfHw9IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9
OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsi
YSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiAwfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAg
cmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAi
In07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgInRlc3Qi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9Owor
ICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sICJ0ZXN0Iik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiB7fX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiBbXX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHhbImEiXSB8fD0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHhbMF0gfHw9IDQy
OworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IFt1bmRlZmluZWRdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4
WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbbnVsbF07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICB4
WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwg
dHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAg
IHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gW2ZhbHNlXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW2ZhbHNlXTsK
KyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICB4
WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0gfHw9
IDQyOworICAgIHJldHVybiB4WzBdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gWyIiXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAgICB4WzBdIHx8PSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBbInRlc3QiXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCAidGVzdCIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0g
fHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIE9i
amVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICB4
WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9
LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAg
ICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsK
KyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHJldHVybiB4WzBd
IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFt1bmRlZmluZWRdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAgIHJl
dHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFtudWxsXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAg
ICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2Zh
bHNlXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gWzBdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFsxXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFsxXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIi
XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbIiJdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyJ0
ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHhbMF0gfHw9IDQyOwor
ICAgIHJldHVybiB4WzBdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFt7fV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgT2JqZWN0KTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt7fV07CisgICAgeFswXSB8
fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCBB
cnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAg
IHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgQXJyYXkpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBs
ZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgKyB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0
IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ID0gejsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6
ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSAmJiB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4IHx8PSB5ID8/IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9
IDI7CisgICAgcmV0dXJuIHggfHw9IHkgfHwgejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCB8fD0geSAmJj0gejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCB8fD0geSB8fD0gejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCB8fD0geSA/Pz0gejsKK30sIHRydWUpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgKyB6OworfSwgMyk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4IHx8PSB5ID0gejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAg
ICByZXR1cm4geCB8fD0geSAmJiB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4IHx8PSB5ID8/IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJu
IHggfHw9IHkgfHwgejsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8
fD0geSAmJj0gejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0g
eSB8fD0gejsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51
bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/
Pz0gejsKK30sIDEpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOwor
ICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hIHx8
PSA0MjsKKyAgICB4LmEgfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIg
KyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0geworICAgICAg
ICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJl
dHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisg
ICAgeC5hIHx8PSA0MjsKKyAgICB4LmEgfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIg
IikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxl
dCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsK
KyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAg
fSwKKyAgICB9OworCisgICAgeC5hIHx8PSA0MjsKKyAgICB4LmEgfHw9IDQyOworCisgICAgcmV0
dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKKwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9
IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9n
LnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAg
IHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEg
PSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEi
XSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0
IGdldCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsK
KworICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgewor
ICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAg
ICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsK
KyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHhbImEiXSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0IHggPSB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAg
ICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAg
IH07CisKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEiXSB8fD0gNDI7CisKKyAgICByZXR1
cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBh
cmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJl
bnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAg
ICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVu
ZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAg
ICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcg
Q2hpbGQ7CisgICAgeC5fYSA9IHRydWU7CisgICAgeC5hIHx8PSA0MjsKKyAgICB4LmEgfHw9IDQy
OworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGls
ZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAg
ICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgfHw9
IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgewor
ICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAg
ICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEg
fHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4
Ll9hID0gZmFsc2U7CisgICAgeC5hIHx8PSA0MjsKKyAgICB4LmEgfHw9IDQyOworCisgICAgcmV0
dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50
IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xh
c3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAg
ICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQg
ZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9Cisg
ICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAg
ICAgICAgICAgIHN1cGVyLmEgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9
IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOworICAgIHguYSB8fD0gNDI7CisgICAg
eC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30s
ICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdl
dC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAg
fQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBh
KCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0
dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAg
ICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSB8fD0gdjsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB0
cnVlOworICAgIHhbImEiXSB8fD0gNDI7CisgICAgeFsiYSJdIHx8PSA0MjsKKworICAgIHJldHVy
biBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBn
ZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgewor
ICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9
CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1
cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdIHx8PSB2Owor
ICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZh
bHNlOworICAgIHhbImEiXSB8fD0gNDI7CisgICAgeFsiYSJdIHx8PSA0MjsKKworICAgIHJldHVy
biBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBz
ZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAg
IHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAg
ICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4
dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
Z2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQor
ICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7Cisg
ICAgICAgICAgICBzdXBlclsiYSJdIHx8PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0
IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4WyJhIl0gfHw9IDQy
OworICAgIHhbImEiXSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEi
LCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAg
fSk7CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEi
LCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAg
IH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIs
IHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAor
ICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAg
ICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwg
dHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAg
ICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAg
ICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAg
cmV0dXJuIHguYSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlv
bigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIFR5
cGVFcnJvcik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9Owor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUs
CisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8
PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9
OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZh
bHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEi
XSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTog
dW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJu
IHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFs
c2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hv
dWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFs
c2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJd
IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAg
ICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6
IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgVHlwZUVycm9y
KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICAo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHggfHw9IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7
Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsK
KyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7CisgICAg
fSkoKTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRl
ZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggfHw9IDQy
OworICAgIH0pKCk7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggfHw9IDQyOworICAg
IH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHJldHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxk
VGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4g
KGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7CisgICAgfSkoKTsKK30sIFR5
cGVFcnJvcik7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICB4IHx8PSA0MjsK
KyAgICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHg7Cit9LCBSZWZlcmVuY2VFcnJvcik7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdW5kZWZpbmVkIHx8PSA0MjsK
K30sIDQyKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgbnVsbCB8fD0gNDJgKTsKKworc2hv
dWxkVGhyb3dTeW50YXhFcnJvcihgdHJ1ZSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhF
cnJvcihgZmFsc2UgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYDAgfHw9IDQy
YCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYDEgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93
U3ludGF4RXJyb3IoYCIiIHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAidGVz
dCIgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYHt9IHx8PSA0MmApOworCitz
aG91bGRUaHJvd1N5bnRheEVycm9yKGBbXSB8fD0gNDJgKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi9jb25maWcueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAppbmRleCAw
YjZiNTZlOGMxZDJjZTEwYTZlNjNjYjQ3MDJmODA5NDBjN2UwYTU4Li4wYzY3YTRkZTYzM2UyZDU1
ZDljOTM1NDdkNjhjMDRkNjRiMWMwM2Y3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvY29u
ZmlnLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC00LDYgKzQsNyBA
QCBmbGFnczoKICAgQmlnSW50OiB1c2VCaWdJbnQKICAgV2Vha1JlZjogdXNlV2Vha1JlZnMKICAg
Y2xhc3MtZmllbGRzLXB1YmxpYzogdXNlUHVibGljQ2xhc3NGaWVsZHMKKyAgbG9naWNhbC1hc3Np
Z25tZW50LW9wZXJhdG9yczogdXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMKIHNraXA6CiAg
IGZlYXR1cmVzOgogICAgIC0gU2hhcmVkQXJyYXlCdWZmZXIKQEAgLTIwLDggKzIxLDYgQEAgc2tp
cDoKICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0NzUK
ICAgICAtIHJlZ2V4cC1tYXRjaC1pbmRpY2VzCiAgICAgLSB0b3AtbGV2ZWwtYXdhaXQKLSAgICAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3MTYKLSAgICAtIGxv
Z2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnMKICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI1NjYKICAgICAtIFByb21pc2UuYW55CiAgICAgLSBBZ2dyZWdh
dGVFcnJvcgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIv
SlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IDdiZDdkN2Y4OTZlZjgyYmMz
YjA4NzlmMTMwNWFjNjA4MDJkNjY3YjIuLjlhZDdiN2Q5YTgyOTYwZDgwMzllNDU5MzliYTAyZDNk
OTFmNDNhNjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTI3NjAsNiArMjc2MCwx
MiBAQCB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2ltcG9ydC5tZXRhL3N5bnRheC9pbnZhbGlk
LWFzc2lnbm1lbnQtdGFyZ2V0LWZvci1vZi1sbwogdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9p
bnN0YW5jZW9mL3Byb3RvdHlwZS1nZXR0ZXItd2l0aC1wcmltaXRpdmUuanM6CiAgIGRlZmF1bHQ6
ICJUZXN0MjYyRXJyb3I6IGdldHRlciBmb3IgJ3Byb3RvdHlwZScgY2FsbGVkIgogICBzdHJpY3Qg
bW9kZTogIlRlc3QyNjJFcnJvcjogZ2V0dGVyIGZvciAncHJvdG90eXBlJyBjYWxsZWQiCit0ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLWFuZC1hc3NpZ25t
ZW50LW9wZXJhdG9yLW5vbi1zaW1wbGUtbGhzLmpzOgorICBkZWZhdWx0OiAiVGVzdDI2MjogVGhp
cyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQuIgordGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1udWxsaXNoLWFzc2lnbm1lbnQtb3BlcmF0
b3Itbm9uLXNpbXBsZS1saHMuanM6CisgIGRlZmF1bHQ6ICJUZXN0MjYyOiBUaGlzIHN0YXRlbWVu
dCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4iCit0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xv
Z2ljYWwtYXNzaWdubWVudC9sZ2NsLW9yLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1s
aHMuanM6CisgIGRlZmF1bHQ6ICJUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4iCiB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL25ldy9jdG9yRXhwci1mbi1y
ZWYtYmVmb3JlLWFyZ3MtZXZhbC1mbi13cmFwdXAuanM6CiAgIGRlZmF1bHQ6ICJUeXBlRXJyb3I6
IDEgaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyB4KHggPSAxKScpIgogICBz
dHJpY3QgbW9kZTogIlR5cGVFcnJvcjogMSBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGlu
ZyAnbmV3IHgoeCA9IDEpJykiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396025</attachid>
            <date>2020-04-09 16:40:02 -0700</date>
            <delta_ts>2020-04-14 13:53:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200409174001.patch</filename>
            <type>text/plain</type>
            <size>114564</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk4MzlhODNkNzNmOWVmOWJmN2YwY2UwOTNiYTEx
OTQ0MTEyZTI5NDkuLjE0MjA4Mjk0ZDQyMmQyYjJlMzhmOGZjMzZhODI1M2E2YmRmOTU5YzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTA5ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBub3cgU3RhZ2UgMy4gSXQgaW50cm9kdWNlcwor
ICAgICAgICB0aHJlZSBuZXcgYXNzaWdubWVudCBvcGVyYXRvcnMgd2hpY2ggd2lsbCBvbmx5IHN0
b3JlIHRoZSByZXN1bHQgb2YgdGhlIHJocyBpbiB0aGUgbGhzIGlmIHRoZQorICAgICAgICBsaHMg
bWVldHMgdGhlIGdpdmVuIGNvbmRpdGlvbjoKKyAgICAgICAgIC0gYD8/PWAsIGZvciBpZiB0aGUg
bGhzIGlzIG51bGxpc2ggKGBudWxsYCBvciBgdW5kZWZpbmVkYCkKKyAgICAgICAgIC0gYHx8PWAs
IGZvciBpZiB0aGUgbGhzIGlzIGZhbHN5CisgICAgICAgICAtIGAmJj1gLCBmb3IgaWYgdGhlIGxo
cyBpcyB0cnV0aHkKKworICAgICAgICBUaGlzIHNob3J0IGNpcmN1aXRpbmcgY2FuIGJlIGJlbmVm
aWNpYWwgYXMgaXQgY2FuIGF2b2lkIGEgcmVkdW5kYW50IHN0b3JlIHdoZW4gdXNlZCBpbiB0aGUK
KyAgICAgICAgY29tbW9uIEphdmFTY3JpcHQgcHJvZ3JhbW1pbmcgcGF0dGVybiBvZiAiZGVmYXVs
dGluZyIgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgYGBganMKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZvbyh4KSB7CisgICAgICAgICAgICAgICAgeCA9IHggfHwgNDI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIGBgYAorCisgICAgICAgIElmIGB4YCBpcyBhIHRydXRoeSB2YWx1ZSwgaXQgd291bGQg
cmVzdWx0IGluIHRoZSByaHMgYHhgIGJlaW5nIHN0b3JlZCBiYWNrIGludG8gdGhlIGxocyBgeGAu
CisgICAgICAgIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gaGF2ZSBuZWdhdGl2ZSB1bmlu
dGVuZGVkIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBmb3IgYGlubmVySFRNTGAuCisKKyAgICAgICAg
TG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycywgaG93ZXZlciwgYXJlIGRlZmluZWQgc3VjaCB0
aGF0IHRoZXkgb25seSBzdG9yZSBpZiB0aGUgcmhzIGlzCisgICAgICAgIHRvIGFjdHVhbGx5IGJl
IG5lZWRlZC91c2VkLCBza2lwcGluZyB0aGUgcmVkdW5kYW50IHN0b3JlIGFuZCBzaW1wbHkgcmV0
dXJuaW5nIGxocyBvdGhlcndpc2UuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcmVhZG9ubHkg
cmVmZXJlbmNlcywgdGhpcyBtZWFucyB0aGF0IGFuIGVycm9yIGlzIG9ubHkgdGhyb3duIHdoZW4g
dGhlCisgICAgICAgIGFzc2lnbm1lbnQgb2NjdXJzLCBtZWFuaW5nIHRoYXQgaWYgdGhlIGxocyBh
bHJlYWR5IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uIGl0IHdpbGwgYmUgdXNlZAorICAgICAgICBh
bmQgcmV0dXJuZWQgd2l0aCBubyBlcnJvci4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6bGV4V2l0aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGU6OlNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlKTogQWRkZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50
KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRN
b2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKworICAg
ICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEgYHVzZUxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0aGlzIGZlYXR1cmUu
CisKIDIwMjAtMDQtMDkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBNb2R1bGVFbnZpcm9ubWVudCBkbyBub3QgaGF2ZSBKU0dsb2JhbExleGljYWxF
bnZpcm9ubWVudCBhcyBpdHMgdXBwZXIgc2NvcGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCBhNWU0Y2ViNDYyZmE0MmNh
YWNlNjQyNGEyMTA2MDY4NWQ1NjkyZGJhLi5jZTg0YmRlZGMwYThiNDVlZTVhZTY4YmMxMDkwZmZl
MWNmMDk1NGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0yODU2LDYgKzI4NTYsMTAzIEBAIFJlZ2lzdGVySUQqIFJl
YWRNb2RpZnlSZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5l
cmF0b3IsIFJlCiAgICAgcmV0dXJuIHJldHVyblJlc3VsdDsKIH0KIAorLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisvLyBGSVhNRTogc2hvdWxkIHRoaXMg
YmUgbW92ZWQgdG8gYmUgYSBtZXRob2Qgb24gQnl0ZWNvZGVHZW5lcmF0b3I/CitzdGF0aWMgQUxX
QVlTX0lOTElORSB2b2lkIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIHZhbHVlLCBPcGVyYXRvciBvcGVyLCBMYWJlbCYg
c2hvcnRDaXJjdWl0TGFiZWwpCit7CisgICAgc3dpdGNoIChvcGVyKSB7CisgICAgY2FzZSBPcGVy
YXRvcjo6TnVsbGlzaEVxOgorICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKGdlbmVy
YXRvci5lbWl0SXNVbmRlZmluZWRPck51bGwoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCB2YWx1
ZSksIHNob3J0Q2lyY3VpdExhYmVsKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE9wZXJh
dG9yOjpPckVxOgorICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZlRydWUodmFsdWUsIHNob3J0
Q2lyY3VpdExhYmVsKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE9wZXJhdG9yOjpBbmRF
cToKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZGYWxzZSh2YWx1ZSwgc2hvcnRDaXJjdWl0
TGFiZWwpOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworUmVnaXN0
ZXJJRCogU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIEpTVGV4
dFBvc2l0aW9uIG5ld0Rpdm90ID0gZGl2b3RTdGFydCgpICsgbV9pZGVudC5sZW5ndGgoKTsKKwor
ICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2lkZW50KTsKKworICAgIGlm
IChSZWZQdHI8UmVnaXN0ZXJJRD4gbG9jYWwgPSB2YXIubG9jYWwoKSkgeworICAgICAgICBnZW5l
cmF0b3IuZW1pdFREWkNoZWNrSWZOZWNlc3NhcnkodmFyLCBsb2NhbC5nZXQoKSwgbnVsbHB0cik7
CisKKyAgICAgICAgaWYgKHZhci5pc1JlYWRPbmx5KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiByZXN1bHQgPSBsb2NhbDsKKworICAgICAgICAgICAgUmVmPExhYmVsPiBzaG9y
dENpcmN1aXRMYWJlbCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgICAgICAgICAgZW1pdFNo
b3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3Is
IHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgICAgICAgICAgcmVzdWx0ID0gZ2VuZXJh
dG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsgLy8gRXhl
Y3V0ZSBzaWRlIGVmZmVjdHMgZmlyc3QuCisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFJlYWRP
bmx5RXhjZXB0aW9uSWZOZWVkZWQodmFyKTsKKworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRM
YWJlbChzaG9ydENpcmN1aXRMYWJlbC5nZXQoKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1p
dFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAg
ICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoZ2VuZXJhdG9yLmxlZnRIYW5kU2lkZU5lZWRzQ29weShtX3Jp
Z2h0SGFzQXNzaWdubWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKSkgeworICAgICAg
ICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5uZXdUZW1wb3Jhcnko
KTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5tb3ZlKHJlc3VsdC5nZXQoKSwgbG9jYWwuZ2V0KCkp
OworCisgICAgICAgICAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9y
Lm5ld0xhYmVsKCk7CisgICAgICAgICAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5l
cmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkp
OworCisgICAgICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlv
bihyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAgICAgICAgICAgZ2VuZXJhdG9yLm1vdmUobG9j
YWwuZ2V0KCksIHJlc3VsdC5nZXQoKSk7CisKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFi
ZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQ
cm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAg
ICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAg
ICB9CisKKyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGxvY2FsOworCisgICAg
ICAgIFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsK
KyAgICAgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0
KCksIG1fb3BlcmF0b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgICAgICByZXN1
bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmln
aHQpOworCisgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0
KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2
b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRz
dCwgcmVzdWx0LmdldCgpKTsKKyAgICB9CisKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25J
bmZvKG5ld0Rpdm90LCBkaXZvdFN0YXJ0KCksIG5ld0Rpdm90KTsKKyAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShudWxscHRyLCB2YXIpOwor
CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0RnJvbVNj
b3BlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgc2NvcGUuZ2V0KCksIHZhciwgVGhyb3dJZk5v
dEZvdW5kKTsKKyAgICBnZW5lcmF0b3IuZW1pdFREWkNoZWNrSWZOZWNlc3NhcnkodmFyLCByZXN1
bHQuZ2V0KCksIG51bGxwdHIpOworCisgICAgUmVmPExhYmVsPiBzaG9ydENpcmN1aXRMYWJlbCA9
IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdl
bmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBzaG9ydENpcmN1aXRMYWJlbC5nZXQo
KSk7CisKKyAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1
bHQuZ2V0KCksIG1fcmlnaHQpOyAvLyBFeGVjdXRlIHNpZGUgZWZmZWN0cyBmaXJzdC4KKyAgICBn
ZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RF
bmQoKSk7CisgICAgaWYgKHZhci5pc1JlYWRPbmx5KCkpCisgICAgICAgIGdlbmVyYXRvci5lbWl0
UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0
ID0gZ2VuZXJhdG9yLmVtaXRQdXRUb1Njb3BlKHNjb3BlLmdldCgpLCB2YXIsIHJlc3VsdC5nZXQo
KSwgVGhyb3dJZk5vdEZvdW5kLCBJbml0aWFsaXphdGlvbk1vZGU6Ok5vdEluaXRpYWxpemF0aW9u
KTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2hvcnRDaXJjdWl0TGFiZWwuZ2V0KCkpOwor
ICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0LmdldCgpLCB2YXIsIGRpdm90U3Rh
cnQoKSwgZGl2b3RFbmQoKSk7CisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0
LmdldCgpKTsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2lnblJl
c29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIHN0YXRpYyBJ
bml0aWFsaXphdGlvbk1vZGUgaW5pdGlhbGl6YXRpb25Nb2RlRm9yQXNzaWdubWVudENvbnRleHQo
QXNzaWdubWVudENvbnRleHQgYXNzaWdubWVudENvbnRleHQpCiB7CiAgICAgc3dpdGNoIChhc3Np
Z25tZW50Q29udGV4dCkgewpAQCAtMjg3MSw4ICsyOTY4LDYgQEAgc3RhdGljIEluaXRpYWxpemF0
aW9uTW9kZSBpbml0aWFsaXphdGlvbk1vZGVGb3JBc3NpZ25tZW50Q29udGV4dChBc3NpZ25tZW50
Q29udGUKICAgICByZXR1cm4gSW5pdGlhbGl6YXRpb25Nb2RlOjpOb3RJbml0aWFsaXphdGlvbjsK
IH0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2lnblJlc29sdmVOb2Rl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KIFJlZ2lzdGVySUQqIEFzc2ln
blJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXN0ZXJJRCogZHN0KQogewogICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJs
ZShtX2lkZW50KTsKQEAgLTI5NzMsNiArMzA2OCwzNyBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5
RG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lz
dAogICAgIHJldHVybiByZXQ7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRz
dCkKK3sKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZv
ckxlZnRIYW5kU2lkZShtX2Jhc2UsIG1fcmlnaHRIYXNBc3NpZ25tZW50cywgbV9yaWdodC0+aXNQ
dXJlKGdlbmVyYXRvcikpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzVmFsdWU7CisKKyAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0OworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNz
aW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3QoKSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4
cHJlc3Npb25FbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAgICAg
ICB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5zdXJlVGhpcygpOworICAgICAgICByZXN1bHQgPSBn
ZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNl
LmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1faWRlbnQpOworICAgIH0gZWxzZQorICAgICAgICBy
ZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihk
c3QpLCBiYXNlLmdldCgpLCBtX2lkZW50KTsKKworICAgIFJlZjxMYWJlbD4gc2hvcnRDaXJjdWl0
TGFiZWwgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdu
bWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgc2hvcnRDaXJjdWl0TGFi
ZWwuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRp
b24ocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25J
bmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+
aXNTdXBlck5vZGUoKSkKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRCeUlkKGJh
c2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgbV9pZGVudCwgcmVzdWx0LmdldCgpKTsKKyAgICBl
bHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdldCgpLCBt
X2lkZW50LCByZXN1bHQuZ2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChzaG9ydENp
cmN1aXRMYWJlbC5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQu
Z2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgcmV0dXJuIGdlbmVyYXRvci5t
b3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIEFzc2lnbkVycm9yTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCiBSZWdpc3RlcklEKiBBc3NpZ25FcnJvck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikKQEAgLTMwMzcsNiArMzE2MywzOCBAQCBS
ZWdpc3RlcklEKiBSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogICAgIHJldHVybiB1cGRhdGVkVmFsdWU7CiB9CiAKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJh
Y2tldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJ
RCogU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFz
ZSwgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyB8fCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1f
c3Vic2NyaXB0LT5pc1B1cmUoZ2VuZXJhdG9yKSAmJiBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9y
KSk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5ID0gZ2VuZXJhdG9yLmVtaXROb2Rl
Rm9yTGVmdEhhbmRTaWRlRm9yUHJvcGVydHkobV9zdWJzY3JpcHQsIG1fcmlnaHRIYXNBc3NpZ25t
ZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOworICAgIFJlZlB0cjxSZWdpc3RlcklE
PiB0aGlzVmFsdWU7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0OworCisgICAgZ2Vu
ZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3QoKSwgc3ViZXhwcmVz
c2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+aXNTdXBl
ck5vZGUoKSkgeworICAgICAgICB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5zdXJlVGhpcygpOwor
ICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5VmFsKGdlbmVyYXRvci50ZW1wRGVz
dGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBwcm9wZXJ0eS5nZXQo
KSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlWYWwo
Z2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBwcm9wZXJ0eS5nZXQo
KSk7CisKKyAgICBSZWY8TGFiZWw+IHNob3J0Q2lyY3VpdExhYmVsID0gZ2VuZXJhdG9yLm5ld0xh
YmVsKCk7CisgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQu
Z2V0KCksIG1fb3BlcmF0b3IsIHNob3J0Q2lyY3VpdExhYmVsLmdldCgpKTsKKworICAgIHJlc3Vs
dCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdo
dCk7CisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0
KCksIGRpdm90RW5kKCkpOworICAgIGlmIChtX2Jhc2UtPmlzU3VwZXJOb2RlKCkpCisgICAgICAg
IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlWYWwoYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdl
dCgpLCBwcm9wZXJ0eS5nZXQoKSwgcmVzdWx0LmdldCgpKTsKKyAgICBlbHNlCisgICAgICAgIHJl
c3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlWYWwoYmFzZS5nZXQoKSwgcHJvcGVydHkuZ2V0KCks
IHJlc3VsdC5nZXQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNob3J0Q2lyY3VpdExh
YmVsLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwg
ZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0
LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Q29tbWFOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZWdpc3Rl
cklEKiBDb21tYU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRl
ci5oCmluZGV4IDQzYjE3MWZiYzRlN2IzNTlkYmU2ODI3ZmE1ZGM1Yjg1YTg5ZWJmYzAuLjVlMzUz
YmQxNzYzZDllMmY3NGQzNjQyNDRhMGIwZGFkZDIyNTgyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0xNTQ4LDYgKzE1NDgsNyBAQCBFeHByZXNzaW9u
Tm9kZSogQVNUQnVpbGRlcjo6bWFrZUFzc2lnbk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBs
b2NhdGlvbiwgRXhwcgogCiAgICAgaWYgKGxvYy0+aXNSZXNvbHZlTm9kZSgpKSB7CiAgICAgICAg
IFJlc29sdmVOb2RlKiByZXNvbHZlID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPihsb2MpOwor
CiAgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6RXF1YWwpIHsKICAgICAgICAgICAgIGlmIChl
eHByLT5pc0Jhc2VGdW5jRXhwck5vZGUoKSkgewogICAgICAgICAgICAgICAgIGF1dG8gbWV0YWRh
dGEgPSBzdGF0aWNfY2FzdDxCYXNlRnVuY0V4cHJOb2RlKj4oZXhwciktPm1ldGFkYXRhKCk7CkBA
IC0xNTU4LDIxICsxNTU5LDQyIEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQXNz
aWduTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByCiAgICAgICAgICAg
ICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBzdGFydCwgZGl2b3QsIGVuZCk7CiAgICAgICAg
ICAgICByZXR1cm4gbm9kZTsKICAgICAgICAgfQorCisgICAgICAgIGlmIChvcCA9PSBPcGVyYXRv
cjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJhdG9yOjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpB
bmRFcSkKKyAgICAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFNob3J0Q2lyY3Vp
dFJlYWRNb2RpZnlSZXNvbHZlTm9kZShsb2NhdGlvbiwgcmVzb2x2ZS0+aWRlbnRpZmllcigpLCBv
cCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CisKICAgICAg
ICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUmVhZE1vZGlmeVJlc29sdmVOb2RlKGxvY2F0
aW9uLCByZXNvbHZlLT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMs
IGRpdm90LCBzdGFydCwgZW5kKTsKICAgICB9CisKICAgICBpZiAobG9jLT5pc0JyYWNrZXRBY2Nl
c3Nvck5vZGUoKSkgewogICAgICAgICBCcmFja2V0QWNjZXNzb3JOb2RlKiBicmFja2V0ID0gc3Rh
dGljX2Nhc3Q8QnJhY2tldEFjY2Vzc29yTm9kZSo+KGxvYyk7CisKICAgICAgICAgaWYgKG9wID09
IE9wZXJhdG9yOjpFcXVhbCkKICAgICAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEp
IEFzc2lnbkJyYWNrZXROb2RlKGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1
YnNjcmlwdCgpLCBleHByLCBsb2NIYXNBc3NpZ25tZW50cywgZXhwckhhc0Fzc2lnbm1lbnRzLCBi
cmFja2V0LT5kaXZvdCgpLCBzdGFydCwgZW5kKTsKKworICAgICAgICBpZiAob3AgPT0gT3BlcmF0
b3I6Ok51bGxpc2hFcSB8fCBvcCA9PSBPcGVyYXRvcjo6T3JFcSB8fCBvcCA9PSBPcGVyYXRvcjo6
QW5kRXEpIHsKKyAgICAgICAgICAgIGF1dG8qIG5vZGUgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIFNo
b3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZShsb2NhdGlvbiwgYnJhY2tldC0+YmFzZSgp
LCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3AsIGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRzLCBleHBy
SGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIG5vZGUtPnNl
dFN1YmV4cHJlc3Npb25JbmZvKGJyYWNrZXQtPmRpdm90KCksIGJyYWNrZXQtPmRpdm90RW5kKCku
b2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAgICB9CisKICAgICAgICAg
UmVhZE1vZGlmeUJyYWNrZXROb2RlKiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBSZWFkTW9k
aWZ5QnJhY2tldE5vZGUobG9jYXRpb24sIGJyYWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2Ny
aXB0KCksIG9wLCBleHByLCBsb2NIYXNBc3NpZ25tZW50cywgZXhwckhhc0Fzc2lnbm1lbnRzLCBk
aXZvdCwgc3RhcnQsIGVuZCk7CiAgICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGJy
YWNrZXQtPmRpdm90KCksIGJyYWNrZXQtPmRpdm90RW5kKCkub2Zmc2V0KTsKICAgICAgICAgcmV0
dXJuIG5vZGU7CiAgICAgfQorCiAgICAgQVNTRVJUKGxvYy0+aXNEb3RBY2Nlc3Nvck5vZGUoKSk7
CiAgICAgRG90QWNjZXNzb3JOb2RlKiBkb3QgPSBzdGF0aWNfY2FzdDxEb3RBY2Nlc3Nvck5vZGUq
Pihsb2MpOworCiAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpFcXVhbCkKICAgICAgICAgcmV0dXJu
IG5ldyAobV9wYXJzZXJBcmVuYSkgQXNzaWduRG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCks
IGRvdC0+aWRlbnRpZmllcigpLCBleHByLCBleHBySGFzQXNzaWdubWVudHMsIGRvdC0+ZGl2b3Qo
KSwgc3RhcnQsIGVuZCk7CiAKKyAgICBpZiAob3AgPT0gT3BlcmF0b3I6Ok51bGxpc2hFcSB8fCBv
cCA9PSBPcGVyYXRvcjo6T3JFcSB8fCBvcCA9PSBPcGVyYXRvcjo6QW5kRXEpIHsKKyAgICAgICAg
YXV0byogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURv
dE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIs
IGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOworICAgICAgICBub2RlLT5z
ZXRTdWJleHByZXNzaW9uSW5mbyhkb3QtPmRpdm90KCksIGRvdC0+ZGl2b3RFbmQoKS5vZmZzZXQp
OworICAgICAgICByZXR1cm4gbm9kZTsKKyAgICB9CisKICAgICBSZWFkTW9kaWZ5RG90Tm9kZSog
bm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgUmVhZE1vZGlmeURvdE5vZGUobG9jYXRpb24sIGRv
dC0+YmFzZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50
cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwogICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRv
dC0+ZGl2b3QoKSwgZG90LT5kaXZvdEVuZCgpLm9mZnNldCk7CiAgICAgcmV0dXJuIG5vZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCmluZGV4IDRmYjgzY2EzYTBhN2M4YWE5
OTJkMjAyOWU5MDlhMDMyYzE1ZDkwMDYuLmJhZTVmNmY4MzkyOWIwODU2ODUzM2E4MmYyMTY0Mzkz
NzgzYjIyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC0yMDg2
LDYgKzIwODYsMTEgQEAgc3RhcnQ6CiAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgIGlmIChtX2N1
cnJlbnQgPT0gJyYnKSB7CiAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKFVO
TElLRUxZKE9wdGlvbnM6OnVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJy
ZW50ID09ICc9JykpIHsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAg
IHRva2VuID0gQU5ERVFVQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICB0b2tlbiA9IEFORDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CkBAIC0yMTIzLDYgKzIxMjgsMTEgQEAgc3RhcnQ6CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1f
Y3VycmVudCA9PSAnfCcpIHsKICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAo
VU5MSUtFTFkoT3B0aW9uczo6dXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1
cnJlbnQgPT0gJz0nKSkgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAg
ICAgdG9rZW4gPSBPUkVRVUFMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQogICAgICAgICAgICAgdG9rZW4gPSBPUjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CkBAIC0yMTU5LDYgKzIxNjksMTEgQEAgc3RhcnQ6CiAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAg
IGlmIChtX2N1cnJlbnQgPT0gJz8nKSB7CiAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAg
ICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzKCkg
JiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAg
ICAgICAgICAgIHRva2VuID0gTlVMTElTSEVRVUFMOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBDT0FMRVNDRTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZUNvbnN0cnVjdG9ycy5oCmluZGV4IGZkOTdhMGNhOTM1ZTdlNTc3OGEwOTM4NTAyMmY5ODY3ODAx
NGEzMjQuLmFmMDQzNDU4YTQzNzYxNjI0NDFiNjI0MDgxMDlkZTU4YTIyYjVlZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC03MTgs
NiArNzE4LDE2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUg
U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5
UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnQsIE9wZXJhdG9yIG9wZXIsIEV4cHJlc3Npb25Ob2RlKiAgcmlnaHQsIGJvb2wg
cmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5k
KQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIFRocm93YWJs
ZUV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKKyAgICAgICAgLCBt
X2lkZW50KGlkZW50KQorICAgICAgICAsIG1fcmlnaHQocmlnaHQpCisgICAgICAgICwgbV9vcGVy
YXRvcihvcGVyKQorICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25tZW50cyhyaWdodEhhc0Fzc2ln
bm1lbnRzKQorICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUgQXNzaWduUmVzb2x2ZU5vZGU6OkFz
c2lnblJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElk
ZW50aWZpZXImIGlkZW50LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIEFzc2lnbm1lbnRDb250ZXh0
IGFzc2lnbm1lbnRDb250ZXh0KQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQog
ICAgICAgICAsIG1faWRlbnQoaWRlbnQpCkBAIC03MzksNiArNzQ5LDE4IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJy
YWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2Rl
KiBzdWJzY3JpcHQsIE9wZXJhdG9yIG9wZXIsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBz
dWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUo
bG9jYXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRp
dm90U3RhcnQsIGRpdm90RW5kKQorICAgICAgICAsIG1fYmFzZShiYXNlKQorICAgICAgICAsIG1f
c3Vic2NyaXB0KHN1YnNjcmlwdCkKKyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQorICAgICAgICAs
IG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzKHN1
YnNjcmlwdEhhc0Fzc2lnbm1lbnRzKQorICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25tZW50cyhy
aWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUgQXNzaWduQnJh
Y2tldE5vZGU6OkFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRp
b24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHBy
ZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmln
aHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQog
ICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIFRocm93YWJsZUV4
cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKQEAgLTc3MSw2ICs3OTMs
MTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENp
cmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0
IElkZW50aWZpZXImIGlkZW50LCBPcGVyYXRvciBvcGVyLCBFeHByZXNzaW9uTm9kZSogcmlnaHQs
IGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90RW5kKQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIFRo
cm93YWJsZVN1YkV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKKyAg
ICAgICAgLCBtX2Jhc2UoYmFzZSkKKyAgICAgICAgLCBtX2lkZW50KGlkZW50KQorICAgICAgICAs
IG1fcmlnaHQocmlnaHQpCisgICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAsIG1f
cmlnaHRIYXNBc3NpZ25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisK
ICAgICBpbmxpbmUgQXNzaWduRXJyb3JOb2RlOjpBc3NpZ25FcnJvck5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5k
KQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIFRocm93YWJs
ZUV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCAyMmRmNWFlNGQwOGU1ODZlNzhmOGIzOWIyYmJmNWE2
OGZmMThlNjVkLi5iNTE1NjA0YTY4YWE2YmU0MzhmNGRmZTc5YWI0YTgwNDJjOGFmZDhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC02OCw2ICs2OCw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBCaXRPckVxLAogICAgICAgICBNb2RFcSwKICAgICAgICAgUG93RXEs
CisgICAgICAgIE51bGxpc2hFcSwKKyAgICAgICAgT3JFcSwKKyAgICAgICAgQW5kRXEsCiAgICAg
ICAgIExTaGlmdCwKICAgICAgICAgUlNoaWZ0LAogICAgICAgICBVUlNoaWZ0CkBAIC0xMzg5LDYg
KzEzOTIsMTkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2ln
bm1lbnRzOwogICAgIH07CiAKKyAgICBjbGFzcyBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2
ZU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHBy
ZXNzaW9uRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5
UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIE9w
ZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdp
c3RlcklEKiA9IDApIG92ZXJyaWRlOworCisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRl
bnQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OworICAgICAgICBPcGVyYXRvciBt
X29wZXJhdG9yOworICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50czsKKyAgICB9Owor
CiAgICAgY2xhc3MgQXNzaWduUmVzb2x2ZU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5v
ZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAg
ICBBc3NpZ25SZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlm
aWVyJiwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBBc3NpZ25tZW50Q29udGV4dCk7CkBAIC0xNDE4
LDYgKzE0MzQsMjEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fz
c2lnbm1lbnRzIDogMTsKICAgICB9OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0UmVhZE1vZGlm
eUJyYWNrZXROb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dh
YmxlU3ViRXhwcmVzc2lvbkRhdGEgeworICAgIHB1YmxpYzoKKyAgICAgICAgU2hvcnRDaXJjdWl0
UmVhZE1vZGlmeUJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25O
b2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBPcGVyYXRvciwgRXhwcmVzc2lv
bk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFz
QXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAg
ICBwcml2YXRlOgorICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworCisgICAgICAgIEV4cHJlc3Npb25O
b2RlKiBtX2Jhc2U7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsKKyAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7
CisgICAgICAgIGJvb2wgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyA6IDE7CisgICAgICAgIGJv
b2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKKyAgICB9OworCiAgICAgY2xhc3MgQXNzaWdu
QnJhY2tldE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2Fi
bGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBBc3NpZ25CcmFja2V0Tm9k
ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lv
bk5vZGUqIHN1YnNjcmlwdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhh
c0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdEVuZCk7CkBAIC0xNDU5LDYgKzE0OTAsMjAgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKICAgICB9OwogCisg
ICAgY2xhc3MgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUgZmluYWwgOiBwdWJsaWMgRXhw
cmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YSB7CisgICAgcHVi
bGljOgorICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJh
dG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKworICAgIHByaXZhdGU6CisgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKKyAg
ICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fcmlnaHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9y
aWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKKyAgICB9OworCiAgICAgY2xhc3MgQXNzaWduRXJyb3JO
b2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVz
c2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduRXJyb3JOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggZGQyNTFmN2FiZTc1YmZi
Y2UwYTM5YjhjMGVlZjU1YjJkNDFiZjcwOS4uOTc2NzU3YmQ0OTRkZmE5MGJiZDAyOGY3M2RjNjkz
YTM1MDQ5MmMyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAt
Mzg0Nyw3ICszODQ3LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhw
cmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KIAogICAgIGZhaWxJZkZh
bHNlKGxocywgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIik7CiAgICAgaWYgKGluaXRpYWxOb25M
SFNDb3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAgICAgIGlmIChtX3Rv
a2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBCSVRPUkVRVUFMKQorICAg
ICAgICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQU5E
RVFVQUwpCiAgICAgICAgICAgICBzZW1hbnRpY0ZhaWwoIkxlZnQgaGFuZCBzaWRlIG9mIG9wZXJh
dG9yICciLCBnZXRUb2tlbigpLCAiJyBtdXN0IGJlIGEgcmVmZXJlbmNlIik7CiAKICAgICAgICAg
cmV0dXJuIGxoczsKQEAgLTM4NzEsNiArMzg3MSw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVl
QnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVu
CiAgICAgICAgIGNhc2UgQklUT1JFUVVBTDogb3AgPSBPcGVyYXRvcjo6Qml0T3JFcTsgYnJlYWs7
CiAgICAgICAgIGNhc2UgTU9ERVFVQUw6IG9wID0gT3BlcmF0b3I6Ok1vZEVxOyBicmVhazsKICAg
ICAgICAgY2FzZSBQT1dFUVVBTDogb3AgPSBPcGVyYXRvcjo6UG93RXE7IGJyZWFrOworICAgICAg
ICBjYXNlIE5VTExJU0hFUVVBTDogb3AgPSBPcGVyYXRvcjo6TnVsbGlzaEVxOyBicmVhazsKKyAg
ICAgICAgY2FzZSBPUkVRVUFMOiBvcCA9IE9wZXJhdG9yOjpPckVxOyBicmVhazsKKyAgICAgICAg
Y2FzZSBBTkRFUVVBTDogb3AgPSBPcGVyYXRvcjo6QW5kRXE7IGJyZWFrOwogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgIH0KQEAgLTM4OTAsNyArMzg5Myw3
IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2Vy
PExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAgICAgICAgIGxocyA9IHBhcnNlQXNzaWdubWVu
dEV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKGxocywgIkNhbm5vdCBw
YXJzZSB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiIpOwog
ICAgICAgICBpZiAoaW5pdGlhbE5vbkxIU0NvdW50ICE9IG1fcGFyc2VyU3RhdGUubm9uTEhTQ291
bnQpIHsKLSAgICAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2Vu
Lm1fdHlwZSA8PSBCSVRPUkVRVUFMKQorICAgICAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49
IEVRVUFMICYmIG1fdG9rZW4ubV90eXBlIDw9IEFOREVRVUFMKQogICAgICAgICAgICAgICAgIHNl
bWFudGljRmFpbCgiTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJyIsIGdldFRva2VuKCksICIn
IG11c3QgYmUgYSByZWZlcmVuY2UiKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAppbmRleCA0ODE4MWFl
MGQ0YjkzMzg5NGY4ZTRmMmJkZmRiNjJlODEzODNkMmM1Li5kMWM0N2VmZTJjZmJhNDNjYzhjNmZm
MDBhZjJlOTgyNGNhZWM2OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlclRva2Vucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyVG9rZW5zLmgKQEAgLTEzNCw2ICsxMzQsOSBAQCBlbnVtIEpTVG9rZW5UeXBlIHsKICAgICBC
SVRBTkRFUVVBTCwKICAgICBCSVRYT1JFUVVBTCwKICAgICBCSVRPUkVRVUFMLAorICAgIE5VTExJ
U0hFUVVBTCwKKyAgICBPUkVRVUFMLAorICAgIEFOREVRVUFMLAogICAgIERPVERPVERPVCwKICAg
ICBBUlJPV0ZVTkNUSU9OLAogICAgIFFVRVNUSU9ORE9ULApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggOTk2OTRkMDEyN2JhZTFjZWE1Y2Y2M2ZhOWNk
ZDk3NzAwMGNiN2FhNC4uYzI4YmZjMzRiZmU4MGY3NjM0YTQwZTFmMzhkMDI5N2I2YTcwZDcxZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCkBAIC01MDAs
NiArNTAwLDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkg
PSBmYWxzZTsKICAgICB2KEJvb2wsIGZvcmNlT1NSRXhpdFRvTExJbnQsIGZhbHNlLCBOb3JtYWws
ICJJZiB0cnVlLCB3ZSBhbHdheXMgZXhpdCB0byB0aGUgTExJbnQuIElmIGZhbHNlLCB3ZSBleGl0
IHRvIHdoYXRldmVyIGlzIG1vc3QgY29udmVuaWVudC4iKSBcCiAgICAgdihVbnNpZ25lZCwgZ2V0
QnlWYWxJQ01heE51bWJlck9mSWRlbnRpZmllcnMsIDQsIE5vcm1hbCwgIk51bWJlciBvZiBpZGVu
dGlmaWVycyB3ZSBzZWUgaW4gdGhlIExMSW50IHRoYXQgY291bGQgY2F1c2UgdXMgdG8gYmFpbCBv
biBnZW5lcmF0aW5nIGFuIElDIGZvciBnZXRfYnlfdmFsLiIpIFwKICAgICB2KEJvb2wsIHVzZVB1
YmxpY0NsYXNzRmllbGRzLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB0aGUgcGFyc2VyIHdpbGwg
dW5kZXJzdGFuZCBwdWJsaWMgZGF0YSBmaWVsZHMgaW5zaWRlIGNsYXNzZXMuIikgXAorICAgIHYo
Qm9vbCwgdXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMsIGZhbHNlLCBOb3JtYWwsICJFbmFi
bGUgc3VwcG9ydCBmb3IgXD9cPz0sIHx8PSwgYW5kICYmPSBsb2dpY2FsIGFzc2lnbm1lbnQgb3Bl
cmF0b3JzLiIpIFwKICAgICB2KEJvb2wsIHVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFs
bG9jYXRpb24sIGZhbHNlLCBOb3JtYWwsICJGb3IgdGhlIGFybTY0IEV4ZWN1dGFibGVBbGxvY2F0
b3IsIGlmIHRydWUsIHNlbGVjdCB3aGljaCByZWdpb24gdG8gdXNlIHJhbmRvbWx5LiBUaGlzIGlz
IHVzZWZ1bCBmb3IgdGVzdGluZyB0aGF0IGp1bXAgaXNsYW5kcyB3b3JrLiIpIFwKIAogZW51bSBP
cHRpb25FcXVpdmFsZW5jZSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNGRmMjA5YWJlNzQ0YTYyMDUxN2NiZjA3YTMyODBlNzZhYTAzZWMyMC4u
MWNkNzQwN2U5ZTFhMzU4MTk5N2VkOWE5MjdlZTUzZWQ2MmQxMTU1NSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIw
LTA0LTA5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNO
ZXh0XSBJbXBsZW1lbnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3Ry
ZXNzLXRlc3RzOgorCiAyMDIwLTA0LTA5ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFw
cGxlLmNvbT4KIAogICAgICAgICBXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0IG11c3QgcnVuIG9u
IHRoZSBtYWluIHRocmVhZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJl
c3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IDdiZGE2
MTc3ZDY0MDA5YzI2NWJjN2M0MDg3MWEzMGY3NDQ3ZDUxNmIuLmM0ZTA4ZjBmZjRmNmRiYmE3ODEz
ZmFhYzllODcxNjNhZmJjODA0NzcgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1z
dHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAt
Nzg3LDYgKzc4NywxMCBAQCBkZWYgcnVuTWluaU1vZGUoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0
aW9ucykKICAgICBydW4oIm1pbmktbW9kZSIsICItLWZvcmNlTWluaVZNTW9kZT10cnVlIiwgKm9w
dGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKIGVuZAogCitkZWYgcnVuTG9naWNhbEFzc2lnbm1l
bnRPcGVyYXRvcnNFbmFibGVkKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCisgICAgcnVu
KCJsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzLWVuYWJsZWQiLCAiLS11c2VMb2dpY2FsQXNz
aWdubWVudE9wZXJhdG9ycz10cnVlIiAsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVj
aWZpY09wdGlvbnMpKQorZW5kCisKIGRlZiBkZWZhdWx0UnVuCiAgICAgaWYgJG1vZGUgPT0gInF1
aWNrIgogICAgICAgICBkZWZhdWx0UXVpY2tSdW4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdl
TG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTEyZjE4MTM5ZmI2ZTU0ZGJhMzYyM2RlMWZm
MjhjMDM2ODcxNzIwMC4uYzIzNGUxOWFmNjg0YWYxOWViMTliMDg3YTc1YjA3MzNhMzkyY2VhOSAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAyMC0wNC0wMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgW0VTTmV4dF0gSW1wbGVtZW50IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVy
YXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
OTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQuanM6IEFkZGVkLgorICAgICAg
ICAqIHN0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qczogQWRkZWQu
CisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1vci5qczogQWRk
ZWQuCisKKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1sOgorICAgICAgICAqIHRlc3QyNjIv
ZXhwZWN0YXRpb25zLnlhbWw6CisgICAgICAgIFJpZ2h0IG5vdywgdGVzdDI2MiBleHBlY3RzIGFu
IGVhcmx5IGVycm9yIHRvIGJlIHRocm93biBpZiB0aGUgbGhzIGlzIG5vdCBzaW1wbGUsIHdoaWNo
IGRvZXMKKyAgICAgICAgbm90IG1hdGNoIHdoYXQgd2UgZG8gd2l0aCBvdGhlciByZWFkLW1vZGlm
eSBhc3NpZ25tZW50IG9wZXJhdG9ycy4gVGhpcyBpcyBsaWtlbHkgdG8gY2hhbmdlCisgICAgICAg
IGluIHRoZSBmdXR1cmUgdG8gbWF0Y2ggZXhpc3RpbmcgYmVoYXZpb3IgKHRocm93IGEgYFJlZmVy
ZW5jZUVycm9yYCkgWzFdLgorCisgICAgICAgIFsxXTogPGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5
L2VjbWEyNjIvaXNzdWVzLzI1NyNpc3N1ZWNvbW1lbnQtNTAyODc4NzA4PgorCiAyMDIwLTA0LTA5
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gTW9k
dWxlRW52aXJvbm1lbnQgZG8gbm90IGhhdmUgSlNHbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQgYXMg
aXRzIHVwcGVyIHNjb3BlCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2ln
bm1lbnQtb3BlcmF0b3ItYW5kLmpzIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50
LW9wZXJhdG9yLWFuZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTUyZDFmMmQxNDY3YWJlOTZjYTIyOTFiYzJh
ODViZmVkMDMzOGRiCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1h
c3NpZ25tZW50LW9wZXJhdG9yLWFuZC5qcwpAQCAtMCwwICsxLDE2MTYgQEAKKy8vQCBydW5Mb2dp
Y2FsQXNzaWdubWVudE9wZXJhdG9yc0VuYWJsZWQKKworZnVuY3Rpb24gc2hvdWxkQmUoZnVuYywg
ZXhwZWN0ZWQpIHsKKyAgICBsZXQgYWN0dWFsID0gZnVuYygpOworICAgIGlmICh0eXBlb2YgZXhw
ZWN0ZWQgPT09ICJmdW5jdGlvbiIgPyAhKGFjdHVhbCBpbnN0YW5jZW9mIGV4cGVjdGVkKSA6IGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtK
U09OLnN0cmluZ2lmeShleHBlY3RlZCl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShhY3R1YWwp
fWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKKyAgICBs
ZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2Yg
ZXJyb3JUeXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlw
ZS5uYW1lfSBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZFRocm93U3ludGF4RXJyb3Ioc2NyaXB0KSB7CisgICAgbGV0IGVycm9yOworICAgIHRy
eSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVy
cm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9y
KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBTeW50YXhFcnJvciBidXQgc2F3
ICR7ZXJyb3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4OworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4OworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4
OworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1
bmRlZmluZWQ7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAgeCAmJj0gNDI7Cisg
ICAgcmV0dXJuIHg7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IG51bGw7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICB4ICYmPSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHRydWU7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAg
cmV0dXJuIHggJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IGZhbHNlOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgcmV0dXJuIHgg
JiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMDsK
KyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IDE7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDE7CisgICAgeCAmJj0gNDI7CisgICAg
cmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
IiI7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9ICIiOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgIiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICByZXR1
cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gInRlc3QiOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4ICYmPSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4
ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgeCAmJj0gNDI7CisgICAgcmV0
dXJuIHg7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gdW5kZWZpbmVkOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgeCAmJj0g
NDI7CisgICAgcmV0dXJuIHg7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBudWxsKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IG51bGw7CisgICAgeCAmJj0g
NDI7CisgICAgcmV0dXJuIHg7Cit9LCBudWxsKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgVHlwZUVycm9y
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJl
dHVybiB4ICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IGZhbHNlOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICByZXR1cm4g
eCAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IDA7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAwKTsKKworc2hvdWxkVGhyb3co
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDE7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwg
VHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICIiOwor
ICAgIHJldHVybiB4ICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9ICIiOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgIiIpOwor
CitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gInRlc3QiOworICAgIHJl
dHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3Ip
OworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgcmV0
dXJuIHggJiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCB1bmRlZmluZWQp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHguYSAmJj0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7
Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiB1bmRlZmluZWR9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHVuZGVm
aW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9Owor
ICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0
cnVlfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiBmYWxzZX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4LmEgJiY9IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgMCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHguYSAmJj0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAxfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeC5hICYmPSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAiIn07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hICYmPSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgJiY9IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHguYSAmJj0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4LmEgJiY9IDQy
OworICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7
Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IHVuZGVmaW5lZH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5k
ZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxs
fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHguYSAmJj0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAg
IHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsK
K30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9Owor
ICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgJiY9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9Owor
ICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7
Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9
OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICIiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4LmEg
JiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6ICJ0ZXN0In07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICByZXR1
cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiB7fX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiBbXX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
NDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBy
ZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge307CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIHVuZGVmaW5l
ZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07
CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdW5kZWZpbmVkKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0
dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gJiY9IDQyOwor
ICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIGZhbHNl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAg
IHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIGZhbHNlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSAm
Jj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
MH07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgMCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJh
Il0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAxfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICByZXR1
cm4geFsiYSJdICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogIiJ9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3Qi
fTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHhbImEiXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeFsi
YSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQy
OworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHt9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHVuZGVmaW5l
ZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVk
fTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4WyJhIl0g
JiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogbnVsbH07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
bnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07
CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAg
eFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4WyJhIl0g
JiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogMH07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgMCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgcmV0dXJu
IHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogMX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsK
KyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJh
Il0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9
fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4
WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAg
IHJldHVybiB4WzBdICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW107CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt1
bmRlZmluZWRdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFswXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9
LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbbnVsbF07Cisg
ICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsK
KyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdICYmPSA0
MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFs
c2VdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSAm
Jj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07
CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAwKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICB4
WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbIiJdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbIiJdOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRlc3QiXTsKKyAgICB4
WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtbXV07CisgICAgeFswXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gW107CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZp
bmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHhb
MF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHJldHVybiB4WzBd
ICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBb
bnVsbF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgeFswXSAmJj0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgeFswXSAmJj0gNDI7
CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgeFsw
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwg
MCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07CisgICAgeFsw
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFsxXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgeFswXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbIiJdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sICIiKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgeFswXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAg
ICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt7fV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAg
ICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAg
ICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSArIHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA9IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSAmJiB6OworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBs
ZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz8gejsKK30sIGZhbHNlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAg
bGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5IHx8IHo7Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSAmJj0gejsKK30sIGZhbHNlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7Cisg
ICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ID8/PSB6OworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHw9IHo7Cit9LCBmYWxzZSk7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkg
PSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSArIHo7Cit9LCAzKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPSB6OworfSwgMik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAg
bGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmIHo7Cit9LCAyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz8gejsKK30sIDEpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCAmJj0geSB8fCB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOwor
ICAgIHJldHVybiB4ICYmPSB5ICYmPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAg
IHJldHVybiB4ICYmPSB5ID8/PSB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4ICYmPSB5IHx8PSB6OworfSwgMSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHggPSB7Cisg
ICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAg
ICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07
CisKKyAgICB4LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpv
aW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgc2V0IDQyIik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7Cisg
ICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdl
dCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAg
ICAgICB9LAorICAgIH07CisKKyAgICB4LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAg
ICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9
IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAg
ICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSAmJj0gNDI7CisgICAgeC5h
ICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQg
Z2V0IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxv
ZyA9IFtdOworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBh
OworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
c2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsi
YSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIg
IikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0IHNldCA0MiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxl
dCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsK
KyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAg
fSwKKyAgICB9OworCisgICAgeFsiYSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisg
ICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgZmFsc2UiKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEg
PSB1bmRlZmluZWQ7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisg
ICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAg
ICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gJiY9IDQyOworICAg
IHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9
LCAiZ2V0IGdldCB1bmRlZmluZWQiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgewor
ICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9
CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1
cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBs
b2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hICYmPSB2OworICAgICAg
ICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRydWU7Cisg
ICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIg
IikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQt
cGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LXBhcmVudCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9n
ID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsK
KyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0K
KyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAg
ICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVy
LmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSAmJj0gdjsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4LmEg
JiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQg
ZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisg
ICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVz
aCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0K
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsK
KyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3Mg
Q2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAg
ICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQi
KTsKKyAgICAgICAgICAgIHN1cGVyLmEgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBs
ZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOworICAgIHguYSAmJj0gNDI7
CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5f
YTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCB1bmRlZmlu
ZWQiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKwor
ICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1
c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9
CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7
CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNz
IENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNo
aWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdICYmPSB2OworICAgICAgICB9CisgICAgfQor
CisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRydWU7CisgICAgeFsiYSJdICYm
PSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAi
ICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50
IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LXBhcmVudCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAg
ICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVu
dCIpOworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBj
bGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07
CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNl
dC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSAmJj0gdjsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4WyJh
Il0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAi
KSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1w
YXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtd
OworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAg
ICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJl
bnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAg
Y2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJd
OworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJz
ZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gJiY9IHY7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOworICAg
IHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9p
bigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQg
Z2V0LXBhcmVudCB1bmRlZmluZWQiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAg
ICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJl
dHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAg
dmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHguYSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAg
ICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7Cisg
ICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCisKKworc2hvdWxkVGhyb3co
ZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAg
ICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwg
VHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOwor
ICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAg
ICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAg
ICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0
YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCB1bmRlZmlu
ZWQpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAg
ICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisg
ICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0
MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRl
ZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsi
YSJdICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigp
IHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJs
ZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBUeXBlRXJy
b3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVy
biB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxl
OiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIHVuZGVmaW5l
ZCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAg
KGZ1bmN0aW9uKCkgeworICAgICAgICB4ICYmPSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOwor
ICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ICYmPSA0MjsKKyAgICB9
KSgpOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVu
ZGVmaW5lZDsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCAmJj0g
NDI7CisgICAgfSkoKTsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHgg
JiY9IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCBUeXBlRXJyb3IpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5j
dGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggJiY9IDQyOworICAgIH0pKCk7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAg
cmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggJiY9IDQyOworICAgIH0pKCk7
Cit9LCB1bmRlZmluZWQpOworCisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgeCAm
Jj0gNDI7CisgICAgbGV0IHggPSB0cnVlOworICAgIHJldHVybiB4OworfSwgUmVmZXJlbmNlRXJy
b3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgcmV0dXJuIHVuZGVmaW5lZCAm
Jj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBudWxsICYm
PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlICYmPSA0MmApOworCitzaG91
bGRUaHJvd1N5bnRheEVycm9yKGBmYWxzZSAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhF
cnJvcihgMCAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSAmJj0gNDJgKTsK
Kworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgIiIgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3lu
dGF4RXJyb3IoYCJ0ZXN0IiAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihge30g
JiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYFtdICYmPSA0MmApOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW51bGxpc2gu
anMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lM2QxYzFjMDUwMjQyN2U0YWI4NjAxMDVkZTMxYzk1MDBhNWVhZjc1Ci0t
LSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJh
dG9yLW51bGxpc2guanMKQEAgLTAsMCArMSwxNjMxIEBACisvL0AgcnVuTG9naWNhbEFzc2lnbm1l
bnRPcGVyYXRvcnNFbmFibGVkCisKK2Z1bmN0aW9uIHNob3VsZEJlKGZ1bmMsIGV4cGVjdGVkKSB7
CisgICAgbGV0IGFjdHVhbCA9IGZ1bmMoKTsKKyAgICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAi
ZnVuY3Rpb24iID8gIShhY3R1YWwgaW5zdGFuY2VvZiBleHBlY3RlZCkgOiBhY3R1YWwgIT09IGV4
cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7SlNPTi5zdHJpbmdp
ZnkoZXhwZWN0ZWQpfSBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkoYWN0dWFsKX1gKTsKK30KKwor
ZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CisgICAgbGV0IGVycm9yOwor
ICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVy
cm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0
IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJv
d1N5bnRheEVycm9yKHNjcmlwdCkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAg
ICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7Cisg
ICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgU3ludGF4RXJyb3IgYnV0IHNhdyAke2Vycm9yICYm
IGVycm9yLm5hbWV9IWApOworfQorCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsK
KyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4OworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCA/
Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5k
ZWZpbmVkOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgcmV0dXJuIHggPz89IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAg
eCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHggPz89IDQyOwor
ICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHggPz89IDQyOworICAgIHJl
dHVybiB4OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IDA7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gMDsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDApOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDE7CisgICAgcmV0dXJuIHggPz89
IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAg
ICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9ICIiOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sICIiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICB4ID8/PSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAi
dGVzdCI7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSAidGVzdCI7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJu
IHg7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9
OworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge307CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBP
YmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJl
dHVybiB4ID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBbXTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIEFycmF5KTsKKwor
CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7Cisg
ICAgcmV0dXJuIHggPz89IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IG51bGw7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgVHlw
ZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7Cisg
ICAgcmV0dXJuIHggPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB0cnVlOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgdHJ1
ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICBy
ZXR1cm4geCA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBmYWxzZTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIGZhbHNl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDA7CisgICAgcmV0dXJu
IHggPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSAwOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDEp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICB4ID8/PSA0
MjsKKyAgICByZXR1cm4geDsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gIiI7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJu
IHg7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVz
dCI7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAg
cmV0dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geCA/Pz0g
NDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBb
XTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHguYSA/Pz0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsK
KyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4LmEgPz89IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxs
fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4LmEgPz89
IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHRydWV9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHRydWUpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJu
IHguYSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBm
YWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAg
IHJldHVybiB4LmEgPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IDB9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDAp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICByZXR1
cm4geC5hID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAxfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAxKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4
LmEgPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAiIn07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgIiIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVy
biB4LmEgPz89IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07
CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogW119OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeC5hID8/PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHt9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeC5hID8/PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4
LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07
CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4LmEgPz89
IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogdHJ1ZX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdHJ1ZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJl
dHVybiB4LmEgPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
MH07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAx
fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIi
fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hID8/PSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBPYmpl
Y3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAg
ICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hID8/PSA0
MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiBbXX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgQXJyYXkpOworCisK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geFsi
YSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAg
cmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdID8/PSA0
MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIHRy
dWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAg
ICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB0cnVlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJh
Il0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiBmYWxzZX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsK
KyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
MX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6ICIifTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHhbImEiXSA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHhbImEiXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sICJ0ZXN0
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07Cisg
ICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4WyJh
Il0gPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YToge319OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30s
IE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsK
KyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHhbImEiXSA/Pz0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVm
aW5lZH07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHJl
dHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhb
ImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSA/Pz0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsK
K30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBm
YWxzZX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJl
dHVybiB4WyJhIl0gPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogMH07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07
CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVy
biB4WyJhIl07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiAiIn07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHhbImEiXSA/Pz0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwg
InRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVz
dCJ9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sICJ0ZXN0Iik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJl
dHVybiB4WyJhIl0gPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHhbImEiXSA/
Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHhbMF0g
Pz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFt1bmRlZmluZWRdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsK
KyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbbnVsbF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsK
KyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQy
OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVd
OworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW2ZhbHNlXTsKKyAgICByZXR1cm4geFswXSA/
Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W2ZhbHNlXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07CisgICAgcmV0dXJuIHhb
MF0gPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
WzBdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgMCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHJldHVybiB4WzBdID8/PSA0
MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAg
ICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDEpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgeFsw
XSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwg
InRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRlc3QiXTsK
KyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSA/Pz0g
NDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7
fV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBPYmplY3QpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0g
Pz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFtbXV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBBcnJheSk7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgcmV0dXJu
IHhbMF0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gW107CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICBy
ZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxs
XTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJu
IHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBb
dHJ1ZV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgeFswXSA/Pz0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdID8/
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAwKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICB4WzBdID8/
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gWzFdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDEpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzFdOworICAgIHhbMF0gPz89IDQy
OworICAgIHJldHVybiB4WzBdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbIiJdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sICIiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgeFswXSA/Pz0gNDI7
CisgICAgcmV0dXJuIHhbMF07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbInRlc3QiXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAidGVzdCIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyJ0ZXN0Il07CisgICAg
eFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7
Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3t9
XTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAgIHJldHVybiB4WzBd
ID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFtbXV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBBcnJheSk7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxl
dCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgKyB6OworfSwgZmFs
c2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxl
dCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPSB6OworfSwgZmFs
c2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxl
dCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgJiYgejsKK30sIGZh
bHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ID8/IHo7Cit9LCBm
YWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAg
bGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSB8fCB6OworfSwg
ZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAg
IGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgJiY9IHo7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7Cisg
ICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSA/Pz0gejsK
K30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsK
KyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5IHx8PSB6
OworfSwgZmFsc2UpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBu
dWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkg
KyB6OworfSwgMyk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsK
KyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ID0gejsK
K30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAg
bGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJiB6OworfSwg
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQg
eSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ID8/IHo7Cit9LCAxKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgfHwgejsKK30sIDEpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOwor
ICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJj0gejsKK30sIDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSA/Pz0gejsKK30sIDEpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSB8fD0gejsKK30sIDEpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB0cnVlOwor
ICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJn
ZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAg
ICAgICAgfSwKKyAgICB9OworCisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEgPz89IDQyOworCisg
ICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9
IGZhbHNlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBh
ID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEgPz89
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQg
ZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisg
ICAgbGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgewor
ICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAg
ICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsK
KyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgPz89IDQy
OworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7
Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICBy
ZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKwor
ICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJdID8/PSA0MjsKKworICAgIHJldHVybiBsb2cu
am9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBs
ZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7
CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAg
IH0sCisgICAgfTsKKworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJdID8/PSA0MjsKKwor
ICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IGZhbHNlIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBh
ID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAor
ICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAg
ICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdID8/PSA0MjsKKyAg
ICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOwor
fSwgImdldCBzZXQgZ2V0IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAg
ICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhp
cy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVz
aCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJu
IHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSA/Pz0gdjsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB0cnVlOworICAg
IHguYSA/Pz0gNDI7CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIp
ICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBh
cmVudCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsK
KworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9n
LnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAg
ICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50
Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNs
YXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNo
aWxkIik7CisgICAgICAgICAgICBzdXBlci5hID8/PSB2OworICAgICAgICB9CisgICAgfQorCisg
ICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHguYSA/Pz0gNDI7
CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5f
YTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFz
cyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQt
cGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAg
ICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBl
eHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAg
ICAgICAgICAgc3VwZXIuYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0g
bmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeC5hID8/PSA0MjsKKyAgICB4
LmEgPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwg
ImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0
LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgewor
ICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAgICAgICB9
CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1
cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdID8/PSB2Owor
ICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRy
dWU7CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJu
IGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdl
dC1jaGlsZCBnZXQtcGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1
c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0K
KyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVy
biBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gZmFs
c2U7CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJu
IGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdl
dC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgewor
ICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAgICAgICB9
CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1
cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdID8/PSB2Owor
ICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVu
ZGVmaW5lZDsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0
MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAg
ICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9
LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAg
ICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgPz89IDQyOwor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5l
ZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgPz89
IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJp
Y3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwg
eworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0p
OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0
YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQg
eCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFs
dWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJl
dHVybiB4LmEgPz89IDQyOworfSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwg
eworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0p
OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJh
IiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAg
ICB9KTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
eCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDQyKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9
OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRy
dWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJd
ID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0
cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEi
LCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAg
IH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRUaHJv
dyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQs
CisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdID8/
PSA0MjsKK30sIFR5cGVFcnJvcik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB4ID8/PSA0MjsKKyAgICB9
KSgpOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0
dXJuIHggPz89IDQyOworICAgIH0pKCk7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOworfSwgNDIpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgewor
ICAgICAgICB4ID8/PSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4g
KGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCA/Pz0gNDI7CisgICAgfSkoKTsKK30sIGZh
bHNlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5l
ZDsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCA/Pz0gNDI7Cisg
ICAgfSkoKTsKK30sIFR5cGVFcnJvcik7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsK
KyAgICB4ID8/PSA0MjsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHg7Cit9LCBSZWZl
cmVuY2VFcnJvcik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdW5k
ZWZpbmVkID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgbnVsbCA/
Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgdHJ1ZSA/Pz0gNDJgKTsKKworc2hv
dWxkVGhyb3dTeW50YXhFcnJvcihgZmFsc2UgPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4
RXJyb3IoYDAgPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYDEgPz89IDQyYCk7
CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCIiID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5
bnRheEVycm9yKGAidGVzdCIgPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYHt9
ID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBbXSA/Pz0gNDJgKTsKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1vci5qcyBi
L0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1vci5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jOGY4NjRhOTBhODRkOGIyNjFiMTY0ZDVkN2VjMWQyYTFmN2JlY2NjCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpz
CkBAIC0wLDAgKzEsMTYxMyBAQAorLy9AIHJ1bkxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzRW5h
YmxlZAorCitmdW5jdGlvbiBzaG91bGRCZShmdW5jLCBleHBlY3RlZCkgeworICAgIGxldCBhY3R1
YWwgPSBmdW5jKCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEo
YWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX0g
YnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3Vs
ZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAg
ICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAg
fQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9IGJ1dCBzYXcgJHtlcnJvciAm
JiBlcnJvci5uYW1lfSFgKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3dTeW50YXhFcnJvcihz
Y3JpcHQpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQp
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlm
ICghKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoYEV4cGVjdGVkIFN5bnRheEVycm9yIGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFg
KTsKK30KKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgcmV0dXJuIHgg
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAg
ICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICB4
IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBudWxsOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIHggfHw9IDQyOworICAg
IHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHRydWU7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsK
K30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOwor
ICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBmYWxzZTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHJldHVybiB4IHx8
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOwor
ICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IDE7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgMSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICB4IHx8PSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICIi
OworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSAiIjsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAidGVzdCI7CisgICAgcmV0dXJu
IHggfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSAidGVzdCI7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAidGVzdCIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4IHx8
PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e307CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBPYmplY3QpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30s
IEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4
IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZFRocm93KGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIHggfHw9IDQy
OworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IG51bGw7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgcmV0dXJuIHggfHw9IDQy
OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0cnVl
OworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZFRocm93
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4geCB8fD0gNDI7
Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gMDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDE7CisgICAgeCB8fD0g
NDI7CisgICAgcmV0dXJuIHg7Cit9LCAxKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9ICIiOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVzdCI7CisgICAgcmV0dXJu
IHggfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHggfHw9IDQy
OworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9
OworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBBcnJheSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4g
eCB8fD0gNDI7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHt9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
dW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4LmEgfHw9IDQy
OworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4LmEgfHw9
IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgdHJ1ZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHgu
YSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsK
KyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgfHw9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAg
ICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwg
MSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHgu
YSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICB4LmEg
fHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9
OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hIHx8
PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IHt9fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBPYmplY3QpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJu
IHguYSB8fD0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBBcnJh
eSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAg
cmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsK
KyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4LmEgfHw9IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEg
fHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9
OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAw
fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSB8fD0g
NDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAx
fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAxKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
IiJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4
LmEgfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiAidGVzdCJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30s
ICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319
OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHguYSB8fD0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeFsiYSJdIHx8PSA0
MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmlu
ZWR9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJu
IHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IG51bGx9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07
CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHhbImEi
XSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAg
IHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0g
NDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgMSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geFsiYSJd
IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogIiJ9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICBy
ZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YToge319OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgT2JqZWN0KTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHhbImEiXSB8
fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsK
K30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119
OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIEFycmF5KTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4g
eFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHt9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9
OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAg
IHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJd
IHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHRydWV9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30s
IHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNl
fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHhbImEiXSB8
fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30s
IDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAg
IHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDEpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geFsiYSJdIHx8
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiAiIn07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAg
cmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBPYmplY3Qp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICB4
WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBPYmplY3QpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geFsiYSJd
IHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiBbXX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
QXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAg
ICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gW107CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07Cisg
ICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxs
XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVl
XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJu
IHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBb
ZmFsc2VdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFswXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsK
KyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbMV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbIiJdOworICAgIHJl
dHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBbIiJdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHJl
dHVybiB4WzBdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07
CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBb
W11dOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbW11dOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVy
biB4WzBdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IFtdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFswXSB8
fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAgIHhb
MF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30s
IHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOwor
ICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdIHx8
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtm
YWxzZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07CisgICAgcmV0dXJuIHhbMF0g
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
WzBdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzFdOworICAgIHJldHVybiB4WzBdIHx8
PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzFd
OworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgMSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbIiJdOworICAgIHJldHVybiB4WzBdIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsiIl07
CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAgICByZXR1cm4geFswXSB8
fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gWyJ0ZXN0Il07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAidGVz
dCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICBy
ZXR1cm4geFswXSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11d
OworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJu
IHhbMF07Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8
fD0geSArIHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9
IHkgPSB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
dHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5
ICYmIHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0
cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkg
Pz8gejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRy
dWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSB8
fCB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1
ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICYm
PSB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1
ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8
PSB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1
ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ID8/
PSB6OworfSwgdHJ1ZSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0g
eSArIHo7Cit9LCAzKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxs
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPSB6
OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAg
ICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICYmIHo7Cit9
LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxl
dCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPz8gejsKK30sIDEp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkg
PSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSB8fCB6OworfSwgMSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICYmPSB6OworfSwgMik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7Cisg
ICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8PSB6OworfSwgMSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAg
bGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ID8/PSB6OworfSwgMSk7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7
CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBh
KHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2Owor
ICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisK
KyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCB0cnVlIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBh
ID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAg
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAg
IGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8
fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNl
dCBnZXQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOwor
CisgICAgbGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7Cisg
ICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQi
KTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgfHw9
IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAg
ICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAg
bG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsK
KworICAgIHhbImEiXSB8fD0gNDI7CisgICAgeFsiYSJdIHx8PSA0MjsKKworICAgIHJldHVybiBs
b2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAg
ICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikg
eworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAg
ICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSB8fD0gNDI7CisgICAgeFsiYSJdIHx8PSA0MjsK
KworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0
MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBs
ZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAg
fSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAg
ICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSB8fD0gNDI7
CisgICAgeFsiYSJdIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsg
YTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7
CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgICAg
IH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJl
dHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEgfHw9IHY7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsK
KyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBh
cmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7
CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNl
dC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4LmEgfHw9
IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAg
ICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSB8fD0gdjsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1
bmRlZmluZWQ7CisgICAgeC5hIHx8PSA0MjsKKyAgICB4LmEgfHw9IDQyOworCisgICAgcmV0dXJu
IGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNl
dC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNs
YXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdl
dC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAg
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAg
ICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxk
IGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVz
aCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICAgICAg
fQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7
CisgICAgICAgICAgICBzdXBlclsiYSJdIHx8PSB2OworICAgICAgICB9CisgICAgfQorCisgICAg
bGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRydWU7CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4
Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHRydWUi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xh
c3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAg
ICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQg
ZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9
CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHN1cGVyWyJhIl0gfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBs
ZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gZmFsc2U7CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4
Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1w
YXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAg
bG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAg
ICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBn
ZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAg
IHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gfHw9
IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9h
ID0gdW5kZWZpbmVkOworICAgIHhbImEiXSB8fD0gNDI7CisgICAgeFsiYSJdIHx8PSA0MjsKKwor
ICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0
LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFy
ZW50IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9Owor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUs
CisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9Owor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNl
LAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307Cisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZp
bmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSB8
fD0gNDI7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0
cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEi
LCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAg
fSk7CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkVGhyb3coZnVu
Y3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIFR5
cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsK
KyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAg
ICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0p
OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNl
LAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRh
YmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQg
eCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFs
dWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4g
eFsiYSJdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZh
bHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgVHlwZUVycm9yKTsK
Kworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4
ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1
ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCB8
fD0gNDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7
CisgICAgICAgIHJldHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4gKGZ1bmN0
aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7CisgICAgfSkoKTsKK30sIDQyKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0cnVlOworICAgIChmdW5j
dGlvbigpIHsKKyAgICAgICAgeCB8fD0gNDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30s
IHRydWUpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7
CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggfHw9IDQyOworICAg
IH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJl
dHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZFRo
cm93KGZ1bmN0aW9uKCkgeworICAgIHggfHw9IDQyOworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBy
ZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIHJldHVybiB1bmRlZmluZWQgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRUaHJvd1N5
bnRheEVycm9yKGBudWxsIHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB0cnVl
IHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBmYWxzZSB8fD0gNDJgKTsKKwor
c2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMCB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhF
cnJvcihgMSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgIiIgfHw9IDQyYCk7
CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCJ0ZXN0IiB8fD0gNDJgKTsKKworc2hvdWxkVGhy
b3dTeW50YXhFcnJvcihge30gfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYFtd
IHx8PSA0MmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNU
ZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4IDBiNmI1NmU4YzFkMmNlMTBhNmU2M2NiNDcw
MmY4MDk0MGM3ZTBhNTguLjBjNjdhNGRlNjMzZTJkNTVkOWM5MzU0N2Q2OGMwNGQ2NGIxYzAzZjcg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rl
c3QyNjIvY29uZmlnLnlhbWwKQEAgLTQsNiArNCw3IEBAIGZsYWdzOgogICBCaWdJbnQ6IHVzZUJp
Z0ludAogICBXZWFrUmVmOiB1c2VXZWFrUmVmcwogICBjbGFzcy1maWVsZHMtcHVibGljOiB1c2VQ
dWJsaWNDbGFzc0ZpZWxkcworICBsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzOiB1c2VMb2dp
Y2FsQXNzaWdubWVudE9wZXJhdG9ycwogc2tpcDoKICAgZmVhdHVyZXM6CiAgICAgLSBTaGFyZWRB
cnJheUJ1ZmZlcgpAQCAtMjAsOCArMjEsNiBAQCBza2lwOgogICAgICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQ3NQogICAgIC0gcmVnZXhwLW1hdGNoLWluZGlj
ZXMKICAgICAtIHRvcC1sZXZlbC1hd2FpdAotICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwOTcxNgotICAgIC0gbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9y
cwogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU2Ngog
ICAgIC0gUHJvbWlzZS5hbnkKICAgICAtIEFnZ3JlZ2F0ZUVycm9yCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRp
b25zLnlhbWwKaW5kZXggOTRiY2ZkNzJjM2NjMjE4ZWMzZDY3ZWJkYTJiODQwYzhkZDBkNTNjYy4u
ODI4NTBkNDEwMWQ2MTVmMjdiYmY0ZDZhOWRjMGFhMDdjMDEwYWM5ZSAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBl
Y3RhdGlvbnMueWFtbApAQCAtMjc1Nyw2ICsyNzU3LDEyIEBAIHRlc3QvbGFuZ3VhZ2UvZXhwcmVz
c2lvbnMvaW1wb3J0Lm1ldGEvc3ludGF4L2ludmFsaWQtYXNzaWdubWVudC10YXJnZXQtZm9yLW9m
LWxvCiB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2luc3RhbmNlb2YvcHJvdG90eXBlLWdldHRl
ci13aXRoLXByaW1pdGl2ZS5qczoKICAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogZ2V0dGVyIGZv
ciAncHJvdG90eXBlJyBjYWxsZWQiCiAgIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVycm9yOiBnZXR0
ZXIgZm9yICdwcm90b3R5cGUnIGNhbGxlZCIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1s
aHMuanM6CisgIGRlZmF1bHQ6ICJUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJl
IGV2YWx1YXRlZC4iCit0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVu
dC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxocy5qczoKKyAg
ZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVk
LiIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3It
YXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3Qy
NjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKIHRlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbmV3L2N0b3JFeHByLWZuLXJlZi1iZWZvcmUtYXJncy1ldmFsLWZuLXdy
YXB1cC5qczoKICAgZGVmYXVsdDogIlR5cGVFcnJvcjogMSBpcyBub3QgYSBjb25zdHJ1Y3RvciAo
ZXZhbHVhdGluZyAnbmV3IHgoeCA9IDEpJykiCiAgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiAx
IGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgeCh4ID0gMSknKSIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396458</attachid>
            <date>2020-04-14 13:53:46 -0700</date>
            <delta_ts>2020-04-14 15:31:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200414145344.patch</filename>
            <type>text/plain</type>
            <size>117282</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGIzMjE2YThkODFhMzM5NzY0OGYwMzYyOGZkNjZk
ODRmZGQyNjZmYzUuLmUxOGY3NTEzZDg4ZWJjZjllMjFjMDJhOWY0YTg0MzRiNmFjZTBiY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTE0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBub3cgU3RhZ2UgMy4gSXQgaW50cm9kdWNlcwor
ICAgICAgICB0aHJlZSBuZXcgYXNzaWdubWVudCBvcGVyYXRvcnMgd2hpY2ggd2lsbCBvbmx5IHN0
b3JlIHRoZSByZXN1bHQgb2YgdGhlIHJocyBpbiB0aGUgbGhzIGlmIHRoZQorICAgICAgICBsaHMg
bWVldHMgdGhlIGdpdmVuIGNvbmRpdGlvbjoKKyAgICAgICAgIC0gYD8/PWAsIGZvciBpZiB0aGUg
bGhzIGlzIG51bGxpc2ggKGBudWxsYCBvciBgdW5kZWZpbmVkYCkKKyAgICAgICAgIC0gYHx8PWAs
IGZvciBpZiB0aGUgbGhzIGlzIGZhbHN5CisgICAgICAgICAtIGAmJj1gLCBmb3IgaWYgdGhlIGxo
cyBpcyB0cnV0aHkKKworICAgICAgICBUaGlzIHNob3J0IGNpcmN1aXRpbmcgY2FuIGJlIGJlbmVm
aWNpYWwgYXMgaXQgY2FuIGF2b2lkIGEgcmVkdW5kYW50IHN0b3JlIHdoZW4gdXNlZCBpbiB0aGUK
KyAgICAgICAgY29tbW9uIEphdmFTY3JpcHQgcHJvZ3JhbW1pbmcgcGF0dGVybiBvZiAiZGVmYXVs
dGluZyIgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgYGBganMKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZvbyh4KSB7CisgICAgICAgICAgICAgICAgeCA9IHggfHwgNDI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIGBgYAorCisgICAgICAgIElmIGB4YCBpcyBhIHRydXRoeSB2YWx1ZSwgaXQgd291bGQg
cmVzdWx0IGluIHRoZSByaHMgYHhgIGJlaW5nIHN0b3JlZCBiYWNrIGludG8gdGhlIGxocyBgeGAu
CisgICAgICAgIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gaGF2ZSBuZWdhdGl2ZSB1bmlu
dGVuZGVkIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBmb3IgYGlubmVySFRNTGAuCisKKyAgICAgICAg
TG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycywgaG93ZXZlciwgYXJlIGRlZmluZWQgc3VjaCB0
aGF0IHRoZXkgb25seSBzdG9yZSBpZiB0aGUgcmhzIGlzCisgICAgICAgIHRvIGFjdHVhbGx5IGJl
IG5lZWRlZC91c2VkLCBza2lwcGluZyB0aGUgcmVkdW5kYW50IHN0b3JlIGFuZCBzaW1wbHkgcmV0
dXJuaW5nIGxocyBvdGhlcndpc2UuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcmVhZG9ubHkg
cmVmZXJlbmNlcywgdGhpcyBtZWFucyB0aGF0IGFuIGVycm9yIGlzIG9ubHkgdGhyb3duIHdoZW4g
dGhlCisgICAgICAgIGFzc2lnbm1lbnQgb2NjdXJzLCBtZWFuaW5nIHRoYXQgaWYgdGhlIGxocyBh
bHJlYWR5IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uIGl0IHdpbGwgYmUgdXNlZAorICAgICAgICBh
bmQgcmV0dXJuZWQgd2l0aCBubyBlcnJvci4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6bGV4V2l0aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGU6OlNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlKTogQWRkZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50
KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRN
b2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKworICAg
ICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEgYHVzZUxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0aGlzIGZlYXR1cmUu
CisKIDIwMjAtMDQtMTAgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1lBUlJdIEFsbG93IGZvciBVbmljb2RlIG5hbWVkIGNhcHR1cmUgZ3JvdXAgaWRlbnRp
ZmllcnMgaW4gbm9uLVVuaWNvZGUgcmVndWxhciBleHByZXNzaW9ucwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IGQ0ZmRi
NGRkNTRkNDkyZjkwZDJkNzIxZmQ3ZGFjMTJmZjdkMmY4NTAuLmEyMjFlNTY3MmFmZDk2MjY0Njkx
NzZkYWY3NGE4YTY5OGI0MGFhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTI4NjIsNiArMjg2MiwxMDIgQEAgUmVn
aXN0ZXJJRCogUmVhZE1vZGlmeVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmUKICAgICByZXR1cm4gcmV0dXJuUmVzdWx0OwogfQogCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29s
dmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3N0YXRpYyBBTFdB
WVNfSU5MSU5FIHZvaWQgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogdmFsdWUsIE9wZXJhdG9yIG9wZXIsIExhYmVsJiBh
ZnRlckFzc2lnbm1lbnQpCit7CisgICAgc3dpdGNoIChvcGVyKSB7CisgICAgY2FzZSBPcGVyYXRv
cjo6TnVsbGlzaEVxOgorICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKGdlbmVyYXRv
ci5lbWl0SXNVbmRlZmluZWRPck51bGwoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCB2YWx1ZSks
IGFmdGVyQXNzaWdubWVudCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBPcGVyYXRvcjo6
T3JFcToKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZUcnVlKHZhbHVlLCBhZnRlckFzc2ln
bm1lbnQpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgT3BlcmF0b3I6OkFuZEVxOgorICAg
ICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKHZhbHVlLCBhZnRlckFzc2lnbm1lbnQpOwor
ICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworUmVnaXN0ZXJJRCogU2hv
cnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIEpTVGV4dFBvc2l0aW9u
IG5ld0Rpdm90ID0gZGl2b3RTdGFydCgpICsgbV9pZGVudC5sZW5ndGgoKTsKKworICAgIFZhcmlh
YmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2lkZW50KTsKKworICAgIGlmIChSZWZQdHI8
UmVnaXN0ZXJJRD4gbG9jYWwgPSB2YXIubG9jYWwoKSkgeworICAgICAgICBnZW5lcmF0b3IuZW1p
dFREWkNoZWNrSWZOZWNlc3NhcnkodmFyLCBsb2NhbC5nZXQoKSwgbnVsbHB0cik7CisKKyAgICAg
ICAgaWYgKHZhci5pc1JlYWRPbmx5KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklE
PiByZXN1bHQgPSBsb2NhbDsKKworICAgICAgICAgICAgUmVmPExhYmVsPiBhZnRlckFzc2lnbm1l
bnQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICAgICAgICAgIGVtaXRTaG9ydENpcmN1aXRB
c3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBhZnRlckFzc2ln
bm1lbnQuZ2V0KCkpOworCisgICAgICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGVJ
blRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOyAvLyBFeGVjdXRlIHNpZGUgZWZm
ZWN0cyBmaXJzdC4KKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UmVhZE9ubHlFeGNlcHRpb25J
Zk5lZWRlZCh2YXIpOworCisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyQXNz
aWdubWVudC5nZXQoKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJl
c3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgICAgIHJldHVy
biBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoZ2VuZXJhdG9yLmxlZnRIYW5kU2lkZU5lZWRzQ29weShtX3JpZ2h0SGFzQXNzaWdubWVu
dHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKSkgeworICAgICAgICAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKKyAgICAgICAgICAg
IGdlbmVyYXRvci5tb3ZlKHJlc3VsdC5nZXQoKSwgbG9jYWwuZ2V0KCkpOworCisgICAgICAgICAg
ICBSZWY8TGFiZWw+IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAg
ICAgICAgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0
KCksIG1fb3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICAgICAgICAgIHJl
c3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9y
aWdodCk7CisgICAgICAgICAgICBnZW5lcmF0b3IubW92ZShsb2NhbC5nZXQoKSwgcmVzdWx0Lmdl
dCgpKTsKKworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChhZnRlckFzc2lnbm1lbnQu
Z2V0KCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQuZ2V0
KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2VuZXJh
dG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAgICB9CisKKyAgICAgICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGxvY2FsOworCisgICAgICAgIFJlZjxMYWJlbD4gYWZ0ZXJB
c3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgICAgIGVtaXRTaG9ydENpcmN1
aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBhZnRlckFz
c2lnbm1lbnQuZ2V0KCkpOworCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZUlu
VGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisKKyAgICAgICAgZ2VuZXJhdG9y
LmVtaXRMYWJlbChhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworICAgICAgICBnZW5lcmF0b3IuZW1p
dFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAg
ICAgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKKyAgICB9CisK
KyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKG5ld0Rpdm90LCBkaXZvdFN0YXJ0KCks
IG5ld0Rpdm90KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1p
dFJlc29sdmVTY29wZShudWxscHRyLCB2YXIpOworCisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJl
c3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0RnJvbVNjb3BlKGdlbmVyYXRvci5uZXdUZW1wb3Jhcnko
KSwgc2NvcGUuZ2V0KCksIHZhciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAgICBnZW5lcmF0b3IuZW1p
dFREWkNoZWNrSWZOZWNlc3NhcnkodmFyLCByZXN1bHQuZ2V0KCksIG51bGxwdHIpOworCisgICAg
UmVmPExhYmVsPiBhZnRlckFzc2lnbm1lbnQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBl
bWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVy
YXRvciwgYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5l
bWl0Tm9kZUluVGFpbFBvc2l0aW9uKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7IC8vIEV4ZWN1dGUg
c2lkZSBlZmZlY3RzIGZpcnN0LgorICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2
b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBpZiAodmFyLmlzUmVhZE9ubHko
KSkKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRSZWFkT25seUV4Y2VwdGlvbklmTmVlZGVkKHZhcik7
CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdFB1dFRvU2NvcGUoc2Nv
cGUuZ2V0KCksIHZhciwgcmVzdWx0LmdldCgpLCBUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0
aW9uTW9kZTo6Tm90SW5pdGlhbGl6YXRpb24pOworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChh
ZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVz
dWx0LmdldCgpLCB2YXIsIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgcmV0dXJuIGdl
bmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKIHN0YXRpYyBJbml0aWFsaXphdGlvbk1vZGUgaW5pdGlhbGl6YXRpb25N
b2RlRm9yQXNzaWdubWVudENvbnRleHQoQXNzaWdubWVudENvbnRleHQgYXNzaWdubWVudENvbnRl
eHQpCiB7CiAgICAgc3dpdGNoIChhc3NpZ25tZW50Q29udGV4dCkgewpAQCAtMjg3Nyw4ICsyOTcz
LDYgQEAgc3RhdGljIEluaXRpYWxpemF0aW9uTW9kZSBpbml0aWFsaXphdGlvbk1vZGVGb3JBc3Np
Z25tZW50Q29udGV4dChBc3NpZ25tZW50Q29udGUKICAgICByZXR1cm4gSW5pdGlhbGl6YXRpb25N
b2RlOjpOb3RJbml0aWFsaXphdGlvbjsKIH0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KIFJlZ2lzdGVySUQqIEFzc2lnblJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIFZhcmlhYmxl
IHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2lkZW50KTsKQEAgLTI5NzgsNiArMzA3MiwzNyBA
QCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5RG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdAogICAgIHJldHVybiByZXQ7CiB9CiAKKy8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBTaG9ydENp
cmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBn
ZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFz
ZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2Jhc2UsIG1fcmlnaHRIYXNB
c3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOworICAgIFJlZlB0cjxSZWdp
c3RlcklEPiB0aGlzVmFsdWU7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0OworCisg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3QoKSwgc3Vi
ZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+
aXNTdXBlck5vZGUoKSkgeworICAgICAgICB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5zdXJlVGhp
cygpOworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9yLnRl
bXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1faWRlbnQp
OworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2Vu
ZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBtX2lkZW50KTsKKworICAg
IFJlZjxMYWJlbD4gYWZ0ZXJBc3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAg
ZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3Bl
cmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBnZW5lcmF0b3Iu
ZW1pdE5vZGVJblRhaWxQb3NpdGlvbihyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAgIGdlbmVy
YXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgp
KTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKQorICAgICAgICByZXN1bHQgPSBnZW5l
cmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBtX2lkZW50LCBy
ZXN1bHQuZ2V0KCkpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQ
dXRCeUlkKGJhc2UuZ2V0KCksIG1faWRlbnQsIHJlc3VsdC5nZXQoKSk7CisKKyAgICBnZW5lcmF0
b3IuZW1pdExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQ
cm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAg
cmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKwogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2lnbkVycm9yTm9kZSAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZWdpc3RlcklEKiBBc3NpZ25FcnJvck5vZGU6OmVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikKQEAgLTMw
NDIsNiArMzE2NywzOCBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZQogICAgIHJldHVybiB1cGRh
dGVkVmFsdWU7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENp
cmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworUmVnaXN0ZXJJRCogU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjpl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0
KQoreworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9y
TGVmdEhhbmRTaWRlKG1fYmFzZSwgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyB8fCBtX3JpZ2h0
SGFzQXNzaWdubWVudHMsIG1fc3Vic2NyaXB0LT5pc1B1cmUoZ2VuZXJhdG9yKSAmJiBtX3JpZ2h0
LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5ID0g
Z2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlRm9yUHJvcGVydHkobV9zdWJzY3JpcHQs
IG1fcmlnaHRIYXNBc3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOworICAg
IFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzVmFsdWU7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
cmVzdWx0OworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHByZXNzaW9u
RGl2b3QoKSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7CisgICAg
aWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAgICAgICB0aGlzVmFsdWUgPSBnZW5lcmF0
b3IuZW5zdXJlVGhpcygpOworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5VmFs
KGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdl
dCgpLCBwcm9wZXJ0eS5nZXQoKSk7CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVy
YXRvci5lbWl0R2V0QnlWYWwoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdl
dCgpLCBwcm9wZXJ0eS5nZXQoKSk7CisKKyAgICBSZWY8TGFiZWw+IGFmdGVyQXNzaWdubWVudCA9
IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdl
bmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBhZnRlckFzc2lnbm1lbnQuZ2V0KCkp
OworCisgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlSW5UYWlsUG9zaXRpb24ocmVzdWx0
LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90
KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+aXNTdXBlck5v
ZGUoKSkKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRCeVZhbChiYXNlLmdldCgp
LCB0aGlzVmFsdWUuZ2V0KCksIHByb3BlcnR5LmdldCgpLCByZXN1bHQuZ2V0KCkpOworICAgIGVs
c2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRCeVZhbChiYXNlLmdldCgpLCBw
cm9wZXJ0eS5nZXQoKSwgcmVzdWx0LmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwo
YWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJl
c3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICByZXR1cm4gZ2VuZXJh
dG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gQ29tbWFOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCiBSZWdpc3RlcklEKiBDb21tYU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvQVNUQnVpbGRlci5oCmluZGV4IDQzYjE3MWZiYzRlN2IzNTlkYmU2ODI3ZmE1ZGM1Yjg1YTg5
ZWJmYzAuLjVlMzUzYmQxNzYzZDllMmY3NGQzNjQyNDRhMGIwZGFkZDIyNTgyYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0xNTQ4LDYgKzE1NDgsNyBA
QCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUFzc2lnbk5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcgogCiAgICAgaWYgKGxvYy0+aXNSZXNvbHZlTm9kZSgp
KSB7CiAgICAgICAgIFJlc29sdmVOb2RlKiByZXNvbHZlID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5v
ZGUqPihsb2MpOworCiAgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6RXF1YWwpIHsKICAgICAg
ICAgICAgIGlmIChleHByLT5pc0Jhc2VGdW5jRXhwck5vZGUoKSkgewogICAgICAgICAgICAgICAg
IGF1dG8gbWV0YWRhdGEgPSBzdGF0aWNfY2FzdDxCYXNlRnVuY0V4cHJOb2RlKj4oZXhwciktPm1l
dGFkYXRhKCk7CkBAIC0xNTU4LDIxICsxNTU5LDQyIEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWls
ZGVyOjptYWtlQXNzaWduTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHBy
CiAgICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihub2RlLCBzdGFydCwgZGl2b3QsIGVu
ZCk7CiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgICAgfQorCisgICAgICAgIGlmIChv
cCA9PSBPcGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJhdG9yOjpPckVxIHx8IG9wID09
IE9wZXJhdG9yOjpBbmRFcSkKKyAgICAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEp
IFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZShsb2NhdGlvbiwgcmVzb2x2ZS0+aWRl
bnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVu
ZCk7CisKICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUmVhZE1vZGlmeVJlc29s
dmVOb2RlKGxvY2F0aW9uLCByZXNvbHZlLT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBleHBySGFz
QXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKICAgICB9CisKICAgICBpZiAobG9jLT5p
c0JyYWNrZXRBY2Nlc3Nvck5vZGUoKSkgewogICAgICAgICBCcmFja2V0QWNjZXNzb3JOb2RlKiBi
cmFja2V0ID0gc3RhdGljX2Nhc3Q8QnJhY2tldEFjY2Vzc29yTm9kZSo+KGxvYyk7CisKICAgICAg
ICAgaWYgKG9wID09IE9wZXJhdG9yOjpFcXVhbCkKICAgICAgICAgICAgIHJldHVybiBuZXcgKG1f
cGFyc2VyQXJlbmEpIEFzc2lnbkJyYWNrZXROb2RlKGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCks
IGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBleHByLCBsb2NIYXNBc3NpZ25tZW50cywgZXhwckhhc0Fz
c2lnbm1lbnRzLCBicmFja2V0LT5kaXZvdCgpLCBzdGFydCwgZW5kKTsKKworICAgICAgICBpZiAo
b3AgPT0gT3BlcmF0b3I6Ok51bGxpc2hFcSB8fCBvcCA9PSBPcGVyYXRvcjo6T3JFcSB8fCBvcCA9
PSBPcGVyYXRvcjo6QW5kRXEpIHsKKyAgICAgICAgICAgIGF1dG8qIG5vZGUgPSBuZXcgKG1fcGFy
c2VyQXJlbmEpIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZShsb2NhdGlvbiwgYnJh
Y2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3AsIGV4cHIsIGxvY0hhc0Fzc2ln
bm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKKyAgICAgICAg
ICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGJyYWNrZXQtPmRpdm90KCksIGJyYWNrZXQt
PmRpdm90RW5kKCkub2Zmc2V0KTsKKyAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAgICB9
CisKICAgICAgICAgUmVhZE1vZGlmeUJyYWNrZXROb2RlKiBub2RlID0gbmV3IChtX3BhcnNlckFy
ZW5hKSBSZWFkTW9kaWZ5QnJhY2tldE5vZGUobG9jYXRpb24sIGJyYWNrZXQtPmJhc2UoKSwgYnJh
Y2tldC0+c3Vic2NyaXB0KCksIG9wLCBleHByLCBsb2NIYXNBc3NpZ25tZW50cywgZXhwckhhc0Fz
c2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAgICAgICAgIG5vZGUtPnNldFN1YmV4cHJl
c3Npb25JbmZvKGJyYWNrZXQtPmRpdm90KCksIGJyYWNrZXQtPmRpdm90RW5kKCkub2Zmc2V0KTsK
ICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQorCiAgICAgQVNTRVJUKGxvYy0+aXNEb3RBY2Nl
c3Nvck5vZGUoKSk7CiAgICAgRG90QWNjZXNzb3JOb2RlKiBkb3QgPSBzdGF0aWNfY2FzdDxEb3RB
Y2Nlc3Nvck5vZGUqPihsb2MpOworCiAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpFcXVhbCkKICAg
ICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXNzaWduRG90Tm9kZShsb2NhdGlvbiwg
ZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBleHByLCBleHBySGFzQXNzaWdubWVudHMs
IGRvdC0+ZGl2b3QoKSwgc3RhcnQsIGVuZCk7CiAKKyAgICBpZiAob3AgPT0gT3BlcmF0b3I6Ok51
bGxpc2hFcSB8fCBvcCA9PSBPcGVyYXRvcjo6T3JFcSB8fCBvcCA9PSBPcGVyYXRvcjo6QW5kRXEp
IHsKKyAgICAgICAgYXV0byogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0
UmVhZE1vZGlmeURvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50aWZpZXIo
KSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOworICAg
ICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhkb3QtPmRpdm90KCksIGRvdC0+ZGl2b3RF
bmQoKS5vZmZzZXQpOworICAgICAgICByZXR1cm4gbm9kZTsKKyAgICB9CisKICAgICBSZWFkTW9k
aWZ5RG90Tm9kZSogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgUmVhZE1vZGlmeURvdE5vZGUo
bG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJI
YXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwogICAgIG5vZGUtPnNldFN1YmV4cHJl
c3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5kaXZvdEVuZCgpLm9mZnNldCk7CiAgICAgcmV0
dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCmluZGV4IDRmYjgz
Y2EzYTBhN2M4YWE5OTJkMjAyOWU5MDlhMDMyYzE1ZDkwMDYuLmJhZTVmNmY4MzkyOWIwODU2ODUz
M2E4MmYyMTY0MzkzNzgzYjIyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIu
Y3BwCkBAIC0yMDg2LDYgKzIwODYsMTEgQEAgc3RhcnQ6CiAgICAgICAgIHNoaWZ0KCk7CiAgICAg
ICAgIGlmIChtX2N1cnJlbnQgPT0gJyYnKSB7CiAgICAgICAgICAgICBzaGlmdCgpOworICAgICAg
ICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3Jz
KCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAg
ICAgICAgICAgICAgIHRva2VuID0gQU5ERVFVQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tlbiA9IEFORDsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CkBAIC0yMTIzLDYgKzIxMjgsMTEgQEAgc3RhcnQ6CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKG1fY3VycmVudCA9PSAnfCcpIHsKICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAg
ICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRv
cnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0nKSkgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7Cisg
ICAgICAgICAgICAgICAgdG9rZW4gPSBPUkVRVUFMOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBPUjsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CkBAIC0yMTU5LDYgKzIxNjksMTEgQEAgc3RhcnQ6CiAgICAgICAgIHNoaWZ0
KCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJz8nKSB7CiAgICAgICAgICAgICBzaGlmdCgp
OworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxvZ2ljYWxBc3NpZ25tZW50
T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAgICAgICAgICAgICBzaGlm
dCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gTlVMTElTSEVRVUFMOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBDT0FMRVNDRTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmluZGV4IGZkOTdhMGNhOTM1ZTdlNTc3OGEwOTM4
NTAyMmY5ODY3ODAxNGEzMjQuLmFmMDQzNDU4YTQzNzYxNjI0NDFiNjI0MDgxMDlkZTU4YTIyYjVl
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVj
dG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9y
cy5oCkBAIC03MTgsNiArNzE4LDE2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAK
KyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9wZXJhdG9yIG9wZXIsIEV4cHJlc3Npb25Ob2RlKiAg
cmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90RW5kKQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAg
ICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkK
KyAgICAgICAgLCBtX2lkZW50KGlkZW50KQorICAgICAgICAsIG1fcmlnaHQocmlnaHQpCisgICAg
ICAgICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25tZW50cyhy
aWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUgQXNzaWduUmVz
b2x2ZU5vZGU6OkFzc2lnblJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRp
b24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIEFzc2ln
bm1lbnRDb250ZXh0IGFzc2lnbm1lbnRDb250ZXh0KQogICAgICAgICA6IEV4cHJlc3Npb25Ob2Rl
KGxvY2F0aW9uKQogICAgICAgICAsIG1faWRlbnQoaWRlbnQpCkBAIC03MzksNiArNzQ5LDE4IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0
UmVhZE1vZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4
cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yIG9wZXIsIEV4cHJlc3Npb25Ob2RlKiBy
aWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1l
bnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhw
cmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRh
dGEoZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKQorICAgICAgICAsIG1fYmFzZShiYXNlKQor
ICAgICAgICAsIG1fc3Vic2NyaXB0KHN1YnNjcmlwdCkKKyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0
KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3N1YnNjcmlwdEhhc0Fz
c2lnbm1lbnRzKHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzKQorICAgICAgICAsIG1fcmlnaHRIYXNB
c3NpZ25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisKICAgICBpbmxp
bmUgQXNzaWduQnJhY2tldE5vZGU6OkFzc2lnbkJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vi
c2NyaXB0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFzQXNzaWdubWVu
dHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90RW5kKQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAs
IFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKQEAg
LTc3MSw2ICs3OTMsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlu
bGluZSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6U2hvcnRDaXJjdWl0UmVhZE1vZGlm
eURvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUq
IGJhc2UsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBPcGVyYXRvciBvcGVyLCBFeHByZXNzaW9u
Tm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQor
ICAgICAgICAsIFRocm93YWJsZVN1YkV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBk
aXZvdEVuZCkKKyAgICAgICAgLCBtX2Jhc2UoYmFzZSkKKyAgICAgICAgLCBtX2lkZW50KGlkZW50
KQorICAgICAgICAsIG1fcmlnaHQocmlnaHQpCisgICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQor
ICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAg
IHsKKyAgICB9CisKICAgICBpbmxpbmUgQXNzaWduRXJyb3JOb2RlOjpBc3NpZ25FcnJvck5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90RW5kKQogICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAg
ICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRleCAyMmRmNWFlNGQwOGU1ODZlNzhm
OGIzOWIyYmJmNWE2OGZmMThlNjVkLi5iNTE1NjA0YTY4YWE2YmU0MzhmNGRmZTc5YWI0YTgwNDJj
OGFmZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC02OCw2ICs2OCw5
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBCaXRPckVxLAogICAgICAgICBNb2RFcSwKICAg
ICAgICAgUG93RXEsCisgICAgICAgIE51bGxpc2hFcSwKKyAgICAgICAgT3JFcSwKKyAgICAgICAg
QW5kRXEsCiAgICAgICAgIExTaGlmdCwKICAgICAgICAgUlNoaWZ0LAogICAgICAgICBVUlNoaWZ0
CkBAIC0xMzg5LDYgKzEzOTIsMTkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9y
aWdodEhhc0Fzc2lnbm1lbnRzOwogICAgIH07CiAKKyAgICBjbGFzcyBTaG9ydENpcmN1aXRSZWFk
TW9kaWZ5UmVzb2x2ZU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBU
aHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRl
bnRpZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogIHJpZ2h0LCBib29sIHJpZ2h0SGFz
QXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAg
ICBwcml2YXRlOgorICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworCisgICAgICAgIGNvbnN0IElkZW50
aWZpZXImIG1faWRlbnQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OworICAgICAg
ICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50
czsKKyAgICB9OworCiAgICAgY2xhc3MgQXNzaWduUmVzb2x2ZU5vZGUgZmluYWwgOiBwdWJsaWMg
RXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVi
bGljOgogICAgICAgICBBc3NpZ25SZXNvbHZlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBj
b25zdCBJZGVudGlmaWVyJiwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBBc3NpZ25tZW50Q29udGV4
dCk7CkBAIC0xNDE4LDYgKzE0MzQsMjEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wg
bV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKICAgICB9OwogCisgICAgY2xhc3MgU2hvcnRDaXJj
dWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBw
dWJsaWMgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEgeworICAgIHB1YmxpYzoKKyAgICAgICAg
U2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYs
IEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBPcGVyYXRv
ciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBi
b29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dEVuZCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworCisgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNj
cmlwdDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CisgICAgICAgIE9wZXJhdG9y
IG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyA6IDE7
CisgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKKyAgICB9OworCiAgICAg
Y2xhc3MgQXNzaWduQnJhY2tldE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1
YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBBc3Np
Z25CcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFz
ZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29s
IHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CkBAIC0xNDU5LDYgKzE0OTAsMjAgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsK
ICAgICB9OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUgZmluYWwg
OiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVTdWJFeHByZXNzaW9uRGF0
YSB7CisgICAgcHVibGljOgorICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRp
ZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3Np
Z25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKworICAgIHBy
aXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fYmFzZTsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKKyAgICAgICAgRXhw
cmVzc2lvbk5vZGUqIG1fcmlnaHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CisgICAg
ICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKKyAgICB9OworCiAgICAgY2xhc3Mg
QXNzaWduRXJyb3JOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhy
b3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduRXJyb3JO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdEVuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggZGQy
NTFmN2FiZTc1YmZiY2UwYTM5YjhjMGVlZjU1YjJkNDFiZjcwOS4uOTc2NzU3YmQ0OTRkZmE5MGJi
ZDAyOGY3M2RjNjkzYTM1MDQ5MmMyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmNwcApAQCAtMzg0Nyw3ICszODQ3LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWls
ZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KIAog
ICAgIGZhaWxJZkZhbHNlKGxocywgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIik7CiAgICAgaWYg
KGluaXRpYWxOb25MSFNDb3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAg
ICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBCSVRP
UkVRVUFMKQorICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5t
X3R5cGUgPD0gQU5ERVFVQUwpCiAgICAgICAgICAgICBzZW1hbnRpY0ZhaWwoIkxlZnQgaGFuZCBz
aWRlIG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAiJyBtdXN0IGJlIGEgcmVmZXJlbmNlIik7
CiAKICAgICAgICAgcmV0dXJuIGxoczsKQEAgLTM4NzEsNiArMzg3MSw5IEBAIHRlbXBsYXRlIDx0
eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBh
cnNlQXNzaWdubWVuCiAgICAgICAgIGNhc2UgQklUT1JFUVVBTDogb3AgPSBPcGVyYXRvcjo6Qml0
T3JFcTsgYnJlYWs7CiAgICAgICAgIGNhc2UgTU9ERVFVQUw6IG9wID0gT3BlcmF0b3I6Ok1vZEVx
OyBicmVhazsKICAgICAgICAgY2FzZSBQT1dFUVVBTDogb3AgPSBPcGVyYXRvcjo6UG93RXE7IGJy
ZWFrOworICAgICAgICBjYXNlIE5VTExJU0hFUVVBTDogb3AgPSBPcGVyYXRvcjo6TnVsbGlzaEVx
OyBicmVhazsKKyAgICAgICAgY2FzZSBPUkVRVUFMOiBvcCA9IE9wZXJhdG9yOjpPckVxOyBicmVh
azsKKyAgICAgICAgY2FzZSBBTkRFUVVBTDogb3AgPSBPcGVyYXRvcjo6QW5kRXE7IGJyZWFrOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgIH0KQEAgLTM4
OTAsNyArMzg5Myw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJl
c3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAgICAgICAgIGxocyA9IHBh
cnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKGxo
cywgIkNhbm5vdCBwYXJzZSB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1lbnQgZXhw
cmVzc2lvbiIpOwogICAgICAgICBpZiAoaW5pdGlhbE5vbkxIU0NvdW50ICE9IG1fcGFyc2VyU3Rh
dGUubm9uTEhTQ291bnQpIHsKLSAgICAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVB
TCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBCSVRPUkVRVUFMKQorICAgICAgICAgICAgaWYgKG1fdG9r
ZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90eXBlIDw9IEFOREVRVUFMKQogICAgICAg
ICAgICAgICAgIHNlbWFudGljRmFpbCgiTGVmdCBoYW5kIHNpZGUgb2Ygb3BlcmF0b3IgJyIsIGdl
dFRva2VuKCksICInIG11c3QgYmUgYSByZWZlcmVuY2UiKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNl
clRva2Vucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaApp
bmRleCA0ODE4MWFlMGQ0YjkzMzg5NGY4ZTRmMmJkZmRiNjJlODEzODNkMmM1Li5kMWM0N2VmZTJj
ZmJhNDNjYzhjNmZmMDBhZjJlOTgyNGNhZWM2OTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKQEAgLTEzNCw2ICsxMzQsOSBAQCBlbnVtIEpTVG9rZW5U
eXBlIHsKICAgICBCSVRBTkRFUVVBTCwKICAgICBCSVRYT1JFUVVBTCwKICAgICBCSVRPUkVRVUFM
LAorICAgIE5VTExJU0hFUVVBTCwKKyAgICBPUkVRVUFMLAorICAgIEFOREVRVUFMLAogICAgIERP
VERPVERPVCwKICAgICBBUlJPV0ZVTkNUSU9OLAogICAgIFFVRVNUSU9ORE9ULApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggOTk2OTRkMDEyN2JhZTFj
ZWE1Y2Y2M2ZhOWNkZDk3NzAwMGNiN2FhNC4uYzI4YmZjMzRiZmU4MGY3NjM0YTQwZTFmMzhkMDI5
N2I2YTcwZDcxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlz
dC5oCkBAIC01MDAsNiArNTAwLDcgQEAgY29uc3RleHByIGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlT
dHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2KEJvb2wsIGZvcmNlT1NSRXhpdFRvTExJbnQsIGZh
bHNlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSBhbHdheXMgZXhpdCB0byB0aGUgTExJbnQuIElmIGZh
bHNlLCB3ZSBleGl0IHRvIHdoYXRldmVyIGlzIG1vc3QgY29udmVuaWVudC4iKSBcCiAgICAgdihV
bnNpZ25lZCwgZ2V0QnlWYWxJQ01heE51bWJlck9mSWRlbnRpZmllcnMsIDQsIE5vcm1hbCwgIk51
bWJlciBvZiBpZGVudGlmaWVycyB3ZSBzZWUgaW4gdGhlIExMSW50IHRoYXQgY291bGQgY2F1c2Ug
dXMgdG8gYmFpbCBvbiBnZW5lcmF0aW5nIGFuIElDIGZvciBnZXRfYnlfdmFsLiIpIFwKICAgICB2
KEJvb2wsIHVzZVB1YmxpY0NsYXNzRmllbGRzLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB0aGUg
cGFyc2VyIHdpbGwgdW5kZXJzdGFuZCBwdWJsaWMgZGF0YSBmaWVsZHMgaW5zaWRlIGNsYXNzZXMu
IikgXAorICAgIHYoQm9vbCwgdXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMsIGZhbHNlLCBO
b3JtYWwsICJFbmFibGUgc3VwcG9ydCBmb3IgXD9cPz0sIHx8PSwgYW5kICYmPSBsb2dpY2FsIGFz
c2lnbm1lbnQgb3BlcmF0b3JzLiIpIFwKICAgICB2KEJvb2wsIHVzZVJhbmRvbWl6aW5nRXhlY3V0
YWJsZUlzbGFuZEFsbG9jYXRpb24sIGZhbHNlLCBOb3JtYWwsICJGb3IgdGhlIGFybTY0IEV4ZWN1
dGFibGVBbGxvY2F0b3IsIGlmIHRydWUsIHNlbGVjdCB3aGljaCByZWdpb24gdG8gdXNlIHJhbmRv
bWx5LiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGVzdGluZyB0aGF0IGp1bXAgaXNsYW5kcyB3b3JrLiIp
IFwKIAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMThkZTI0OTkzNWFkOGFjNGJjMmVhZjE0M2IwMjJl
ZmYxMzhiNTdmNi4uYWE5ZTNmZTIwZTZlOTc1YTU4M2Q1MDEyYTE5NTM2OTlmMjRmNWFiNiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDIwLTA0LTE0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVNOZXh0XSBJbXBsZW1lbnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIwLTA0LTEzICBEYXZpZCBLaWx6ZXIgIDxkZGtp
bHplckBhcHBsZS5jb20+CiAKICAgICAgICAgY2hlY2std2Via2l0LXN0eWxlIHNob3VsZCB3YXJu
IGFib3V0IGF0dHJpYnV0ZXMgdGhhdCBhcHBlYXIgYWZ0ZXIgZnVuY3Rpb24gZGVmaW5pdGlvbnMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9T
Y3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IDdiZGE2MTc3ZDY0MDA5YzI2NWJjN2M0
MDg3MWEzMGY3NDQ3ZDUxNmIuLmM0ZTA4ZjBmZjRmNmRiYmE3ODEzZmFhYzllODcxNjNhZmJjODA0
NzcgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIv
VG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNzg3LDYgKzc4NywxMCBAQCBk
ZWYgcnVuTWluaU1vZGUoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICBydW4oIm1p
bmktbW9kZSIsICItLWZvcmNlTWluaVZNTW9kZT10cnVlIiwgKm9wdGlvbmFsVGVzdFNwZWNpZmlj
T3B0aW9ucykKIGVuZAogCitkZWYgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVk
KCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCisgICAgcnVuKCJsb2dpY2FsLWFzc2lnbm1l
bnQtb3BlcmF0b3JzLWVuYWJsZWQiLCAiLS11c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycz10
cnVlIiAsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorZW5k
CisKIGRlZiBkZWZhdWx0UnVuCiAgICAgaWYgJG1vZGUgPT0gInF1aWNrIgogICAgICAgICBkZWZh
dWx0UXVpY2tSdW4KZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNjhlMzhhNTgyNzIzN2UwY2UzMTc2OGY1YjU0ZDY2NGVmYTg3N2ZhMS4uYjlj
Yzg5ZWI2ZjdjNWMyYzliZGIyZDk4N2M0ZDRjZDkyZjBiZDI5YiAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAy
MC0wNC0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW0VT
TmV4dF0gSW1wbGVtZW50IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcxNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNz
aWdubWVudC1vcGVyYXRvci1hbmQuanM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9sb2dpY2Fs
LWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNz
L2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1vci5qczogQWRkZWQuCisKKyAgICAgICAgKiB0
ZXN0MjYyL2NvbmZpZy55YW1sOgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6
CisgICAgICAgIFJpZ2h0IG5vdywgdGVzdDI2MiBleHBlY3RzIGFuIGVhcmx5IGVycm9yIHRvIGJl
IHRocm93biBpZiB0aGUgbGhzIGlzIG5vdCBzaW1wbGUsIHdoaWNoIGRvZXMKKyAgICAgICAgbm90
IG1hdGNoIHdoYXQgd2UgZG8gd2l0aCBvdGhlciByZWFkLW1vZGlmeSBhc3NpZ25tZW50IG9wZXJh
dG9ycy4gVGhpcyBpcyBsaWtlbHkgdG8gY2hhbmdlCisgICAgICAgIGluIHRoZSBmdXR1cmUgdG8g
bWF0Y2ggZXhpc3RpbmcgYmVoYXZpb3IgKHRocm93IGEgYFJlZmVyZW5jZUVycm9yYCkgWzFdLgor
CisgICAgICAgIFsxXTogPGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2VjbWEyNjIvaXNzdWVzLzI1
NyNpc3N1ZWNvbW1lbnQtNTAyODc4NzA4PgorCiAyMDIwLTA0LTEzICBNaWNoYWVsIFNhYm9mZiAg
PG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFtZQVJSXSBBbGxvdyBmb3IgVW5pY29kZSBu
YW1lZCBjYXB0dXJlIGdyb3VwIGlkZW50aWZpZXJzIGluIG5vbi1Vbmljb2RlIHJlZ3VsYXIgZXhw
cmVzc2lvbnMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1v
cGVyYXRvci1hbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0
b3ItYW5kLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NzU3YTU0OWM2MTVlMzE2NmQxNDMwZWJmM2M4MWY2OTA4
YmIwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1l
bnQtb3BlcmF0b3ItYW5kLmpzCkBAIC0wLDAgKzEsMTY4NCBAQAorLy9AIHJ1bkxvZ2ljYWxBc3Np
Z25tZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlvbiBzaG91bGRCZShmdW5jLCBleHBlY3Rl
ZCkgeworICAgIGxldCBhY3R1YWwgPSBmdW5jKCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3RlZCA9
PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFsICE9
PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04uc3Ry
aW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7Cit9
CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxldCBlcnJv
cjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5
cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9
IGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworZnVuY3Rpb24gc2hvdWxk
VGhyb3dTeW50YXhFcnJvcihzY3JpcHQpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAg
ICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBl
OworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKQorICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFN5bnRheEVycm9yIGJ1dCBzYXcgJHtlcnJv
ciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHg7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB1
bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5l
ZDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1
cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gbnVsbDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4
OworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsK
KyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4g
eCAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICByZXR1cm4geCAmJj0gNDI7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHgg
JiY9IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4g
eDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAg
ICByZXR1cm4geCAmJj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ICYm
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAidGVz
dCI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHggJiY9IDQy
OworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFtdOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsK
K30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRl
ZmluZWQ7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsKKyAg
ICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBudWxsOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIG51bGwpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICB4ICYmPSA0MjsKKyAg
ICByZXR1cm4geDsKK30sIG51bGwpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHgg
JiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHJldHVybiB4ICYmPSA0
MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAg
ICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDApOworCitzaG91bGRUaHJvdyhmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJy
b3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAgcmV0
dXJuIHggJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3Nob3Vs
ZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVzdCI7CisgICAgcmV0dXJuIHgg
JiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHt9OworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3No
b3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geCAm
Jj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hICYmPSA0MjsKKyAg
ICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVu
ZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVm
aW5lZH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVkKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0
dXJuIHguYSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
bnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9Owor
ICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNl
fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogMH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IDF9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIi
fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRl
c3QifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IHt9fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogW119OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHt9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHguYSAmJj0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVu
ZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5k
ZWZpbmVkfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmluZWQp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAg
IHJldHVybiB4LmEgJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
dHJ1ZX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hICYmPSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5hICYm
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgMCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeC5h
ICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeC5h
ICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAg
eC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRl
c3QifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEg
JiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IHt9fTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4
LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IFtdfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4
WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1
bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4
WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsi
YSJdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07
CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeFsiYSJd
ICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsK
K30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAg
ICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9
OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJh
Il0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAiIn07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgIiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAg
IHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJu
IHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YToge319OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0gJiY9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCB1
bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307Cisg
ICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAg
IHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSAmJj0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7
Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBu
dWxsfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBudWxsKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICBy
ZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsK
KyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJd
ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiAxfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJl
dHVybiB4WyJhIl0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
InRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAg
IHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSAm
Jj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogW119OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJu
IHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHVu
ZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5l
ZF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdICYmPSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIG51bGwp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICB4WzBd
ICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAgIHhb
MF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwg
ZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07Cisg
ICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsK
K30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICB4
WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0gJiY9
IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgeFswXSAmJj0gNDI7
CisgICAgcmV0dXJuIHhbMF07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0gJiY9
IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFt7fV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgeFswXSAmJj0gNDI7
CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICB4WzBdICYmPSA0MjsKKyAg
ICByZXR1cm4geFswXTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgeFswXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQy
OworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFt1bmRlZmluZWRdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdW5k
ZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsK
KyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W3RydWVdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICBy
ZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdICYmPSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICB4WzBdICYmPSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gWzFdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsxXTsKKyAgICB4WzBdICYmPSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdICYmPSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ICYmPSB5ID0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ICYmPSB5ICYmIHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9
IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHwgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmPSB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz89IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSB8fD0gejsKK30sIGZhbHNlKTsKKworCisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7Cisg
ICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIDMpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9
IDI7CisgICAgcmV0dXJuIHggJiY9IHkgJiYgejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsK
KyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAg
IHJldHVybiB4ICYmPSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggJiY9IHkgJiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJu
IHggJiY9IHkgPz89IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHgg
JiY9IHkgfHw9IHo7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1
cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1
c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAg
IHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIp
ICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCBzZXQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQg
eCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7Cisg
ICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAg
ICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0s
CisgICAgfTsKKworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVy
biBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZp
bmVkOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBz
ZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0g
djsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9IDQy
OworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdW5k
ZWZpbmVkIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgewor
ICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAg
ICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsK
KyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gJiY9
IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgc2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAg
ICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAg
IH07CisKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1
cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVm
aW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9
IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJd
ICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQg
Z2V0IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxv
ZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7
CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNl
dC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9
CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAg
ICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBl
ci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEgJiY9IHY7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4LmEg
JiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQg
c2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQt
cGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsK
KworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9n
LnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAg
ICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50
Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAgIGNs
YXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNo
aWxkIik7CisgICAgICAgICAgICBzdXBlci5hICYmPSB2OworICAgICAgICB9CisgICAgfQorCisg
ICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHguYSAmJj0gNDI7
CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5f
YTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFz
cyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQt
cGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAg
ICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBl
eHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAg
ICAgICAgICAgc3VwZXIuYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0g
bmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeC5hICYmPSA0MjsKKyAgICB4
LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwg
ImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIpOwor
CisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xh
c3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAg
ICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQg
ZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9
CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHN1cGVyWyJhIl0gJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBs
ZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gJiY9IDQyOwor
ICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHgu
X2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBh
cmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50
IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAg
IGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9Cisg
ICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7Cisg
ICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENo
aWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICAg
ICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxk
Iik7CisgICAgICAgICAgICBzdXBlclsiYSJdICYmPSB2OworICAgICAgICB9CisgICAgfQorCisg
ICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHhbImEiXSAmJj0g
NDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAi
ICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBm
YWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAg
ICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQor
ICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOwor
ICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBD
aGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9n
LnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAg
ICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGls
ZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsiYSJd
ICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikg
KyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFy
ZW50IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVl
OiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHgu
YSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTog
ZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5h
ICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVl
OiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1
cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlv
bigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0
YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBUeXBlRXJy
b3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVy
biB4LmEgJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAi
dXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
eCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdy
aXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwg
ZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwK
KyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9
IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAg
ICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxz
ZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9
OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZh
bHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEi
XSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ug
c3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAi
YSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNl
LAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rp
b24oKSB7CisgICAgICAgIHggJiY9IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0
dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggJiY9IDQyOworICAgIH0pKCk7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVk
OworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ICYmPSA0MjsKKyAg
ICB9KSgpOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCAmJj0gNDI7
CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkg
eworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4g
KGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIHVu
ZGVmaW5lZCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAw
OworCisgICAgY29uc3QgeCA9IHRydWU7CisgICAgdHJ5IHsKKyAgICAgICAgeCAmJj0gKytjb3Vu
dDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gZmFs
c2U7CisgICAgeCAmJj0gKytjb3VudDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9
IHVuZGVmaW5lZDsKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwg
MCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisg
ICAgY29uc3QgeCA9IHRydWU7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHg7IH0K
KworICAgIHRyeSB7CisgICAgICAgIHggJiY9ICsrY291bnQ7CisgICAgfSBjYXRjaCB7IH0KKwor
ICAgIHJldHVybiBjb3VudDsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIGZ1bmN0aW9uIGNhcHR1
cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNv
dW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7
CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJl
dHVybiB4OyB9CisKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwg
MCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICB4ICYmPSA0MjsKKyAgICBs
ZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHg7Cit9LCBSZWZlcmVuY2VFcnJvcik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdW5kZWZpbmVkICYmPSA0MjsKK30sIHVu
ZGVmaW5lZCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYG51bGwgJiY9IDQyYCk7CisKK3No
b3VsZFRocm93U3ludGF4RXJyb3IoYHRydWUgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4
RXJyb3IoYGZhbHNlICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAwICYmPSA0
MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAxICYmPSA0MmApOworCitzaG91bGRUaHJv
d1N5bnRheEVycm9yKGAiIiAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgInRl
c3QiICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB7fSAmJj0gNDJgKTsKKwor
c2hvdWxkVGhyb3dTeW50YXhFcnJvcihgW10gJiY9IDQyYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3Rz
L3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qcyBiL0pTVGVzdHMv
c3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1udWxsaXNoLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY5NDY1Y2M4NWRiMDFlMjIyMzYzYzJlMGEyYmI1NjI2Y2U5ZGJjN2QKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5q
cwpAQCAtMCwwICsxLDE2OTkgQEAKKy8vQCBydW5Mb2dpY2FsQXNzaWdubWVudE9wZXJhdG9yc0Vu
YWJsZWQKKworZnVuY3Rpb24gc2hvdWxkQmUoZnVuYywgZXhwZWN0ZWQpIHsKKyAgICBsZXQgYWN0
dWFsID0gZnVuYygpOworICAgIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT09ICJmdW5jdGlvbiIgPyAh
KGFjdHVhbCBpbnN0YW5jZW9mIGV4cGVjdGVkKSA6IGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShleHBlY3RlZCl9
IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShhY3R1YWwpfWApOworfQorCitmdW5jdGlvbiBzaG91
bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAg
ICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAg
IH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgZXJyb3JUeXBlKSkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlwZS5uYW1lfSBidXQgc2F3ICR7ZXJyb3Ig
JiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93U3ludGF4RXJyb3Io
c2NyaXB0KSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0
KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBp
ZiAoIShlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKGBFeHBlY3RlZCBTeW50YXhFcnJvciBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3IubmFtZX0h
YCk7Cit9CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4OworICAgIHJldHVybiB4
ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7Cisg
ICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAg
eCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICB4ID8/PSA0MjsKKyAg
ICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7
Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsK
KyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBm
YWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICByZXR1
cm4geCA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSAwOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAxKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAxOworICAgIHggPz89IDQyOwor
ICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gIiI7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICBy
ZXR1cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sICJ0ZXN0
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJu
IHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHggPz89IDQy
OworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOwor
ICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgQXJyYXkpOworCisKKworc2hvdWxkVGhy
b3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCA/
Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCA/
Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHRydWU7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiB4ID8/PSA0
MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZh
bHNlOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9
LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDA7CisgICAgeCA/
Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IDE7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOworICAgIHggPz89IDQyOworICAgIHJldHVy
biB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAiIjsK
KyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSAiIjsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sICIiKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1
cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCA/Pz0g
NDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e307CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIEFycmF5
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVy
biB4ID8/PSA0MjsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge307CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSA/Pz0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHguYSA/
Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAg
eC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsK
K30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFs
c2V9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSA/
Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
MH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgPz89IDQy
OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9Owor
ICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9
LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAg
ICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7
Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAi
dGVzdCJ9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4g
eC5hID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBPYmpl
Y3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAg
cmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307
CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZp
bmVkfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4LmEgPz89
IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAg
ICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHguYSA/Pz0g
NDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogZmFsc2V9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICByZXR1
cm4geC5hID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IDB9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDApOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHJldHVy
biB4LmEgPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogMX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVy
biB4LmEgPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6ICIifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAiIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAg
ICByZXR1cm4geC5hID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVy
biB4LmE7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHguYSA/Pz0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgQXJyYXkp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICB4
LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHhb
ImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geFsiYSJd
ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9Owor
ICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVy
biB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSA/Pz0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNl
fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4
WyJhIl0gPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IDB9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDAp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICByZXR1
cm4geFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAg
IHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAi
dGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gPz89
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9
LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07
CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgT2JqZWN0KTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHJldHVybiB4
WyJhIl0gPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiBbXX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9
OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4
WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSA/
Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogbnVsbH07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAg
IHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2UpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4
WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSA/
Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiAwfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4g
eFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IDF9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30s
IDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAg
ICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeFsi
YSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSA/
Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHt9fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBP
YmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsK
KyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgeFswXSA/Pz0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gPz89
IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHhbMF0gPz89
IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgeFswXSA/
Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIGZh
bHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAg
IHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9
LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07CisgICAgeFsw
XSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgMSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0gPz89IDQy
OworICAgIHJldHVybiB4WzBdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gWyIiXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAgICB4WzBdID8/PSA0MjsKKyAg
ICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbInRlc3QiXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0gPz89
IDQyOworICAgIHJldHVybiB4WzBdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIE9iamVj
dCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICB4WzBd
ID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBB
cnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICB4
WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAg
ICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHJldHVybiB4WzBdID8/
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1
bmRlZmluZWRdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAgIHJldHVy
biB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IFtudWxsXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICBy
ZXR1cm4geFswXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNl
XTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOworICAgIHhbMF0gPz89IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOworICAgIHhbMF0gPz89IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbMV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJu
IHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsi
Il07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsi
dGVzdCJdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAgICB4WzBdID8/PSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIE9iamVjdCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhbMF0g
Pz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwg
QXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAg
ICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSArIHo7Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSA9IHo7Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJiB6OworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAg
ICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz8gejsKK30sIGZhbHNlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7Cisg
ICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5IHx8IHo7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOwor
ICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJj0gejsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ID8/PSB6OworfSwgZmFsc2UpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgfHw9IHo7Cit9LCBmYWxzZSk7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0
IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSArIHo7Cit9LCAzKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPSB6OworfSwgMik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7Cisg
ICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ICYmIHo7Cit9LCAyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBs
ZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz8gejsKK30sIDEpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6
ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSB8fCB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ID8/PSB5ICYmPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOwor
ICAgIHJldHVybiB4ID8/PSB5ID8/PSB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAg
IHJldHVybiB4ID8/PSB5IHx8PSB6OworfSwgMSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHggPSB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAg
ICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAg
IH07CisKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9n
LmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7CisgICAg
bGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIp
OworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAg
ICB9LAorICAgIH07CisKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVu
ZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAg
YSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSA/Pz0gNDI7CisgICAgeC5hID8/
PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0
IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtd
OworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAg
ICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7
CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdID8/
PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAi
ICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0geworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAg
IHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBs
b2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9Owor
CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJuIGxv
Zy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgZmFsc2UiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB1bmRlZmluZWQ7
CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBh
KHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2Owor
ICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBn
ZXQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsK
KworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9n
LnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAg
ICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50
Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNs
YXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNo
aWxkIik7CisgICAgICAgICAgICBzdXBlci5hID8/PSB2OworICAgICAgICB9CisgICAgfQorCisg
ICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRydWU7CisgICAgeC5hID8/PSA0MjsK
KyAgICB4LmEgPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9h
OworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHRydWUiKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3Mg
UGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBh
cmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAg
ICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0
ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJn
ZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAg
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAg
ICAgICAgIHN1cGVyLmEgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5l
dyBDaGlsZDsKKyAgICB4Ll9hID0gZmFsc2U7CisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEgPz89
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1j
aGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7Cisg
ICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAg
ICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9h
ID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50
IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7
CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBl
ci5hID8/PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7Cisg
ICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisK
KyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBh
cmVudCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtd
OworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAg
ICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJl
bnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAg
Y2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJd
OworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJz
ZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJh
Il0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAi
KSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1w
YXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAg
ICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVu
dCIpOworICAgICAgICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBj
bGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07
CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNl
dC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSA/Pz0gdjsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4WyJh
Il0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAi
KSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1w
YXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtd
OworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAg
ICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJl
bnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAg
Y2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJd
OworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJz
ZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOworICAg
IHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJdID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9p
bigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQg
Z2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxl
OiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRydWUpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJs
ZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3
cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJu
IHguYSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVz
ZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgs
ICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwK
KyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkVGhy
b3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVk
LAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0g
NDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJu
IHhbImEiXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJl
dHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAg
ICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0p
OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwg
dHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBs
ZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAg
dmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3Jp
dGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgVHlw
ZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsK
KyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggPz89IDQyOworICAgIH0pKCk7CisgICAgcmV0
dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBm
YWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCA/Pz0gNDI7
CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IHggPz89IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggPz89
IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7
CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOworfSwgZmFsc2UpOworCitzaG91
bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVy
biAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOworfSwg
VHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9
IDA7CisKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICB4ID8/PSArK2NvdW50OworCisgICAgcmV0
dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3Vu
dCA9IDA7CisKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gKytjb3VudDsKKworICAg
IHJldHVybiBjb3VudDsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
Y291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB0cnkgeworICAgICAg
ICB4ID8/PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7Cit9
LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisK
KyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4geDsg
fQorCisgICAgeCA/Pz0gKytjb3VudDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9
IGZhbHNlOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4ID8/
PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOwor
ICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB0cnkgeworICAgICAg
ICB4ID8/PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7Cit9
LCAxKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIHggPz89IDQyOworICAg
IGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB1bmRlZmluZWQgPz89IDQyOworfSwg
NDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBudWxsID8/PSA0MmApOworCitzaG91bGRU
aHJvd1N5bnRheEVycm9yKGB0cnVlID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9y
KGBmYWxzZSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMCA/Pz0gNDJgKTsK
Kworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50
YXhFcnJvcihgIiIgPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCJ0ZXN0IiA/
Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihge30gPz89IDQyYCk7CisKK3Nob3Vs
ZFRocm93U3ludGF4RXJyb3IoYFtdID8/PSA0MmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvbG9n
aWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlODk0YzRmYmIxOWY5
MmQwMjYyMTc2ZjdmNmFkYTJjMGQzNTlhZTAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3Itb3IuanMKQEAgLTAsMCArMSwxNjg1IEBA
CisvL0AgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkCisKK2Z1bmN0aW9uIHNo
b3VsZEJlKGZ1bmMsIGV4cGVjdGVkKSB7CisgICAgbGV0IGFjdHVhbCA9IGZ1bmMoKTsKKyAgICBp
ZiAodHlwZW9mIGV4cGVjdGVkID09PSAiZnVuY3Rpb24iID8gIShhY3R1YWwgaW5zdGFuY2VvZiBl
eHBlY3RlZCkgOiBhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
YGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpfSBidXQgZ290ICR7SlNPTi5zdHJp
bmdpZnkoYWN0dWFsKX1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JU
eXBlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJv
ciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0
ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOwor
fQorCitmdW5jdGlvbiBzaG91bGRUaHJvd1N5bnRheEVycm9yKHNjcmlwdCkgeworICAgIGxldCBl
cnJvcjsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2Vv
ZiBTeW50YXhFcnJvcikpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgU3ludGF4
RXJyb3IgYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQorCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4OworICAgIHggfHw9IDQyOworICAgIHJl
dHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVu
ZGVmaW5lZDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHggfHw9IDQyOworICAgIHJldHVy
biB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7
CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IG51bGw7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4g
eCB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHggfHw9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOwor
ICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgeCB8fD0gNDI7CisgICAg
cmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
MTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSAxOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgMSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAgcmV0dXJuIHggfHw9
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICIiOwor
ICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAidGVz
dCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4
IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgT2JqZWN0KTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4IHx8PSA0MjsK
KyAgICByZXR1cm4geDsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW107CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHggfHw9IDQyOworICAgIHJldHVy
biB4OworfSwgQXJyYXkpOworCisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOwor
CitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICByZXR1
cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgeCB8fD0gNDI7Cisg
ICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisK
K3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHJldHVybiB4
IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSAxOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsK
K30sIDEpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7Cisg
ICAgcmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAidGVz
dCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gInRlc3QiOworICAg
IHJldHVybiB4IHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBPYmplY3QpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHggfHw9
IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFycmF5
KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0
dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge307CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJl
dHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07
CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1
ZX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHguYSB8fD0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogMX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
ICIifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
InRlc3QifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hIHx8PSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgT2JqZWN0KTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHguYSB8
fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIEFy
cmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAg
IHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAg
IHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgfHw9
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
IHVuZGVmaW5lZH07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHJl
dHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IG51bGx9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsK
KyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5hIHx8PSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHguYSB8fD0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDEpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHguYSB8fD0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeC5hIHx8PSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAidGVz
dCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07
CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHguYSB8
fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHt9fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBPYmplY3Qp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICBy
ZXR1cm4geC5hIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOwor
fSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsK
KyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVu
ZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07Cisg
ICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJd
IHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9Owor
ICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDEpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gfHw9IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJd
IHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQy
OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
InRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVz
dCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAg
cmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeFsiYSJdIHx8PSA0
MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsi
YSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEi
XSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVs
bH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgdHJ1ZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJh
Il0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07Cisg
ICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0g
fHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0
MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogInRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsK
KyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHhbImEiXSB8fD0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgQXJyYXkp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICB4
WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBBcnJheSk7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJldHVybiB4WzBdIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAg
ICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVm
aW5lZF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBd
IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBb
bnVsbF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAgIHJldHVybiB4WzBd
IHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFt0cnVlXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHRydWUpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgcmV0dXJu
IHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFtmYWxzZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHJldHVybiB4
WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBbMF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHJldHVybiB4WzBdIHx8
PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsK
KyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDEpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAg
eFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOwor
fSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRlc3Qi
XTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSB8
fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFt7fV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBPYmplY3QpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtbXV07CisgICAgcmV0dXJuIHhb
MF0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFtbXV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBBcnJheSk7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgcmV0
dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gW107CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsKKyAg
ICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtu
dWxsXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgeFswXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdIHx8
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07CisgICAgeFswXSB8fD0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgMSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgeFswXSB8fD0gNDI7
CisgICAgcmV0dXJuIHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdIHx8PSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sICJ0ZXN0Iik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAgICB4
WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsK
K30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31d
OworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0g
fHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW1tdXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQg
eSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICsgejsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkg
PSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA9IHo7Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiYgejsKK30sIHRydWUpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAx
OworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/PyB6OworfSwgdHJ1ZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8IHo7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiY9IHo7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgfHw9IHo7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPz89IHo7Cit9LCB0cnVlKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9
IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICsgejsKK30sIDMpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOwor
ICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA9IHo7Cit9LCAyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBs
ZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiYgejsKK30sIDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6
ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4IHx8PSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7Cisg
ICAgcmV0dXJuIHggfHw9IHkgJiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggfHw9IHkgfHw9IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggfHw9IHkgPz89IHo7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAg
ICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAg
bG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsK
KworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9p
bigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQg
eCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7Cisg
ICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAg
ICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0s
CisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVy
biBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVm
aW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9
IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0
MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdl
dCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOwor
CisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAg
ICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAg
ICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7Cisg
ICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8PSA0
MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIg
KyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0geworICAgICAg
ICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJl
dHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisg
ICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5q
b2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOwor
ICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJn
ZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAg
ICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQy
OworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0
IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisK
KyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAg
fQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIp
OworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFz
cyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAg
ICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGls
ZCIpOworICAgICAgICAgICAgc3VwZXIuYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB0cnVlOworICAgIHguYSB8fD0gNDI7Cisg
ICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsK
K30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBh
cmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJl
bnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAg
ICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVu
ZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAg
ICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcg
Q2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0
MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hp
bGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBn
ZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBb
XTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAg
ICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFy
ZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQorICAg
IGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsK
KyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9CisgICAgfQor
CisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4LmEg
fHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQg
c2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAg
ICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgfHw9
IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgewor
ICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAg
ICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVy
WyJhIl0gfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsK
KyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEiXSB8fD0gNDI7
CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxk
IGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAg
ICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0g
djsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7Cisg
ICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAg
ICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikg
eworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJb
ImEiXSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOwor
ICAgIHguX2EgPSBmYWxzZTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEiXSB8fD0gNDI7
CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxk
IGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0
LXBhcmVudCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAg
ICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVu
dCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBj
bGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07
CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNl
dC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSB8fD0gdjsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2lu
KCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBn
ZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworCisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6
IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgdHJ1ZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxl
OiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRh
YmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5h
IHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAidXNl
IHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwg
ImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAor
ICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxk
VGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307Cisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZp
bmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSB8
fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAg
ICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAg
IHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAg
ICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0p
OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwg
dHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAg
ICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAg
ICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAg
cmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5j
dGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAg
ICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsK
K30sIFR5cGVFcnJvcik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB4IHx8PSA0MjsKKyAgICB9KSgpOwor
ICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHgg
fHw9IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJl
dHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB4
IHx8PSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZFRo
cm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0
aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7CisgICAgfSkoKTsKK30sIFR5cGVFcnJv
cik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7
CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggfHw9IDQyOworICAg
IH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSB0cnVlOworICAgIHggfHw9ICsrY291bnQ7
CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICB0cnkgeworICAg
ICAgICB4IHx8PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7
Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKwor
ICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgdHJ5IHsKKyAgICAgICAgeCB8fD0gKytjb3Vu
dDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9
IHRydWU7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHg7IH0KKworICAgIHggfHw9
ICsrY291bnQ7CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICBm
dW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4geDsgfQorCisgICAgdHJ5IHsKKyAgICAgICAgeCB8
fD0gKytjb3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25z
dCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisK
KyAgICB0cnkgeworICAgICAgICB4IHx8PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAg
ICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgewor
ICAgIHggfHw9IDQyOworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30sIFJlZmVy
ZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB1bmRl
ZmluZWQgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBudWxsIHx8
PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlIHx8PSA0MmApOworCitzaG91
bGRUaHJvd1N5bnRheEVycm9yKGBmYWxzZSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhF
cnJvcihgMCB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSB8fD0gNDJgKTsK
Kworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgIiIgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3lu
dGF4RXJyb3IoYCJ0ZXN0IiB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihge30g
fHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYFtdIHx8PSA0MmApOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZp
Zy55YW1sCmluZGV4IDBiNmI1NmU4YzFkMmNlMTBhNmU2M2NiNDcwMmY4MDk0MGM3ZTBhNTguLjBj
NjdhNGRlNjMzZTJkNTVkOWM5MzU0N2Q2OGMwNGQ2NGIxYzAzZjcgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvdGVzdDI2Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwK
QEAgLTQsNiArNCw3IEBAIGZsYWdzOgogICBCaWdJbnQ6IHVzZUJpZ0ludAogICBXZWFrUmVmOiB1
c2VXZWFrUmVmcwogICBjbGFzcy1maWVsZHMtcHVibGljOiB1c2VQdWJsaWNDbGFzc0ZpZWxkcwor
ICBsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzOiB1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJh
dG9ycwogc2tpcDoKICAgZmVhdHVyZXM6CiAgICAgLSBTaGFyZWRBcnJheUJ1ZmZlcgpAQCAtMjAs
OCArMjEsNiBAQCBza2lwOgogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMjQ3NQogICAgIC0gcmVnZXhwLW1hdGNoLWluZGljZXMKICAgICAtIHRvcC1sZXZl
bC1hd2FpdAotICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
OTcxNgotICAgIC0gbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycwogICAgICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU2NgogICAgIC0gUHJvbWlzZS5hbnkK
ICAgICAtIEFnZ3JlZ2F0ZUVycm9yCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0
YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggNGFl
MmE3NzAyZDdlMTA1NWFiOTVmZmYwMGU0YmY3ZTY5YmEwMDMxNS4uNjMwZmFjOWViMGYxZmQxZjk5
NTdkN2U3OTZkOTA3MDFiNjI0YjVhZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVj
dGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAt
MjcxOCw2ICsyNzE4LDEyIEBAIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvaW1wb3J0Lm1ldGEv
c3ludGF4L2ludmFsaWQtYXNzaWdubWVudC10YXJnZXQtZm9yLW9mLWxvCiB0ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2luc3RhbmNlb2YvcHJvdG90eXBlLWdldHRlci13aXRoLXByaW1pdGl2ZS5q
czoKICAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogZ2V0dGVyIGZvciAncHJvdG90eXBlJyBjYWxs
ZWQiCiAgIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVycm9yOiBnZXR0ZXIgZm9yICdwcm90b3R5cGUn
IGNhbGxlZCIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanM6CisgIGRlZmF1bHQ6
ICJUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4iCit0ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNz
aWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjI6
IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKK3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRv
ci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVtZW50
IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbmV3
L2N0b3JFeHByLWZuLXJlZi1iZWZvcmUtYXJncy1ldmFsLWZuLXdyYXB1cC5qczoKICAgZGVmYXVs
dDogIlR5cGVFcnJvcjogMSBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IHgo
eCA9IDEpJykiCiAgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiAxIGlzIG5vdCBhIGNvbnN0cnVj
dG9yIChldmFsdWF0aW5nICduZXcgeCh4ID0gMSknKSIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396466</attachid>
            <date>2020-04-14 15:31:13 -0700</date>
            <delta_ts>2020-04-14 18:06:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200414163112.patch</filename>
            <type>text/plain</type>
            <size>117306</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGIzMjE2YThkODFhMzM5NzY0OGYwMzYyOGZkNjZk
ODRmZGQyNjZmYzUuLmUxOGY3NTEzZDg4ZWJjZjllMjFjMDJhOWY0YTg0MzRiNmFjZTBiY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTE0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBub3cgU3RhZ2UgMy4gSXQgaW50cm9kdWNlcwor
ICAgICAgICB0aHJlZSBuZXcgYXNzaWdubWVudCBvcGVyYXRvcnMgd2hpY2ggd2lsbCBvbmx5IHN0
b3JlIHRoZSByZXN1bHQgb2YgdGhlIHJocyBpbiB0aGUgbGhzIGlmIHRoZQorICAgICAgICBsaHMg
bWVldHMgdGhlIGdpdmVuIGNvbmRpdGlvbjoKKyAgICAgICAgIC0gYD8/PWAsIGZvciBpZiB0aGUg
bGhzIGlzIG51bGxpc2ggKGBudWxsYCBvciBgdW5kZWZpbmVkYCkKKyAgICAgICAgIC0gYHx8PWAs
IGZvciBpZiB0aGUgbGhzIGlzIGZhbHN5CisgICAgICAgICAtIGAmJj1gLCBmb3IgaWYgdGhlIGxo
cyBpcyB0cnV0aHkKKworICAgICAgICBUaGlzIHNob3J0IGNpcmN1aXRpbmcgY2FuIGJlIGJlbmVm
aWNpYWwgYXMgaXQgY2FuIGF2b2lkIGEgcmVkdW5kYW50IHN0b3JlIHdoZW4gdXNlZCBpbiB0aGUK
KyAgICAgICAgY29tbW9uIEphdmFTY3JpcHQgcHJvZ3JhbW1pbmcgcGF0dGVybiBvZiAiZGVmYXVs
dGluZyIgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgYGBganMKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZvbyh4KSB7CisgICAgICAgICAgICAgICAgeCA9IHggfHwgNDI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIGBgYAorCisgICAgICAgIElmIGB4YCBpcyBhIHRydXRoeSB2YWx1ZSwgaXQgd291bGQg
cmVzdWx0IGluIHRoZSByaHMgYHhgIGJlaW5nIHN0b3JlZCBiYWNrIGludG8gdGhlIGxocyBgeGAu
CisgICAgICAgIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gaGF2ZSBuZWdhdGl2ZSB1bmlu
dGVuZGVkIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBmb3IgYGlubmVySFRNTGAuCisKKyAgICAgICAg
TG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycywgaG93ZXZlciwgYXJlIGRlZmluZWQgc3VjaCB0
aGF0IHRoZXkgb25seSBzdG9yZSBpZiB0aGUgcmhzIGlzCisgICAgICAgIHRvIGFjdHVhbGx5IGJl
IG5lZWRlZC91c2VkLCBza2lwcGluZyB0aGUgcmVkdW5kYW50IHN0b3JlIGFuZCBzaW1wbHkgcmV0
dXJuaW5nIGxocyBvdGhlcndpc2UuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcmVhZG9ubHkg
cmVmZXJlbmNlcywgdGhpcyBtZWFucyB0aGF0IGFuIGVycm9yIGlzIG9ubHkgdGhyb3duIHdoZW4g
dGhlCisgICAgICAgIGFzc2lnbm1lbnQgb2NjdXJzLCBtZWFuaW5nIHRoYXQgaWYgdGhlIGxocyBh
bHJlYWR5IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uIGl0IHdpbGwgYmUgdXNlZAorICAgICAgICBh
bmQgcmV0dXJuZWQgd2l0aCBubyBlcnJvci4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6bGV4V2l0aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGU6OlNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlKTogQWRkZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50
KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRN
b2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKworICAg
ICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEgYHVzZUxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0aGlzIGZlYXR1cmUu
CisKIDIwMjAtMDQtMTAgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1lBUlJdIEFsbG93IGZvciBVbmljb2RlIG5hbWVkIGNhcHR1cmUgZ3JvdXAgaWRlbnRp
ZmllcnMgaW4gbm9uLVVuaWNvZGUgcmVndWxhciBleHByZXNzaW9ucwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IGQ0ZmRi
NGRkNTRkNDkyZjkwZDJkNzIxZmQ3ZGFjMTJmZjdkMmY4NTAuLjBkYWU1YzdjY2I0YTkyNzgyZmU1
MzVlNTRiZDBkNDIxNGUxZDE4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTI4NjIsNiArMjg2MiwxMDcgQEAgUmVn
aXN0ZXJJRCogUmVhZE1vZGlmeVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmUKICAgICByZXR1cm4gcmV0dXJuUmVzdWx0OwogfQogCisvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29s
dmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3N0YXRpYyBBTFdB
WVNfSU5MSU5FIHZvaWQgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogdmFsdWUsIE9wZXJhdG9yIG9wZXIsIExhYmVsJiBh
ZnRlckFzc2lnbm1lbnQpCit7CisgICAgc3dpdGNoIChvcGVyKSB7CisgICAgY2FzZSBPcGVyYXRv
cjo6TnVsbGlzaEVxOgorICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKGdlbmVyYXRv
ci5lbWl0SXNVbmRlZmluZWRPck51bGwoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCB2YWx1ZSks
IGFmdGVyQXNzaWdubWVudCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBPcGVyYXRvcjo6
T3JFcToKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZUcnVlKHZhbHVlLCBhZnRlckFzc2ln
bm1lbnQpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgT3BlcmF0b3I6OkFuZEVxOgorICAg
ICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKHZhbHVlLCBhZnRlckFzc2lnbm1lbnQpOwor
ICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworUmVnaXN0ZXJJRCogU2hv
cnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIEpTVGV4dFBvc2l0aW9u
IG5ld0Rpdm90ID0gZGl2b3RTdGFydCgpICsgbV9pZGVudC5sZW5ndGgoKTsKKworICAgIFZhcmlh
YmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2lkZW50KTsKKyAgICBib29sIGlzUmVhZE9u
bHkgPSB2YXIuaXNSZWFkT25seSgpOworCisgICAgaWYgKFJlZlB0cjxSZWdpc3RlcklEPiBsb2Nh
bCA9IHZhci5sb2NhbCgpKSB7CisgICAgICAgIGdlbmVyYXRvci5lbWl0VERaQ2hlY2tJZk5lY2Vz
c2FyeSh2YXIsIGxvY2FsLmdldCgpLCBudWxscHRyKTsKKworICAgICAgICBpZiAoaXNSZWFkT25s
eSkgeworICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGxvY2FsOworCisg
ICAgICAgICAgICBSZWY8TGFiZWw+IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJl
bCgpOworICAgICAgICAgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCBy
ZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICAg
ICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZShyZXN1bHQuZ2V0KCksIG1fcmlnaHQp
OyAvLyBFeGVjdXRlIHNpZGUgZWZmZWN0cyBmaXJzdC4KKyAgICAgICAgICAgIGdlbmVyYXRvci5l
bWl0UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIpOworCisgICAgICAgICAgICBnZW5lcmF0
b3IuZW1pdExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAgICAgICAgICBnZW5lcmF0
b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgp
KTsKKyAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAoZ2VuZXJhdG9yLmxlZnRIYW5kU2lkZU5lZWRzQ29w
eShtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKSkgewor
ICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci5uZXdUZW1w
b3JhcnkoKTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5tb3ZlKHJlc3VsdC5nZXQoKSwgbG9jYWwu
Z2V0KCkpOworCisgICAgICAgICAgICBSZWY8TGFiZWw+IGFmdGVyQXNzaWdubWVudCA9IGdlbmVy
YXRvci5uZXdMYWJlbCgpOworICAgICAgICAgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQo
Z2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQo
KSk7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZShyZXN1bHQuZ2V0
KCksIG1fcmlnaHQpOworICAgICAgICAgICAgZ2VuZXJhdG9yLm1vdmUobG9jYWwuZ2V0KCksIHJl
c3VsdC5nZXQoKSk7CisKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoYWZ0ZXJBc3Np
Z25tZW50LmdldCgpKTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVz
dWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAgICAgICAgcmV0dXJu
IGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKKyAgICAgICAgfQorCisgICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBsb2NhbDsKKworICAgICAgICBSZWY8TGFiZWw+
IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgICAgICBlbWl0U2hv
cnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwg
YWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1p
dE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKworICAgICAgICBnZW5lcmF0b3IuZW1pdExh
YmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmls
ZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAgICBy
ZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgIH0KKworICAgIGdl
bmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8obmV3RGl2b3QsIGRpdm90U3RhcnQoKSwgbmV3RGl2
b3QpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2
ZVNjb3BlKG51bGxwdHIsIHZhcik7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXRHZXRGcm9tU2NvcGUoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBzY29w
ZS5nZXQoKSwgdmFyLCBUaHJvd0lmTm90Rm91bmQpOworICAgIGdlbmVyYXRvci5lbWl0VERaQ2hl
Y2tJZk5lY2Vzc2FyeSh2YXIsIHJlc3VsdC5nZXQoKSwgbnVsbHB0cik7CisKKyAgICBSZWY8TGFi
ZWw+IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgIGVtaXRTaG9y
dENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBh
ZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2Rl
KHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7IC8vIEV4ZWN1dGUgc2lkZSBlZmZlY3RzIGZpcnN0Lgor
CisgICAgYm9vbCB0aHJld0V4Y2VwdGlvbiA9IGlzUmVhZE9ubHkgPyBnZW5lcmF0b3IuZW1pdFJl
YWRPbmx5RXhjZXB0aW9uSWZOZWVkZWQodmFyKSA6IGZhbHNlOworCisgICAgaWYgKCF0aHJld0V4
Y2VwdGlvbikKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBk
aXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworCisgICAgaWYgKCFpc1JlYWRPbmx5KSB7CisgICAg
ICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0VG9TY29wZShzY29wZS5nZXQoKSwgdmFyLCBy
ZXN1bHQuZ2V0KCksIFRocm93SWZOb3RGb3VuZCwgSW5pdGlhbGl6YXRpb25Nb2RlOjpOb3RJbml0
aWFsaXphdGlvbik7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0Lmdl
dCgpLCB2YXIsIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgfQorCisgICAgZ2VuZXJh
dG9yLmVtaXRMYWJlbChhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworICAgIHJldHVybiBnZW5lcmF0
b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cit9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBBc3NpZ25SZXNvbHZlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCiBzdGF0aWMgSW5pdGlhbGl6YXRpb25Nb2RlIGluaXRpYWxpemF0aW9uTW9kZUZv
ckFzc2lnbm1lbnRDb250ZXh0KEFzc2lnbm1lbnRDb250ZXh0IGFzc2lnbm1lbnRDb250ZXh0KQog
ewogICAgIHN3aXRjaCAoYXNzaWdubWVudENvbnRleHQpIHsKQEAgLTI4NzcsOCArMjk3OCw2IEBA
IHN0YXRpYyBJbml0aWFsaXphdGlvbk1vZGUgaW5pdGlhbGl6YXRpb25Nb2RlRm9yQXNzaWdubWVu
dENvbnRleHQoQXNzaWdubWVudENvbnRlCiAgICAgcmV0dXJuIEluaXRpYWxpemF0aW9uTW9kZTo6
Tm90SW5pdGlhbGl6YXRpb247CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBBc3NpZ25SZXNvbHZlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
CiBSZWdpc3RlcklEKiBBc3NpZ25SZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKICAgICBWYXJpYWJsZSB2YXIg
PSBnZW5lcmF0b3IudmFyaWFibGUobV9pZGVudCk7CkBAIC0yOTc4LDYgKzMwNzcsMzcgQEAgUmVn
aXN0ZXJJRCogUmVhZE1vZGlmeURvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYgZ2VuZXJhdG9yLCBSZWdpc3QKICAgICByZXR1cm4gcmV0OwogfQogCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogU2hvcnRDaXJjdWl0
UmVhZE1vZGlmeURvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJh
dG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBn
ZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9iYXNlLCBtX3JpZ2h0SGFzQXNzaWdu
bWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJ
RD4gdGhpc1ZhbHVlOworCisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdDsKKworICAgIGdl
bmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oc3ViZXhwcmVzc2lvbkRpdm90KCksIHN1YmV4cHJl
c3Npb25TdGFydCgpLCBzdWJleHByZXNzaW9uRW5kKCkpOworICAgIGlmIChtX2Jhc2UtPmlzU3Vw
ZXJOb2RlKCkpIHsKKyAgICAgICAgdGhpc1ZhbHVlID0gZ2VuZXJhdG9yLmVuc3VyZVRoaXMoKTsK
KyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci50ZW1wRGVz
dGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBtX2lkZW50KTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRv
ci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgbV9pZGVudCk7CisKKyAgICBSZWY8
TGFiZWw+IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgIGVtaXRT
aG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9y
LCBhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRO
b2RlKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9u
SW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGlmIChtX2Jhc2Ut
PmlzU3VwZXJOb2RlKCkpCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlJZChi
YXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1faWRlbnQsIHJlc3VsdC5nZXQoKSk7CisgICAg
ZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwg
bV9pZGVudCwgcmVzdWx0LmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoYWZ0ZXJB
c3NpZ25tZW50LmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5n
ZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLm1v
dmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gQXNzaWduRXJyb3JOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIFJlZ2lzdGVySUQqIEFzc2lnbkVycm9yTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqKQpAQCAtMzA0Miw2ICszMTcyLDM4IEBAIFJl
Z2lzdGVySUQqIFJlYWRNb2RpZnlCcmFja2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsIFJlCiAgICAgcmV0dXJuIHVwZGF0ZWRWYWx1ZTsKIH0KIAorLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFj
a2V0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklE
KiBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9iYXNl
LCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzIHx8IG1fcmlnaHRIYXNBc3NpZ25tZW50cywgbV9z
dWJzY3JpcHQtPmlzUHVyZShnZW5lcmF0b3IpICYmIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3Ip
KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGVG
b3JMZWZ0SGFuZFNpZGVGb3JQcm9wZXJ0eShtX3N1YnNjcmlwdCwgbV9yaWdodEhhc0Fzc2lnbm1l
bnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IHRoaXNWYWx1ZTsKKworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQ7CisKKyAgICBnZW5l
cmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHN1YmV4cHJlc3Npb25EaXZvdCgpLCBzdWJleHByZXNz
aW9uU3RhcnQoKSwgc3ViZXhwcmVzc2lvbkVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVy
Tm9kZSgpKSB7CisgICAgICAgIHRoaXNWYWx1ZSA9IGdlbmVyYXRvci5lbnN1cmVUaGlzKCk7Cisg
ICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlWYWwoZ2VuZXJhdG9yLnRlbXBEZXN0
aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIHByb3BlcnR5LmdldCgp
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZhbChn
ZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIHByb3BlcnR5LmdldCgp
KTsKKworICAgIFJlZjxMYWJlbD4gYWZ0ZXJBc3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVs
KCk7CisgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0
KCksIG1fb3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBn
ZW5lcmF0b3IuZW1pdE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBnZW5lcmF0b3Iu
ZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Cisg
ICAgaWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9y
LmVtaXRQdXRCeVZhbChiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIHByb3BlcnR5LmdldCgp
LCByZXN1bHQuZ2V0KCkpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVt
aXRQdXRCeVZhbChiYXNlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSwgcmVzdWx0LmdldCgpKTsKKwor
ICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKyAgICBnZW5l
cmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVu
ZCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQor
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29tbWFOb2RlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZWdpc3RlcklEKiBDb21tYU5vZGU6OmVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDQzYjE3MWZiYzRl
N2IzNTlkYmU2ODI3ZmE1ZGM1Yjg1YTg5ZWJmYzAuLjVlMzUzYmQxNzYzZDllMmY3NGQzNjQyNDRh
MGIwZGFkZDIyNTgyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
QVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRl
ci5oCkBAIC0xNTQ4LDYgKzE1NDgsNyBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFr
ZUFzc2lnbk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcgogCiAgICAg
aWYgKGxvYy0+aXNSZXNvbHZlTm9kZSgpKSB7CiAgICAgICAgIFJlc29sdmVOb2RlKiByZXNvbHZl
ID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPihsb2MpOworCiAgICAgICAgIGlmIChvcCA9PSBP
cGVyYXRvcjo6RXF1YWwpIHsKICAgICAgICAgICAgIGlmIChleHByLT5pc0Jhc2VGdW5jRXhwck5v
ZGUoKSkgewogICAgICAgICAgICAgICAgIGF1dG8gbWV0YWRhdGEgPSBzdGF0aWNfY2FzdDxCYXNl
RnVuY0V4cHJOb2RlKj4oZXhwciktPm1ldGFkYXRhKCk7CkBAIC0xNTU4LDIxICsxNTU5LDQyIEBA
IEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mIGxvY2F0aW9uLCBFeHByCiAgICAgICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlv
bihub2RlLCBzdGFydCwgZGl2b3QsIGVuZCk7CiAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAg
ICAgICAgfQorCisgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09
IE9wZXJhdG9yOjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkKKyAgICAgICAgICAgIHJl
dHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZShsb2NhdGlvbiwgcmVzb2x2ZS0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2ln
bm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CisKICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJz
ZXJBcmVuYSkgUmVhZE1vZGlmeVJlc29sdmVOb2RlKGxvY2F0aW9uLCByZXNvbHZlLT5pZGVudGlm
aWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsK
ICAgICB9CisKICAgICBpZiAobG9jLT5pc0JyYWNrZXRBY2Nlc3Nvck5vZGUoKSkgewogICAgICAg
ICBCcmFja2V0QWNjZXNzb3JOb2RlKiBicmFja2V0ID0gc3RhdGljX2Nhc3Q8QnJhY2tldEFjY2Vz
c29yTm9kZSo+KGxvYyk7CisKICAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpFcXVhbCkKICAg
ICAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIEFzc2lnbkJyYWNrZXROb2RlKGxv
Y2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBleHByLCBsb2NI
YXNBc3NpZ25tZW50cywgZXhwckhhc0Fzc2lnbm1lbnRzLCBicmFja2V0LT5kaXZvdCgpLCBzdGFy
dCwgZW5kKTsKKworICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6Ok51bGxpc2hFcSB8fCBvcCA9
PSBPcGVyYXRvcjo6T3JFcSB8fCBvcCA9PSBPcGVyYXRvcjo6QW5kRXEpIHsKKyAgICAgICAgICAg
IGF1dG8qIG5vZGUgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlC
cmFja2V0Tm9kZShsb2NhdGlvbiwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQo
KSwgb3AsIGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90
LCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGJy
YWNrZXQtPmRpdm90KCksIGJyYWNrZXQtPmRpdm90RW5kKCkub2Zmc2V0KTsKKyAgICAgICAgICAg
IHJldHVybiBub2RlOworICAgICAgICB9CisKICAgICAgICAgUmVhZE1vZGlmeUJyYWNrZXROb2Rl
KiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBSZWFkTW9kaWZ5QnJhY2tldE5vZGUobG9jYXRp
b24sIGJyYWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIG9wLCBleHByLCBsb2NI
YXNBc3NpZ25tZW50cywgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAg
ICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGJyYWNrZXQtPmRpdm90KCksIGJyYWNr
ZXQtPmRpdm90RW5kKCkub2Zmc2V0KTsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQorCiAg
ICAgQVNTRVJUKGxvYy0+aXNEb3RBY2Nlc3Nvck5vZGUoKSk7CiAgICAgRG90QWNjZXNzb3JOb2Rl
KiBkb3QgPSBzdGF0aWNfY2FzdDxEb3RBY2Nlc3Nvck5vZGUqPihsb2MpOworCiAgICAgaWYgKG9w
ID09IE9wZXJhdG9yOjpFcXVhbCkKICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkg
QXNzaWduRG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBl
eHByLCBleHBySGFzQXNzaWdubWVudHMsIGRvdC0+ZGl2b3QoKSwgc3RhcnQsIGVuZCk7CiAKKyAg
ICBpZiAob3AgPT0gT3BlcmF0b3I6Ok51bGxpc2hFcSB8fCBvcCA9PSBPcGVyYXRvcjo6T3JFcSB8
fCBvcCA9PSBPcGVyYXRvcjo6QW5kRXEpIHsKKyAgICAgICAgYXV0byogbm9kZSA9IG5ldyAobV9w
YXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUobG9jYXRpb24sIGRvdC0+
YmFzZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywg
ZGl2b3QsIHN0YXJ0LCBlbmQpOworICAgICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhk
b3QtPmRpdm90KCksIGRvdC0+ZGl2b3RFbmQoKS5vZmZzZXQpOworICAgICAgICByZXR1cm4gbm9k
ZTsKKyAgICB9CisKICAgICBSZWFkTW9kaWZ5RG90Tm9kZSogbm9kZSA9IG5ldyAobV9wYXJzZXJB
cmVuYSkgUmVhZE1vZGlmeURvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50
aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQp
OwogICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5kaXZv
dEVuZCgpLm9mZnNldCk7CiAgICAgcmV0dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTGV4ZXIuY3BwCmluZGV4IDRmYjgzY2EzYTBhN2M4YWE5OTJkMjAyOWU5MDlhMDMyYzE1ZDkw
MDYuLmJhZTVmNmY4MzkyOWIwODU2ODUzM2E4MmYyMTY0MzkzNzgzYjIyZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC0yMDg2LDYgKzIwODYsMTEgQEAgc3RhcnQ6
CiAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJyYnKSB7CiAgICAg
ICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxv
Z2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAg
ICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gQU5ERVFVQUw7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0b2tlbiA9
IEFORDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMTIzLDYgKzIxMjgsMTEg
QEAgc3RhcnQ6CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAnfCcpIHsKICAg
ICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6dXNl
TG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0nKSkgeworICAg
ICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBPUkVRVUFMOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4g
PSBPUjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0yMTU5LDYgKzIxNjksMTEg
QEAgc3RhcnQ6CiAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJz8n
KSB7CiAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlv
bnM6OnVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9Jykp
IHsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gTlVM
TElTSEVRVUFMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAg
ICAgICAgdG9rZW4gPSBDT0FMRVNDRTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCmluZGV4
IGZkOTdhMGNhOTM1ZTdlNTc3OGEwOTM4NTAyMmY5ODY3ODAxNGEzMjQuLmFmMDQzNDU4YTQzNzYx
NjI0NDFiNjI0MDgxMDlkZTU4YTIyYjVlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC03MTgsNiArNzE4LDE2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0UmVhZE1vZGlm
eVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9wZXJhdG9y
IG9wZXIsIEV4cHJlc3Npb25Ob2RlKiAgcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RT
dGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQorICAgICAgICA6IEV4cHJlc3Np
b25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90
LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKKyAgICAgICAgLCBtX2lkZW50KGlkZW50KQorICAgICAg
ICAsIG1fcmlnaHQocmlnaHQpCisgICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAs
IG1fcmlnaHRIYXNBc3NpZ25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9
CisKICAgICBpbmxpbmUgQXNzaWduUmVzb2x2ZU5vZGU6OkFzc2lnblJlc29sdmVOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBFeHBy
ZXNzaW9uTm9kZSogcmlnaHQsIEFzc2lnbm1lbnRDb250ZXh0IGFzc2lnbm1lbnRDb250ZXh0KQog
ICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1faWRlbnQoaWRl
bnQpCkBAIC03MzksNiArNzQ5LDE4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAK
KyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwg
RXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9y
IG9wZXIsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50
cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3Qs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAgICAgICwg
VGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKQor
ICAgICAgICAsIG1fYmFzZShiYXNlKQorICAgICAgICAsIG1fc3Vic2NyaXB0KHN1YnNjcmlwdCkK
KyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAg
ICAgICAgLCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzKHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRz
KQorICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQor
ICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUgQXNzaWduQnJhY2tldE5vZGU6OkFzc2lnbkJyYWNr
ZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBi
YXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJv
b2wgc3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQogICAgICAgICA6IEV4cHJlc3Npb25O
b2RlKGxvY2F0aW9uKQogICAgICAgICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBk
aXZvdFN0YXJ0LCBkaXZvdEVuZCkKQEAgLTc3MSw2ICs3OTMsMTcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9k
ZTo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBs
b2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBP
cGVyYXRvciBvcGVyLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25t
ZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQorICAgICAgICA6IEV4
cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIFRocm93YWJsZVN1YkV4cHJlc3Npb25E
YXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKKyAgICAgICAgLCBtX2Jhc2UoYmFzZSkK
KyAgICAgICAgLCBtX2lkZW50KGlkZW50KQorICAgICAgICAsIG1fcmlnaHQocmlnaHQpCisgICAg
ICAgICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25tZW50cyhy
aWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUgQXNzaWduRXJy
b3JOb2RlOjpBc3NpZ25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RT
dGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQogICAgICAgICA6IEV4cHJlc3Np
b25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90
LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApp
bmRleCAyMmRmNWFlNGQwOGU1ODZlNzhmOGIzOWIyYmJmNWE2OGZmMThlNjVkLi5iNTE1NjA0YTY4
YWE2YmU0MzhmNGRmZTc5YWI0YTgwNDJjOGFmZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCkBAIC02OCw2ICs2OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBCaXRP
ckVxLAogICAgICAgICBNb2RFcSwKICAgICAgICAgUG93RXEsCisgICAgICAgIE51bGxpc2hFcSwK
KyAgICAgICAgT3JFcSwKKyAgICAgICAgQW5kRXEsCiAgICAgICAgIExTaGlmdCwKICAgICAgICAg
UlNoaWZ0LAogICAgICAgICBVUlNoaWZ0CkBAIC0xMzg5LDYgKzEzOTIsMTkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzOwogICAgIH07CiAKKyAg
ICBjbGFzcyBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUgZmluYWwgOiBwdWJsaWMg
RXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CisgICAgcHVi
bGljOgorICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9k
ZSogIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRl
OworCisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgICAgIEV4cHJlc3Np
b25Ob2RlKiBtX3JpZ2h0OworICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBi
b29sIG1fcmlnaHRIYXNBc3NpZ25tZW50czsKKyAgICB9OworCiAgICAgY2xhc3MgQXNzaWduUmVz
b2x2ZU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVF
eHByZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBBc3NpZ25SZXNvbHZlTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgRXhwcmVzc2lvbk5vZGUq
IHJpZ2h0LCBBc3NpZ25tZW50Q29udGV4dCk7CkBAIC0xNDE4LDYgKzE0MzQsMjEgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKICAgICB9
OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlIGZpbmFsIDog
cHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEg
eworICAgIHB1YmxpYzoKKyAgICAgICAgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2Rl
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9u
Tm9kZSogc3Vic2NyaXB0LCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1
YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IDApIG92ZXJyaWRlOworCisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CisgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1f
cmlnaHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9zdWJz
Y3JpcHRIYXNBc3NpZ25tZW50cyA6IDE7CisgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1l
bnRzIDogMTsKKyAgICB9OworCiAgICAgY2xhc3MgQXNzaWduQnJhY2tldE5vZGUgZmluYWwgOiBw
dWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAg
ICAgcHVibGljOgogICAgICAgICBBc3NpZ25CcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhw
cmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJp
Z2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7
CkBAIC0xNDU5LDYgKzE0OTAsMjAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9y
aWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKICAgICB9OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0
UmVhZE1vZGlmeURvdE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBU
aHJvd2FibGVTdWJFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBTaG9ydENp
cmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9u
Tm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSog
cmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90RW5kKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisK
KyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKKyAgICAgICAgY29uc3QgSWRlbnRpZmll
ciYgbV9pZGVudDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CisgICAgICAgIE9w
ZXJhdG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDog
MTsKKyAgICB9OworCiAgICAgY2xhc3MgQXNzaWduRXJyb3JOb2RlIGZpbmFsIDogcHVibGljIEV4
cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1Ymxp
YzoKICAgICAgICAgQXNzaWduRXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5jcHAKaW5kZXggZGQyNTFmN2FiZTc1YmZiY2UwYTM5YjhjMGVlZjU1YjJkNDFi
ZjcwOS4uOTc2NzU3YmQ0OTRkZmE5MGJiZDAyOGY3M2RjNjkzYTM1MDQ5MmMyZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMzg0Nyw3ICszODQ3LDcgQEAgdGVt
cGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJU
eXBlPjo6cGFyc2VBc3NpZ25tZW4KIAogICAgIGZhaWxJZkZhbHNlKGxocywgIkNhbm5vdCBwYXJz
ZSBleHByZXNzaW9uIik7CiAgICAgaWYgKGluaXRpYWxOb25MSFNDb3VudCAhPSBtX3BhcnNlclN0
YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAm
JiBtX3Rva2VuLm1fdHlwZSA8PSBCSVRPUkVRVUFMKQorICAgICAgICBpZiAobV90b2tlbi5tX3R5
cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQU5ERVFVQUwpCiAgICAgICAgICAgICBz
ZW1hbnRpY0ZhaWwoIkxlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAi
JyBtdXN0IGJlIGEgcmVmZXJlbmNlIik7CiAKICAgICAgICAgcmV0dXJuIGxoczsKQEAgLTM4NzEs
NiArMzg3MSw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Np
b24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAgICAgICAgIGNhc2UgQklUT1JF
UVVBTDogb3AgPSBPcGVyYXRvcjo6Qml0T3JFcTsgYnJlYWs7CiAgICAgICAgIGNhc2UgTU9ERVFV
QUw6IG9wID0gT3BlcmF0b3I6Ok1vZEVxOyBicmVhazsKICAgICAgICAgY2FzZSBQT1dFUVVBTDog
b3AgPSBPcGVyYXRvcjo6UG93RXE7IGJyZWFrOworICAgICAgICBjYXNlIE5VTExJU0hFUVVBTDog
b3AgPSBPcGVyYXRvcjo6TnVsbGlzaEVxOyBicmVhazsKKyAgICAgICAgY2FzZSBPUkVRVUFMOiBv
cCA9IE9wZXJhdG9yOjpPckVxOyBicmVhazsKKyAgICAgICAgY2FzZSBBTkRFUVVBTDogb3AgPSBP
cGVyYXRvcjo6QW5kRXE7IGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZ290
byBlbmQ7CiAgICAgICAgIH0KQEAgLTM4OTAsNyArMzg5Myw3IEBAIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNz
aWdubWVuCiAgICAgICAgIGxocyA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7
CiAgICAgICAgIGZhaWxJZkZhbHNlKGxocywgIkNhbm5vdCBwYXJzZSB0aGUgcmlnaHQgaGFuZCBz
aWRlIG9mIGFuIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiIpOwogICAgICAgICBpZiAoaW5pdGlhbE5v
bkxIU0NvdW50ICE9IG1fcGFyc2VyU3RhdGUubm9uTEhTQ291bnQpIHsKLSAgICAgICAgICAgIGlm
IChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBCSVRPUkVRVUFM
KQorICAgICAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90
eXBlIDw9IEFOREVRVUFMKQogICAgICAgICAgICAgICAgIHNlbWFudGljRmFpbCgiTGVmdCBoYW5k
IHNpZGUgb2Ygb3BlcmF0b3IgJyIsIGdldFRva2VuKCksICInIG11c3QgYmUgYSByZWZlcmVuY2Ui
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXJUb2tlbnMuaAppbmRleCA0ODE4MWFlMGQ0YjkzMzg5NGY4ZTRmMmJkZmRi
NjJlODEzODNkMmM1Li5kMWM0N2VmZTJjZmJhNDNjYzhjNmZmMDBhZjJlOTgyNGNhZWM2OTQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKQEAgLTEzNCw2
ICsxMzQsOSBAQCBlbnVtIEpTVG9rZW5UeXBlIHsKICAgICBCSVRBTkRFUVVBTCwKICAgICBCSVRY
T1JFUVVBTCwKICAgICBCSVRPUkVRVUFMLAorICAgIE5VTExJU0hFUVVBTCwKKyAgICBPUkVRVUFM
LAorICAgIEFOREVRVUFMLAogICAgIERPVERPVERPVCwKICAgICBBUlJPV0ZVTkNUSU9OLAogICAg
IFFVRVNUSU9ORE9ULApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9uc0xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0
LmgKaW5kZXggOTk2OTRkMDEyN2JhZTFjZWE1Y2Y2M2ZhOWNkZDk3NzAwMGNiN2FhNC4uYzI4YmZj
MzRiZmU4MGY3NjM0YTQwZTFmMzhkMDI5N2I2YTcwZDcxZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCkBAIC01MDAsNiArNTAwLDcgQEAgY29uc3RleHBy
IGJvb2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2KEJvb2ws
IGZvcmNlT1NSRXhpdFRvTExJbnQsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSBhbHdheXMg
ZXhpdCB0byB0aGUgTExJbnQuIElmIGZhbHNlLCB3ZSBleGl0IHRvIHdoYXRldmVyIGlzIG1vc3Qg
Y29udmVuaWVudC4iKSBcCiAgICAgdihVbnNpZ25lZCwgZ2V0QnlWYWxJQ01heE51bWJlck9mSWRl
bnRpZmllcnMsIDQsIE5vcm1hbCwgIk51bWJlciBvZiBpZGVudGlmaWVycyB3ZSBzZWUgaW4gdGhl
IExMSW50IHRoYXQgY291bGQgY2F1c2UgdXMgdG8gYmFpbCBvbiBnZW5lcmF0aW5nIGFuIElDIGZv
ciBnZXRfYnlfdmFsLiIpIFwKICAgICB2KEJvb2wsIHVzZVB1YmxpY0NsYXNzRmllbGRzLCB0cnVl
LCBOb3JtYWwsICJJZiB0cnVlLCB0aGUgcGFyc2VyIHdpbGwgdW5kZXJzdGFuZCBwdWJsaWMgZGF0
YSBmaWVsZHMgaW5zaWRlIGNsYXNzZXMuIikgXAorICAgIHYoQm9vbCwgdXNlTG9naWNhbEFzc2ln
bm1lbnRPcGVyYXRvcnMsIGZhbHNlLCBOb3JtYWwsICJFbmFibGUgc3VwcG9ydCBmb3IgXD9cPz0s
IHx8PSwgYW5kICYmPSBsb2dpY2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzLiIpIFwKICAgICB2KEJv
b2wsIHVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb24sIGZhbHNlLCBOb3Jt
YWwsICJGb3IgdGhlIGFybTY0IEV4ZWN1dGFibGVBbGxvY2F0b3IsIGlmIHRydWUsIHNlbGVjdCB3
aGljaCByZWdpb24gdG8gdXNlIHJhbmRvbWx5LiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGVzdGluZyB0
aGF0IGp1bXAgaXNsYW5kcyB3b3JrLiIpIFwKIAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMThkZTI0
OTkzNWFkOGFjNGJjMmVhZjE0M2IwMjJlZmYxMzhiNTdmNi4uYWE5ZTNmZTIwZTZlOTc1YTU4M2Q1
MDEyYTE5NTM2OTlmMjRmNWFiNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA0LTE0ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1lbnQgbG9naWNh
bCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIwLTA0
LTEzICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgY2hlY2st
d2Via2l0LXN0eWxlIHNob3VsZCB3YXJuIGFib3V0IGF0dHJpYnV0ZXMgdGhhdCBhcHBlYXIgYWZ0
ZXIgZnVuY3Rpb24gZGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpz
Yy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4
IDdiZGE2MTc3ZDY0MDA5YzI2NWJjN2M0MDg3MWEzMGY3NDQ3ZDUxNmIuLmM0ZTA4ZjBmZjRmNmRi
YmE3ODEzZmFhYzllODcxNjNhZmJjODA0NzcgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVu
LWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0
cwpAQCAtNzg3LDYgKzc4NywxMCBAQCBkZWYgcnVuTWluaU1vZGUoKm9wdGlvbmFsVGVzdFNwZWNp
ZmljT3B0aW9ucykKICAgICBydW4oIm1pbmktbW9kZSIsICItLWZvcmNlTWluaVZNTW9kZT10cnVl
IiwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKIGVuZAogCitkZWYgcnVuTG9naWNhbEFz
c2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCisg
ICAgcnVuKCJsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzLWVuYWJsZWQiLCAiLS11c2VMb2dp
Y2FsQXNzaWdubWVudE9wZXJhdG9ycz10cnVlIiAsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpKQorZW5kCisKIGRlZiBkZWZhdWx0UnVuCiAgICAgaWYgJG1vZGUg
PT0gInF1aWNrIgogICAgICAgICBkZWZhdWx0UXVpY2tSdW4KZGlmZiAtLWdpdCBhL0pTVGVzdHMv
Q2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjhlMzhhNTgyNzIzN2UwY2UzMTc2
OGY1YjU0ZDY2NGVmYTg3N2ZhMS4uYjljYzg5ZWI2ZjdjNWMyYzliZGIyZDk4N2M0ZDRjZDkyZjBi
ZDI5YiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNC0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW0VTTmV4dF0gSW1wbGVtZW50IGxvZ2ljYWwgYXNzaWdubWVu
dCBvcGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQuanM6IEFkZGVkLgor
ICAgICAgICAqIHN0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qczog
QWRkZWQuCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1vci5q
czogQWRkZWQuCisKKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1sOgorICAgICAgICAqIHRl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisgICAgICAgIFJpZ2h0IG5vdywgdGVzdDI2MiBleHBl
Y3RzIGFuIGVhcmx5IGVycm9yIHRvIGJlIHRocm93biBpZiB0aGUgbGhzIGlzIG5vdCBzaW1wbGUs
IHdoaWNoIGRvZXMKKyAgICAgICAgbm90IG1hdGNoIHdoYXQgd2UgZG8gd2l0aCBvdGhlciByZWFk
LW1vZGlmeSBhc3NpZ25tZW50IG9wZXJhdG9ycy4gVGhpcyBpcyBsaWtlbHkgdG8gY2hhbmdlCisg
ICAgICAgIGluIHRoZSBmdXR1cmUgdG8gbWF0Y2ggZXhpc3RpbmcgYmVoYXZpb3IgKHRocm93IGEg
YFJlZmVyZW5jZUVycm9yYCkgWzFdLgorCisgICAgICAgIFsxXTogPGh0dHBzOi8vZ2l0aHViLmNv
bS90YzM5L2VjbWEyNjIvaXNzdWVzLzI1NyNpc3N1ZWNvbW1lbnQtNTAyODc4NzA4PgorCiAyMDIw
LTA0LTEzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFtZ
QVJSXSBBbGxvdyBmb3IgVW5pY29kZSBuYW1lZCBjYXB0dXJlIGdyb3VwIGlkZW50aWZpZXJzIGlu
IG5vbi1Vbmljb2RlIHJlZ3VsYXIgZXhwcmVzc2lvbnMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy9s
b2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NzU3YTU0OWM2
MTVlMzE2NmQxNDMwZWJmM2M4MWY2OTA4YmIwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzCkBAIC0wLDAgKzEsMTY4
NCBAQAorLy9AIHJ1bkxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlv
biBzaG91bGRCZShmdW5jLCBleHBlY3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBmdW5jKCk7Cisg
ICAgaWYgKHR5cGVvZiBleHBlY3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNl
b2YgZXhwZWN0ZWQpIDogYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKGBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04u
c3RyaW5naWZ5KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVy
cm9yVHlwZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEo
ZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4
cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9IGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFg
KTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3dTeW50YXhFcnJvcihzY3JpcHQpIHsKKyAgICBs
ZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3Rh
bmNlb2YgU3ludGF4RXJyb3IpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFN5
bnRheEVycm9yIGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5k
ZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgeCAmJj0g
NDI7CisgICAgcmV0dXJuIHg7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCB1bmRl
ZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsK
KyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9
LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAg
IHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBmYWxzZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0
dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
MDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSAwOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAg
ICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSAiIjsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAg
cmV0dXJuIHg7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
InRlc3QiOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSAidGVzdCI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAg
cmV0dXJuIHggJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHt9OworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJldHVybiB4ICYmPSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4
ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwg
dW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVm
aW5lZDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBudWxsOworICAgIHJldHVybiB4ICYm
PSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
bnVsbDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIG51bGwpOworCitzaG91bGRU
aHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCAmJj0g
NDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gZmFsc2U7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0
dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSAwOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDAp
OworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICByZXR1
cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gIiI7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgIiIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0
dXJuIHg7Cit9LCAiIik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSAidGVzdCI7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxk
VGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4ICYmPSA0
MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSBbXTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geC5hICYmPSA0
MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e307CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEg
JiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZh
bHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9Owor
ICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07Cisg
ICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4
LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHgu
YSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsK
KyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319Owor
ICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEgJiY9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07Cisg
ICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4LmEgJiY9IDQyOwor
fSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9
OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHVuZGVmaW5lZCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgbnVsbCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeC5h
ICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07
CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hICYm
PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiBmYWxzZX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJl
dHVybiB4LmEgJiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogMH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgcmV0
dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogMX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiAiIn07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07
CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVy
biB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YToge319OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogW119OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgJiY9IDQyOworICAg
IHJldHVybiB4LmE7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0gJiY9IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gJiY9
IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gJiY9IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAg
IHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0g
JiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiBmYWxzZX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
ZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAg
ICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07
CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJu
IHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJdICYmPSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHhb
ImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07
CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEi
XSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IFtdfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0
dXJuIHhbImEiXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZp
bmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmlu
ZWR9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHVuZGVmaW5l
ZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07Cisg
ICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICB4WyJh
Il0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gJiY9
IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBm
YWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07Cisg
ICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiAxfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgIiIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAi
dGVzdCJ9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0
dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YToge319OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBb
XX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHhbImEiXSAmJj0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW107CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4WzBdICYmPSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwg
dW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZp
bmVkXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHVuZGVmaW5lZCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHJldHVy
biB4WzBdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFtudWxsXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIG51
bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICBy
ZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW3RydWVdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAg
cmV0dXJuIHhbMF0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOwor
ICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFswXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICByZXR1
cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gWzFdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhb
MF0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFsiIl07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhb
MF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFsidGVzdCJdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgcmV0dXJuIHhb
MF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFt7fV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAm
Jj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1td
XTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworCisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSAm
Jj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gW107CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB1bmRlZmlu
ZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07
CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gJiY9IDQyOwor
ICAgIHJldHVybiB4WzBdOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCBudWxs
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICB4
WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsK
KyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9
IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W2ZhbHNlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4g
eFswXSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFswXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzFdOworICAgIHJldHVybiB4WzBd
ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFsxXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0g
JiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
WyIiXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4
WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFsidGVzdCJdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICByZXR1
cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbe31dOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICByZXR1
cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbW11dOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIp
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIGZh
bHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ID0gejsKK30sIGZh
bHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmIHo7Cit9LCBm
YWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAg
bGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwg
ZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAg
IGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHwgejsKK30s
IGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAg
ICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmPSB6Owor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOwor
ICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz89IHo7
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7
CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSB8fD0g
ejsKK30sIGZhbHNlKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
dHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5
ICsgejsKK30sIDMpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7
CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA9IHo7
Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAg
IGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgJiYgejsKK30s
IDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0
IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9
IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5IHx8IHo7Cit9LCAxKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgJiY9IHo7Cit9LCAyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAg
ICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz89IHo7Cit9LCAxKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBs
ZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHw9IHo7Cit9LCAxKTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsK
KyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
Z2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEo
dikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7Cisg
ICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKwor
ICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCBzZXQg
NDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAg
bGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwK
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAg
ICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSAmJj0gNDI7CisgICAg
eC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJn
ZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBb
XTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0geworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBh
OworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
c2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5h
ICYmPSA0MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAi
ICIgKyBhOworfSwgImdldCBnZXQgdW5kZWZpbmVkIik7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHgg
PSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAg
ICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAor
ICAgIH07CisKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgc2V0IDQyIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBh
ID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAg
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAg
IGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhb
ImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAi
Z2V0IGdldCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0
IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4g
YTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhb
ImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigi
ICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2Eg
JiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVy
LmEgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gdHJ1ZTsKKyAgICB4LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBz
ZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdl
dCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAg
IHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2Owor
ICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAg
ICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hICYmPSB2
OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9
IGZhbHNlOworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBs
b2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQt
Y2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAg
ICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhp
cy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVz
aCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJu
IHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSAmJj0gdjsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7
CisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2lu
KCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBn
ZXQtcGFyZW50IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1
c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0K
KyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVy
biBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gJiY9IHY7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1
ZTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4g
bG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hp
bGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVy
biB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAg
ICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0
IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICBy
ZXR1cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdICYmPSB2
OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9
IGZhbHNlOworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJl
dHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVu
dCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1
cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBs
b2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdl
dCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAg
cmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSAmJj0g
djsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2Eg
PSB1bmRlZmluZWQ7CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisg
ICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQt
cGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
eCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2Us
CisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgs
ICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwK
KyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
eCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisK
KworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJu
IHguYSAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZh
bHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmlu
ZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYm
PSA0MjsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAg
dmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1
cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJl
dHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAg
ICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0p
OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3Vs
ZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9Owor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUs
CisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYm
PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ug
c3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAi
YSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisg
ICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwK
KyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9
IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggJiY9IDQyOworICAgIH0p
KCk7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IHggJiY9IDQyOworICAgIH0pKCk7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHJldHVybiB4ICYmPSA0MjsKKyAgICB9KSgpOworfSwgdW5kZWZpbmVkKTsKKworCisKK3No
b3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0cnVlOworICAgIChmdW5jdGlv
bigpIHsKKyAgICAgICAgeCAmJj0gNDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIFR5
cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsK
KyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAg
fSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHVuZGVmaW5lZDsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCAm
Jj0gNDI7CisgICAgfSkoKTsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHRydWU7CisgICAgdHJ5
IHsKKyAgICAgICAgeCAmJj0gKytjb3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJu
IGNvdW50OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9
IDA7CisKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCAmJj0gKytjb3VudDsKKworICAgIHJl
dHVybiBjb3VudDsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291
bnQgPSAwOworCisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSArK2NvdW50Owor
CisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHRydWU7CisgICAgZnVuY3Rpb24g
Y2FwdHVyZSgpIHsgcmV0dXJuIHg7IH0KKworICAgIHRyeSB7CisgICAgICAgIHggJiY9ICsrY291
bnQ7CisgICAgfSBjYXRjaCB7IH0KKworICAgIHJldHVybiBjb3VudDsKK30sIDEpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IGZh
bHNlOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4ICYmPSAr
K2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAg
IGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4ICYmPSArK2NvdW50Owor
CisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigp
IHsKKyAgICB4ICYmPSA0MjsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHg7Cit9LCBS
ZWZlcmVuY2VFcnJvcik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICByZXR1cm4g
dW5kZWZpbmVkICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJy
b3IoYG51bGwgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYHRydWUgJiY9IDQy
YCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYGZhbHNlICYmPSA0MmApOworCitzaG91bGRU
aHJvd1N5bnRheEVycm9yKGAwICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAx
ICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAiIiAmJj0gNDJgKTsKKworc2hv
dWxkVGhyb3dTeW50YXhFcnJvcihgInRlc3QiICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRh
eEVycm9yKGB7fSAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgW10gJiY9IDQy
YCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0
b3ItbnVsbGlzaC5qcyBiL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRv
ci1udWxsaXNoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NDY1Y2M4NWRiMDFlMjIyMzYzYzJlMGEyYmI1NjI2
Y2U5ZGJjN2QKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2ln
bm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qcwpAQCAtMCwwICsxLDE2OTkgQEAKKy8vQCBydW5Mb2dp
Y2FsQXNzaWdubWVudE9wZXJhdG9yc0VuYWJsZWQKKworZnVuY3Rpb24gc2hvdWxkQmUoZnVuYywg
ZXhwZWN0ZWQpIHsKKyAgICBsZXQgYWN0dWFsID0gZnVuYygpOworICAgIGlmICh0eXBlb2YgZXhw
ZWN0ZWQgPT09ICJmdW5jdGlvbiIgPyAhKGFjdHVhbCBpbnN0YW5jZW9mIGV4cGVjdGVkKSA6IGFj
dHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtK
U09OLnN0cmluZ2lmeShleHBlY3RlZCl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShhY3R1YWwp
fWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKKyAgICBs
ZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2Yg
ZXJyb3JUeXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlw
ZS5uYW1lfSBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZFRocm93U3ludGF4RXJyb3Ioc2NyaXB0KSB7CisgICAgbGV0IGVycm9yOworICAgIHRy
eSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVy
cm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9y
KSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBTeW50YXhFcnJvciBidXQgc2F3
ICR7ZXJyb3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4OworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAg
IHJldHVybiB4ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB1bmRlZmluZWQ7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICByZXR1cm4g
eCA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
bnVsbDsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHJldHVybiB4ID8/PSA0MjsKK30s
IHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAg
eCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgeCA/Pz0g
NDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gMDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4
OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICBy
ZXR1cm4geCA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSAxOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHggPz89
IDQyOworICAgIHJldHVybiB4OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4ID8/PSA0MjsK
KyAgICByZXR1cm4geDsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge307CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1
cm4geDsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W107CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwg
QXJyYXkpOworCisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVu
ZGVmaW5lZDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRU
aHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0g
NDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gdHJ1ZTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJu
IHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZh
bHNlOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4
OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsK
KyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IDA7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDE7CisgICAgcmV0dXJuIHggPz89
IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOwor
ICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSAiIjsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAiIik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAiIjsKKyAgICB4ID8/PSA0MjsK
KyAgICByZXR1cm4geDsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ID8/
PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7fTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgT2Jq
ZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJl
dHVybiB4ID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFtdOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIEFycmF5KTsKKworCisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHguYSA/Pz0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307Cisg
ICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgPz89
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1
bmRlZmluZWR9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJu
IHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IG51bGx9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0
dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
dHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsK
KyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogMH07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9
OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsK
K30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07Cisg
ICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07
CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgPz89IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBBcnJheSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgPz89
IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4LmEgPz89
IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmlu
ZWR9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5h
ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiBudWxsfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0
dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxz
ZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHguYSA/Pz0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDApOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHguYSA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeC5hID8/PSA0MjsKKyAg
ICByZXR1cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgIiIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4LmEgPz89IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sICJ0ZXN0Iik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAg
ICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hID8/PSA0
MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YToge319OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVy
biB4LmEgPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBB
cnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHt9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZp
bmVkfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gPz89IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4
WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gPz89
IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHRydWV9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAg
cmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVy
biB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IDB9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHhbImEiXSA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHhbImEiXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gPz89IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgIiIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJd
ID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQy
OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
InRlc3QifTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVz
dCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAg
cmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgQXJyYXkpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeFsiYSJdID8/PSA0
MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsi
YSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEi
XSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVs
bH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdID8/PSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAg
eFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJh
Il0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
MH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHhbImEiXSA/Pz0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sICIiKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeFsi
YSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSA/
Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6ICJ0ZXN0In07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7
fX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICB4WyJhIl0gPz89IDQyOwor
ICAgIHJldHVybiB4WyJhIl07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIEFy
cmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07Cisg
ICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSA/
Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107
CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0g
Pz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt1
bmRlZmluZWRdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICByZXR1cm4g
eFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gW251bGxdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4g
eFswXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbdHJ1ZV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHJl
dHVybiB4WzBdID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbZmFsc2VdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOwor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAg
ICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbMF07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAw
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMV07CisgICAgcmV0dXJu
IHhbMF0gPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gWzFdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgMSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAgICByZXR1cm4geFswXSA/
Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIi
XTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRlc3QiXTsKKyAgICByZXR1cm4geFswXSA/
Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFsidGVzdCJdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgInRlc3Qi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHJldHVy
biB4WzBdID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW3t9XTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIE9i
amVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICBy
ZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gW1tdXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsK
KyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmlu
ZWRdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gPz89IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICB4WzBdID8/PSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdID8/
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBm
YWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOwor
ICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdID8/PSA0
MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOwor
ICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOwor
fSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAg
eFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4
WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsK
K30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRl
c3QiXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHJldHVybiB4
WzBdID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbe31dOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2Jq
ZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAg
cmV0dXJuIHhbMF0gPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFs
c2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAr
IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFs
c2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSA9
IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFs
c2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAm
JiB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZh
bHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkg
Pz8gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBm
YWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5
IHx8IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
ZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0g
eSAmJj0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/
PSB5ID8/PSB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHgg
Pz89IHkgfHw9IHo7Cit9LCBmYWxzZSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1
cm4geCA/Pz0geSArIHo7Cit9LCAzKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHgg
Pz89IHkgPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
bnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5
ICYmIHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxs
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz8g
ejsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7Cisg
ICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSB8fCB6Owor
fSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ICYmPSB6OworfSwg
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQg
eSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ID8/PSB6OworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9
IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5IHx8PSB6OworfSwgMSk7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQg
YSA9IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAg
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAg
IGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/
Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdl
dCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKwor
ICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAg
ICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAg
IH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAg
ICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgPz89IDQyOwor
ICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9
LCAiZ2V0IGdldCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9n
ID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1
cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1
c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAg
IHguYSA/Pz0gNDI7CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIp
ICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4
ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAg
ICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwK
KyAgICB9OworCisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAg
cmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZh
bHNlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBz
ZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0g
djsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4WyJhIl0g
Pz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBn
ZXQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOwor
CisgICAgbGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7Cisg
ICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQi
KTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0g
Pz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSAr
ICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdl
dCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAg
IHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2Owor
ICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAg
ICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hID8/PSB2
OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9
IHRydWU7CisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEgPz89IDQyOworCisgICAgcmV0dXJuIGxv
Zy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1j
aGlsZCBnZXQtcGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAg
ICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBz
dXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEgPz89IHY7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gZmFsc2U7CisgICAg
eC5hID8/PSA0MjsKKyAgICB4LmEgPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikg
KyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFy
ZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsK
KworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9n
LnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAg
ICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50
Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNs
YXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNo
aWxkIik7CisgICAgICAgICAgICBzdXBlci5hID8/PSB2OworICAgICAgICB9CisgICAgfQorCisg
ICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4LmEgPz89
IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7
CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJh
Il0gPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisK
KyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBn
ZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSA/Pz0gdjsK
KyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAg
ICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAg
ICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEi
XSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAg
IHguX2EgPSBmYWxzZTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisK
KyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7
CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJh
Il0gPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gdW5kZWZpbmVkOworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJdID8/PSA0
MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hp
bGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBn
ZXQtcGFyZW50IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5h
ID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHgu
YSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1
ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFs
c2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisg
ICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsK
K30sIGZhbHNlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3Qi
OworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgewor
ICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAg
fSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFs
c2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6
IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2UpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwg
NDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAg
IGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAg
ICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJl
dHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTog
ZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVy
biB4WyJhIl0gPz89IDQyOworfSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggPz89
IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgewor
ICAgICAgICByZXR1cm4geCA/Pz0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5j
dGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggPz89IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICAoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHggPz89IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9
LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOwor
ICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9
KSgpOworfSwgZmFsc2UpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4
ID8/PSA0MjsKKyAgICB9KSgpOworfSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICB4
ID8/PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gZmFsc2U7Cisg
ICAgeCA/Pz0gKytjb3VudDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHVuZGVm
aW5lZDsKKyAgICB0cnkgeworICAgICAgICB4ID8/PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9
CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICBmdW5jdGlv
biBjYXB0dXJlKCkgeyByZXR1cm4geDsgfQorCisgICAgeCA/Pz0gKytjb3VudDsKKworICAgIHJl
dHVybiBjb3VudDsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291
bnQgPSAwOworCisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7
IHJldHVybiB4OyB9CisKKyAgICB4ID8/PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50Owor
fSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAg
ICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4
OyB9CisKKyAgICB0cnkgeworICAgICAgICB4ID8/PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9
CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9u
KCkgeworICAgIHggPz89IDQyOworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30s
IFJlZmVyZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVy
biB1bmRlZmluZWQgPz89IDQyOworfSwgNDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBu
dWxsID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlID8/PSA0MmApOwor
CitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBmYWxzZSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dT
eW50YXhFcnJvcihgMCA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSA/Pz0g
NDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgIiIgPz89IDQyYCk7CisKK3Nob3VsZFRo
cm93U3ludGF4RXJyb3IoYCJ0ZXN0IiA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJv
cihge30gPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYFtdID8/PSA0MmApOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9y
LmpzIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFlODk0YzRmYmIxOWY5MmQwMjYyMTc2ZjdmNmFkYTJjMGQzNTlhZTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3It
b3IuanMKQEAgLTAsMCArMSwxNjg1IEBACisvL0AgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRv
cnNFbmFibGVkCisKK2Z1bmN0aW9uIHNob3VsZEJlKGZ1bmMsIGV4cGVjdGVkKSB7CisgICAgbGV0
IGFjdHVhbCA9IGZ1bmMoKTsKKyAgICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAiZnVuY3Rpb24i
ID8gIShhY3R1YWwgaW5zdGFuY2VvZiBleHBlY3RlZCkgOiBhY3R1YWwgIT09IGV4cGVjdGVkKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0
ZWQpfSBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkoYWN0dWFsKX1gKTsKK30KKworZnVuY3Rpb24g
c2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7
CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsK
KyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAg
IHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vy
cm9yICYmIGVycm9yLm5hbWV9IWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvd1N5bnRheEVy
cm9yKHNjcmlwdCkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNj
cmlwdCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisg
ICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcihgRXhwZWN0ZWQgU3ludGF4RXJyb3IgYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5h
bWV9IWApOworfQorCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICByZXR1
cm4geCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
OworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOwor
ICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgeCB8fD0gNDI7
CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIHggfHw9IDQyOworICAgIHJldHVy
biB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFs
c2U7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgcmV0dXJu
IHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IDA7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAxKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAxOworICAgIHggfHw9IDQyOwor
ICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gIiI7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICBy
ZXR1cm4geCB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sICJ0ZXN0
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJu
IHggfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHggfHw9IDQy
OworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOwor
ICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgQXJyYXkpOworCisKKworc2hvdWxkVGhy
b3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCB8
fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCB8
fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHRydWU7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxk
VGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiB4IHx8
PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSAwOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOworICAgIHJldHVybiB4IHx8PSA0MjsK
K30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICB4
IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDEpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVycm9y
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICBy
ZXR1cm4geCB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCB8
fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge307CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFy
cmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJl
dHVybiB4IHx8PSA0MjsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hIHx8PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSB8
fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHgu
YSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07Cisg
ICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFs
c2V9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9
OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7
Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07Cisg
ICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAg
IHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsK
K30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0
ZXN0In07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4
LmEgfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YToge319OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVj
dCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICBy
ZXR1cm4geC5hIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogW119OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30s
IEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsK
KyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHt9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmlu
ZWR9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeC5hIHx8PSA0MjsKKyAg
ICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHguYSB8fD0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAg
IHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBm
YWxzZX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEg
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IDB9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geC5h
IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IDF9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5h
IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiAiIn07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0
dXJuIHguYSB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiB7fX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgfHw9IDQyOworICAg
IHJldHVybiB4LmE7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIEFycmF5KTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeC5hIHx8
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0g
fHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVu
ZGVmaW5lZH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICBy
ZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0
cnVlfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gfHw9IDQyOwor
ICAgIHJldHVybiB4WyJhIl07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJd
IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAxfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAxKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAiIn07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9Owor
ICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBPYmplY3Qp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsi
YSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gfHw9
IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiBbXX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkp
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJl
dHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVm
aW5lZH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
ZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gfHw9IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeFsi
YSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQy
OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgMSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJh
Il0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsK
KyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOwor
ICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIE9i
amVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319Owor
ICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtd
OworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVk
XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W251bGxdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbbnVsbF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W3RydWVdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFswXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgeFswXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
WzFdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07Cisg
ICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFsiIl07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07Cisg
ICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBbInRlc3QiXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W3t9XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtbXV07CisgICAgeFswXSB8fD0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gW107CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgeFswXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4
WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07Cisg
ICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQy
OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1
ZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhb
MF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW2ZhbHNlXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4g
eFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSBbMF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgcmV0dXJuIHhb
MF0gfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbMV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAxKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0g
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
WyIiXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4
WzBdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSBbInRlc3QiXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
ICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOwor
ICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFtbXV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4IHx8PSB5ICsgejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4g
eCB8fD0geSA9IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHgg
fHw9IHkgJiYgejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8
fD0geSA/PyB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8
PSB5IHx8IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9
IHkgJiY9IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9
IHkgfHw9IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9
IHkgPz89IHo7Cit9LCB0cnVlKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4
IHx8PSB5ICsgejsKK30sIDMpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0g
eSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxs
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiYg
ejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7Cisg
ICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/PyB6Owor
fSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8IHo7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5
ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiY9IHo7Cit9LCAyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgfHw9IHo7Cit9LCAxKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPz89IHo7Cit9LCAxKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0g
dHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9
IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0
MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHRy
dWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAg
bGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwK
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAg
ICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAg
eC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJn
ZXQgc2V0IGdldCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0
IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4g
YTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHgu
YSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsg
IiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0g
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAg
ICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAg
ICB9OworCisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0
dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNl
OworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsK
KyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQg
Z2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKwor
ICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAg
ICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7
CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAi
ICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAg
ICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSB8fD0gdjsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB0
cnVlOworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cu
am9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hp
bGQgZ2V0LXBhcmVudCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBs
b2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9h
OworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJz
ZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAg
fQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3Vw
ZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVz
aCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9Cisg
ICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHgu
YSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsg
IiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVu
dCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2
OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAg
ICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hIHx8
PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5f
YSA9IHVuZGVmaW5lZDsKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0
MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisg
ICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVz
aCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0K
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsK
KyAgICAgICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3Mg
Q2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAg
ICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hp
bGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHhbImEiXSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQg
dHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAg
ICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQor
ICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOwor
ICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBD
aGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9n
LnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAg
ICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGls
ZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHhbImEiXSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQg
c2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBn
ZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsK
KyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAg
ICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAg
ICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEi
XSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAg
IHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQy
OworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGls
ZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTog
dHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEg
fHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTog
ZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5h
IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1
bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4g
eC5hIHx8PSA0MjsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1
c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4
LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwK
KyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRUaHJv
dyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAg
ICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOwor
fSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJp
Y3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwg
eworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisg
ICAgfSk7CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJv
cGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTog
ZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFi
bGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwg
NDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAg
IGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAg
ICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJl
dHVybiB4WyJhIl0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJs
ZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBUeXBlRXJy
b3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAg
ICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKKworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAg
ICB4IHx8PSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlv
bigpIHsKKyAgICAgICAgcmV0dXJuIHggfHw9IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAo
ZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgNDIp
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAg
KGZ1bmN0aW9uKCkgeworICAgICAgICB4IHx8PSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4
OworfSwgdHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBm
YWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7
CisgICAgfSkoKTsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAg
ICAgcmV0dXJuIHggfHw9IDQyOworICAgIH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSB0
cnVlOworICAgIHggfHw9ICsrY291bnQ7CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHgg
PSBmYWxzZTsKKyAgICB0cnkgeworICAgICAgICB4IHx8PSArK2NvdW50OworICAgIH0gY2F0Y2gg
eyB9CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgdHJ5
IHsKKyAgICAgICAgeCB8fD0gKytjb3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJu
IGNvdW50OworfSwgMSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291
bnQgPSAwOworCisgICAgY29uc3QgeCA9IHRydWU7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsg
cmV0dXJuIHg7IH0KKworICAgIHggfHw9ICsrY291bnQ7CisKKyAgICByZXR1cm4gY291bnQ7Cit9
LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAg
IGNvbnN0IHggPSBmYWxzZTsKKyAgICBmdW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4geDsgfQor
CisgICAgdHJ5IHsKKyAgICAgICAgeCB8fD0gKytjb3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisg
ICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9uIGNh
cHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB0cnkgeworICAgICAgICB4IHx8PSArK2NvdW50
OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKworCisKK3No
b3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIHggfHw9IDQyOworICAgIGxldCB4ID0gdHJ1ZTsK
KyAgICByZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIHJldHVybiB1bmRlZmluZWQgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRU
aHJvd1N5bnRheEVycm9yKGBudWxsIHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9y
KGB0cnVlIHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBmYWxzZSB8fD0gNDJg
KTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMCB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dT
eW50YXhFcnJvcihgMSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgIiIgfHw9
IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCJ0ZXN0IiB8fD0gNDJgKTsKKworc2hv
dWxkVGhyb3dTeW50YXhFcnJvcihge30gfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJy
b3IoYFtdIHx8PSA0MmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1s
IGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4IDBiNmI1NmU4YzFkMmNlMTBhNmU2
M2NiNDcwMmY4MDk0MGM3ZTBhNTguLjBjNjdhNGRlNjMzZTJkNTVkOWM5MzU0N2Q2OGMwNGQ2NGIx
YzAzZjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAorKysgYi9KU1Rl
c3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTQsNiArNCw3IEBAIGZsYWdzOgogICBCaWdJbnQ6
IHVzZUJpZ0ludAogICBXZWFrUmVmOiB1c2VXZWFrUmVmcwogICBjbGFzcy1maWVsZHMtcHVibGlj
OiB1c2VQdWJsaWNDbGFzc0ZpZWxkcworICBsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzOiB1
c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycwogc2tpcDoKICAgZmVhdHVyZXM6CiAgICAgLSBT
aGFyZWRBcnJheUJ1ZmZlcgpAQCAtMjAsOCArMjEsNiBAQCBza2lwOgogICAgICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQ3NQogICAgIC0gcmVnZXhwLW1hdGNo
LWluZGljZXMKICAgICAtIHRvcC1sZXZlbC1hd2FpdAotICAgICMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcxNgotICAgIC0gbG9naWNhbC1hc3NpZ25tZW50LW9w
ZXJhdG9ycwogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MjU2NgogICAgIC0gUHJvbWlzZS5hbnkKICAgICAtIEFnZ3JlZ2F0ZUVycm9yCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwKaW5kZXggNGFlMmE3NzAyZDdlMTA1NWFiOTVmZmYwMGU0YmY3ZTY5YmEw
MDMxNS4uNjMwZmFjOWViMGYxZmQxZjk5NTdkN2U3OTZkOTA3MDFiNjI0YjVhZCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMjcxOCw2ICsyNzE4LDEyIEBAIHRlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvaW1wb3J0Lm1ldGEvc3ludGF4L2ludmFsaWQtYXNzaWdubWVudC10YXJnZXQt
Zm9yLW9mLWxvCiB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2luc3RhbmNlb2YvcHJvdG90eXBl
LWdldHRlci13aXRoLXByaW1pdGl2ZS5qczoKICAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogZ2V0
dGVyIGZvciAncHJvdG90eXBlJyBjYWxsZWQiCiAgIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVycm9y
OiBnZXR0ZXIgZm9yICdwcm90b3R5cGUnIGNhbGxlZCIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNp
bXBsZS1saHMuanM6CisgIGRlZmF1bHQ6ICJUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQg
bm90IGJlIGV2YWx1YXRlZC4iCit0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNz
aWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxocy5q
czoKKyAgZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZh
bHVhdGVkLiIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xn
Y2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDog
IlRlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKIHRlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbmV3L2N0b3JFeHByLWZuLXJlZi1iZWZvcmUtYXJncy1ldmFs
LWZuLXdyYXB1cC5qczoKICAgZGVmYXVsdDogIlR5cGVFcnJvcjogMSBpcyBub3QgYSBjb25zdHJ1
Y3RvciAoZXZhbHVhdGluZyAnbmV3IHgoeCA9IDEpJykiCiAgIHN0cmljdCBtb2RlOiAiVHlwZUVy
cm9yOiAxIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgeCh4ID0gMSknKSIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396486</attachid>
            <date>2020-04-14 18:06:43 -0700</date>
            <delta_ts>2020-04-14 20:20:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>210462.diff</filename>
            <type>text/plain</type>
            <size>116337</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDM5OGU5MzJhNzZlLi5mMThmZGU4YjEzYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMjAtMDQtMTQgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtFU05leHRdIEltcGxlbWVu
dCBsb2dpY2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGxvZ2ljYWwgYXNzaWdubWVudCBv
cGVyYXRvcnMgcHJvcG9zYWwsIHdoaWNoIGlzIG5vdyBTdGFnZSAzLiBJdCBpbnRyb2R1Y2VzCisg
ICAgICAgIHRocmVlIG5ldyBhc3NpZ25tZW50IG9wZXJhdG9ycyB3aGljaCB3aWxsIG9ubHkgc3Rv
cmUgdGhlIHJlc3VsdCBvZiB0aGUgcmhzIGluIHRoZSBsaHMgaWYgdGhlCisgICAgICAgIGxocyBt
ZWV0cyB0aGUgZ2l2ZW4gY29uZGl0aW9uOgorICAgICAgICAgLSBgPz89YCwgZm9yIGlmIHRoZSBs
aHMgaXMgbnVsbGlzaCAoYG51bGxgIG9yIGB1bmRlZmluZWRgKQorICAgICAgICAgLSBgfHw9YCwg
Zm9yIGlmIHRoZSBsaHMgaXMgZmFsc3kKKyAgICAgICAgIC0gYCYmPWAsIGZvciBpZiB0aGUgbGhz
IGlzIHRydXRoeQorCisgICAgICAgIFRoaXMgc2hvcnQgY2lyY3VpdGluZyBjYW4gYmUgYmVuZWZp
Y2lhbCBhcyBpdCBjYW4gYXZvaWQgYSByZWR1bmRhbnQgc3RvcmUgd2hlbiB1c2VkIGluIHRoZQor
ICAgICAgICBjb21tb24gSmF2YVNjcmlwdCBwcm9ncmFtbWluZyBwYXR0ZXJuIG9mICJkZWZhdWx0
aW5nIiBhIHBhcmFtZXRlci4KKworICAgICAgICBgYGBqcworICAgICAgICAgICAgZnVuY3Rpb24g
Zm9vKHgpIHsKKyAgICAgICAgICAgICAgICB4ID0geCB8fCA0MjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgYGBgCisKKyAgICAgICAgSWYgYHhgIGlzIGEgdHJ1dGh5IHZhbHVlLCBpdCB3b3VsZCBy
ZXN1bHQgaW4gdGhlIHJocyBgeGAgYmVpbmcgc3RvcmVkIGJhY2sgaW50byB0aGUgbGhzIGB4YC4K
KyAgICAgICAgSW4gc29tZSBzaXR1YXRpb25zLCB0aGlzIGNhbiBoYXZlIG5lZ2F0aXZlIHVuaW50
ZW5kZWQgc2lkZS1lZmZlY3RzLCBzdWNoIGFzIGZvciBgaW5uZXJIVE1MYC4KKworICAgICAgICBM
b2dpY2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzLCBob3dldmVyLCBhcmUgZGVmaW5lZCBzdWNoIHRo
YXQgdGhleSBvbmx5IHN0b3JlIGlmIHRoZSByaHMgaXMKKyAgICAgICAgdG8gYWN0dWFsbHkgYmUg
bmVlZGVkL3VzZWQsIHNraXBwaW5nIHRoZSByZWR1bmRhbnQgc3RvcmUgYW5kIHNpbXBseSByZXR1
cm5pbmcgbGhzIG90aGVyd2lzZS4KKworICAgICAgICBJbiB0aGUgY2FzZSBvZiByZWFkb25seSBy
ZWZlcmVuY2VzLCB0aGlzIG1lYW5zIHRoYXQgYW4gZXJyb3IgaXMgb25seSB0aHJvd24gd2hlbiB0
aGUKKyAgICAgICAgYXNzaWdubWVudCBvY2N1cnMsIG1lYW5pbmcgdGhhdCBpZiB0aGUgbGhzIGFs
cmVhZHkgc2F0aXNmaWVzIHRoZSBjb25kaXRpb24gaXQgd2lsbCBiZSB1c2VkCisgICAgICAgIGFu
ZCByZXR1cm5lZCB3aXRoIG5vIGVycm9yLgorCisgICAgICAgICogcGFyc2VyL1BhcnNlclRva2Vu
cy5oOgorICAgICAgICAqIHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6OkxleGVyPFQ+
OjpsZXhXaXRob3V0Q2xlYXJpbmdMaW5lVGVybWluYXRvcik6CisgICAgICAgICogcGFyc2VyL1Bh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1l
bnRFeHByZXNzaW9uKToKKworICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAg
IChKU0M6OkFTVEJ1aWxkZXI6Om1ha2VBc3NpZ25Ob2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9k
ZXMuaDoKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlND
OjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2Rp
ZnlSZXNvbHZlTm9kZSk6IEFkZGVkLgorICAgICAgICAoSlNDOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5QnJhY2tldE5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZSk6IEFkZGVk
LgorICAgICAgICAoSlNDOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6U2hvcnRDaXJj
dWl0UmVhZE1vZGlmeURvdE5vZGUpOiBBZGRlZC4KKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6ZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQp
OiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2Rl
OjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeURvdE5vZGU6OmVtaXRCeXRlY29kZSk6IEFkZGVkLgorICAgICAgICAoSlNDOjpTaG9ydENp
cmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZSk6IEFkZGVkLgorCisgICAg
ICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorICAgICAgICBBZGQgYSBgdXNlTG9naWNhbEFz
c2lnbm1lbnRPcGVyYXRvcnNgIHNldHRpbmcgZm9yIGNvbnRyb2xsaW5nIHRoaXMgZmVhdHVyZS4K
KwogMjAyMC0wNC0xMyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAocjI1OTU4Nyk6IGJ0ZXJsc29uL2VzaG9zdCB0aHJvd3MgZHVy
aW5nIGluaXQgaW4gc3RyaWN0IG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCBkNGZkYjRkZDU0ZC4uYTg5NWVhNDU4
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKQEAgLTI4NjIsNiArMjg2MiwxMDcgQEAgUmVnaXN0ZXJJRCogUmVhZE1vZGlm
eVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmUKICAgICByZXR1cm4gcmV0dXJuUmVzdWx0OwogfQogCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3N0YXRpYyBBTFdBWVNfSU5MSU5FIHZvaWQgZW1p
dFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJRCogdmFsdWUsIE9wZXJhdG9yIG9wZXIsIExhYmVsJiBhZnRlckFzc2lnbm1lbnQpCit7
CisgICAgc3dpdGNoIChvcGVyKSB7CisgICAgY2FzZSBPcGVyYXRvcjo6TnVsbGlzaEVxOgorICAg
ICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZkZhbHNlKGdlbmVyYXRvci5lbWl0SXNVbmRlZmluZWRP
ck51bGwoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCB2YWx1ZSksIGFmdGVyQXNzaWdubWVudCk7
CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBPcGVyYXRvcjo6T3JFcToKKyAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXRKdW1wSWZUcnVlKHZhbHVlLCBhZnRlckFzc2lnbm1lbnQpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgT3BlcmF0b3I6OkFuZEVxOgorICAgICAgICBnZW5lcmF0b3IuZW1p
dEp1bXBJZkZhbHNlKHZhbHVlLCBhZnRlckFzc2lnbm1lbnQpOworICAgICAgICBicmVhazsKKwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KK30KKworUmVnaXN0ZXJJRCogU2hvcnRDaXJjdWl0UmVhZE1vZGlm
eVJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwg
UmVnaXN0ZXJJRCogZHN0KQoreworICAgIEpTVGV4dFBvc2l0aW9uIG5ld0Rpdm90ID0gZGl2b3RT
dGFydCgpICsgbV9pZGVudC5sZW5ndGgoKTsKKworICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRv
ci52YXJpYWJsZShtX2lkZW50KTsKKyAgICBib29sIGlzUmVhZE9ubHkgPSB2YXIuaXNSZWFkT25s
eSgpOworCisgICAgaWYgKFJlZlB0cjxSZWdpc3RlcklEPiBsb2NhbCA9IHZhci5sb2NhbCgpKSB7
CisgICAgICAgIGdlbmVyYXRvci5lbWl0VERaQ2hlY2tJZk5lY2Vzc2FyeSh2YXIsIGxvY2FsLmdl
dCgpLCBudWxscHRyKTsKKworICAgICAgICBpZiAoaXNSZWFkT25seSkgeworICAgICAgICAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGxvY2FsOworCisgICAgICAgICAgICBSZWY8TGFi
ZWw+IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgICAgICAgICAg
ZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1fb3Bl
cmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGdl
bmVyYXRvci5lbWl0Tm9kZShyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOyAvLyBFeGVjdXRlIHNpZGUg
ZWZmZWN0cyBmaXJzdC4KKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UmVhZE9ubHlFeGNlcHRp
b25JZk5lZWRlZCh2YXIpOworCisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVy
QXNzaWdubWVudC5nZXQoKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBl
KHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgICAgIHJl
dHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoZ2VuZXJhdG9yLmxlZnRIYW5kU2lkZU5lZWRzQ29weShtX3JpZ2h0SGFzQXNzaWdu
bWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKSkgeworICAgICAgICAgICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KTsKKyAg
ICAgICAgICAgIGdlbmVyYXRvci5tb3ZlKHJlc3VsdC5nZXQoKSwgbG9jYWwuZ2V0KCkpOworCisg
ICAgICAgICAgICBSZWY8TGFiZWw+IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJl
bCgpOworICAgICAgICAgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCBy
ZXN1bHQuZ2V0KCksIG1fb3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICAg
ICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZShyZXN1bHQuZ2V0KCksIG1fcmlnaHQp
OworICAgICAgICAgICAgZ2VuZXJhdG9yLm1vdmUobG9jYWwuZ2V0KCksIHJlc3VsdC5nZXQoKSk7
CisKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoYWZ0ZXJBc3NpZ25tZW50LmdldCgp
KTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0LmdldCgpLCBk
aXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5t
b3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIFJlZlB0cjxSZWdp
c3RlcklEPiByZXN1bHQgPSBsb2NhbDsKKworICAgICAgICBSZWY8TGFiZWw+IGFmdGVyQXNzaWdu
bWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgICAgICBlbWl0U2hvcnRDaXJjdWl0QXNz
aWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgYWZ0ZXJBc3NpZ25t
ZW50LmdldCgpKTsKKworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGUocmVzdWx0
LmdldCgpLCBtX3JpZ2h0KTsKKworICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyQXNz
aWdubWVudC5nZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0
LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAgICByZXR1cm4gZ2VuZXJh
dG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgIH0KKworICAgIGdlbmVyYXRvci5lbWl0
RXhwcmVzc2lvbkluZm8obmV3RGl2b3QsIGRpdm90U3RhcnQoKSwgbmV3RGl2b3QpOworICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2ZVNjb3BlKG51bGxw
dHIsIHZhcik7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0ID0gZ2VuZXJhdG9yLmVt
aXRHZXRGcm9tU2NvcGUoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBzY29wZS5nZXQo
KSwgdmFyLCBUaHJvd0lmTm90Rm91bmQpOworICAgIGdlbmVyYXRvci5lbWl0VERaQ2hlY2tJZk5l
Y2Vzc2FyeSh2YXIsIHJlc3VsdC5nZXQoKSwgbnVsbHB0cik7CisKKyAgICBSZWY8TGFiZWw+IGFm
dGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgIGVtaXRTaG9ydENpcmN1
aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBhZnRlckFz
c2lnbm1lbnQuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlKHJlc3Vs
dC5nZXQoKSwgbV9yaWdodCk7IC8vIEV4ZWN1dGUgc2lkZSBlZmZlY3RzIGZpcnN0LgorCisgICAg
Ym9vbCB0aHJld0V4Y2VwdGlvbiA9IGlzUmVhZE9ubHkgPyBnZW5lcmF0b3IuZW1pdFJlYWRPbmx5
RXhjZXB0aW9uSWZOZWVkZWQodmFyKSA6IGZhbHNlOworCisgICAgaWYgKCF0aHJld0V4Y2VwdGlv
bikKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0
YXJ0KCksIGRpdm90RW5kKCkpOworCisgICAgaWYgKCFpc1JlYWRPbmx5KSB7CisgICAgICAgIHJl
c3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0VG9TY29wZShzY29wZS5nZXQoKSwgdmFyLCByZXN1bHQu
Z2V0KCksIFRocm93SWZOb3RGb3VuZCwgSW5pdGlhbGl6YXRpb25Nb2RlOjpOb3RJbml0aWFsaXph
dGlvbik7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0LmdldCgpLCB2
YXIsIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgfQorCisgICAgZ2VuZXJhdG9yLmVt
aXRMYWJlbChhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworICAgIHJldHVybiBnZW5lcmF0b3IubW92
ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cit9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBBc3NpZ25SZXNvbHZlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCiBzdGF0aWMgSW5pdGlhbGl6YXRpb25Nb2RlIGluaXRpYWxpemF0aW9uTW9kZUZvckFzc2ln
bm1lbnRDb250ZXh0KEFzc2lnbm1lbnRDb250ZXh0IGFzc2lnbm1lbnRDb250ZXh0KQogewogICAg
IHN3aXRjaCAoYXNzaWdubWVudENvbnRleHQpIHsKQEAgLTI4NzcsOCArMjk3OCw2IEBAIHN0YXRp
YyBJbml0aWFsaXphdGlvbk1vZGUgaW5pdGlhbGl6YXRpb25Nb2RlRm9yQXNzaWdubWVudENvbnRl
eHQoQXNzaWdubWVudENvbnRlCiAgICAgcmV0dXJuIEluaXRpYWxpemF0aW9uTW9kZTo6Tm90SW5p
dGlhbGl6YXRpb247CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBc3Np
Z25SZXNvbHZlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBSZWdp
c3RlcklEKiBBc3NpZ25SZXNvbHZlTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKICAgICBWYXJpYWJsZSB2YXIgPSBnZW5l
cmF0b3IudmFyaWFibGUobV9pZGVudCk7CkBAIC0yOTc4LDYgKzMwNzcsMzcgQEAgUmVnaXN0ZXJJ
RCogUmVhZE1vZGlmeURvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2Vu
ZXJhdG9yLCBSZWdpc3QKICAgICByZXR1cm4gcmV0OwogfQogCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCogU2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeURvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBS
ZWdpc3RlcklEKiBkc3QpCit7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0
b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9iYXNlLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMs
IG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGhp
c1ZhbHVlOworCisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdDsKKworICAgIGdlbmVyYXRv
ci5lbWl0RXhwcmVzc2lvbkluZm8oc3ViZXhwcmVzc2lvbkRpdm90KCksIHN1YmV4cHJlc3Npb25T
dGFydCgpLCBzdWJleHByZXNzaW9uRW5kKCkpOworICAgIGlmIChtX2Jhc2UtPmlzU3VwZXJOb2Rl
KCkpIHsKKyAgICAgICAgdGhpc1ZhbHVlID0gZ2VuZXJhdG9yLmVuc3VyZVRoaXMoKTsKKyAgICAg
ICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci50ZW1wRGVzdGluYXRp
b24oZHN0KSwgYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBtX2lkZW50KTsKKyAgICB9IGVs
c2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci50ZW1w
RGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgbV9pZGVudCk7CisKKyAgICBSZWY8TGFiZWw+
IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgIGVtaXRTaG9ydENp
cmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBhZnRl
ckFzc2lnbm1lbnQuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXROb2RlKHJl
c3VsdC5nZXQoKSwgbV9yaWdodCk7CisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhk
aXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIGlmIChtX2Jhc2UtPmlzU3Vw
ZXJOb2RlKCkpCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdl
dCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1faWRlbnQsIHJlc3VsdC5nZXQoKSk7CisgICAgZWxzZQor
ICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwgbV9pZGVu
dCwgcmVzdWx0LmdldCgpKTsKKworICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoYWZ0ZXJBc3NpZ25t
ZW50LmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwg
ZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0
LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
QXNzaWduRXJyb3JOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJl
Z2lzdGVySUQqIEFzc2lnbkVycm9yTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqKQpAQCAtMzA0Miw2ICszMTcyLDM4IEBAIFJlZ2lzdGVy
SUQqIFJlYWRNb2RpZnlCcmFja2V0Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsIFJlCiAgICAgcmV0dXJuIHVwZGF0ZWRWYWx1ZTsKIH0KIAorLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9k
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBTaG9y
dENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobV9iYXNlLCBtX3N1
YnNjcmlwdEhhc0Fzc2lnbm1lbnRzIHx8IG1fcmlnaHRIYXNBc3NpZ25tZW50cywgbV9zdWJzY3Jp
cHQtPmlzUHVyZShnZW5lcmF0b3IpICYmIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvcGVydHkgPSBnZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0
SGFuZFNpZGVGb3JQcm9wZXJ0eShtX3N1YnNjcmlwdCwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzLCBt
X3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNW
YWx1ZTsKKworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQ7CisKKyAgICBnZW5lcmF0b3Iu
ZW1pdEV4cHJlc3Npb25JbmZvKHN1YmV4cHJlc3Npb25EaXZvdCgpLCBzdWJleHByZXNzaW9uU3Rh
cnQoKSwgc3ViZXhwcmVzc2lvbkVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgp
KSB7CisgICAgICAgIHRoaXNWYWx1ZSA9IGdlbmVyYXRvci5lbnN1cmVUaGlzKCk7CisgICAgICAg
IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlWYWwoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlv
bihkc3QpLCBiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIHByb3BlcnR5LmdldCgpKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0
b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIHByb3BlcnR5LmdldCgpKTsKKwor
ICAgIFJlZjxMYWJlbD4gYWZ0ZXJBc3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7Cisg
ICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1f
b3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBnZW5lcmF0
b3IuZW1pdE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBnZW5lcmF0b3IuZW1pdEV4
cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgaWYg
KG1fYmFzZS0+aXNTdXBlck5vZGUoKSkKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQ
dXRCeVZhbChiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIHByb3BlcnR5LmdldCgpLCByZXN1
bHQuZ2V0KCkpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRC
eVZhbChiYXNlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSwgcmVzdWx0LmdldCgpKTsKKworICAgIGdl
bmVyYXRvci5lbWl0TGFiZWwoYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKyAgICBnZW5lcmF0b3Iu
ZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsK
KyAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29tbWFOb2RlIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCiBSZWdpc3RlcklEKiBDb21tYU5vZGU6OmVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDQzYjE3MWZiYzRlLi41ZTM1
M2JkMTc2MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWls
ZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAg
LTE1NDgsNiArMTU0OCw3IEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQXNzaWdu
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByCiAKICAgICBpZiAobG9j
LT5pc1Jlc29sdmVOb2RlKCkpIHsKICAgICAgICAgUmVzb2x2ZU5vZGUqIHJlc29sdmUgPSBzdGF0
aWNfY2FzdDxSZXNvbHZlTm9kZSo+KGxvYyk7CisKICAgICAgICAgaWYgKG9wID09IE9wZXJhdG9y
OjpFcXVhbCkgewogICAgICAgICAgICAgaWYgKGV4cHItPmlzQmFzZUZ1bmNFeHByTm9kZSgpKSB7
CiAgICAgICAgICAgICAgICAgYXV0byBtZXRhZGF0YSA9IHN0YXRpY19jYXN0PEJhc2VGdW5jRXhw
ck5vZGUqPihleHByKS0+bWV0YWRhdGEoKTsKQEAgLTE1NTgsMjEgKzE1NTksNDIgQEAgRXhwcmVz
c2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VBc3NpZ25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIEV4cHIKICAgICAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKG5vZGUs
IHN0YXJ0LCBkaXZvdCwgZW5kKTsKICAgICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgICB9
CisKKyAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpOdWxsaXNoRXEgfHwgb3AgPT0gT3BlcmF0
b3I6Ok9yRXEgfHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVxKQorICAgICAgICAgICAgcmV0dXJuIG5l
dyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlKGxvY2F0
aW9uLCByZXNvbHZlLT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMs
IGRpdm90LCBzdGFydCwgZW5kKTsKKwogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5h
KSBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUobG9jYXRpb24sIHJlc29sdmUtPmlkZW50aWZpZXIoKSwg
b3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwogICAgIH0K
KwogICAgIGlmIChsb2MtPmlzQnJhY2tldEFjY2Vzc29yTm9kZSgpKSB7CiAgICAgICAgIEJyYWNr
ZXRBY2Nlc3Nvck5vZGUqIGJyYWNrZXQgPSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2Rl
Kj4obG9jKTsKKwogICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkVxdWFsKQogICAgICAgICAg
ICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXNzaWduQnJhY2tldE5vZGUobG9jYXRpb24s
IGJyYWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIGV4cHIsIGxvY0hhc0Fzc2ln
bm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGJyYWNrZXQtPmRpdm90KCksIHN0YXJ0LCBlbmQp
OworCisgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJh
dG9yOjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkgeworICAgICAgICAgICAgYXV0byog
bm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXRO
b2RlKGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBvcCwg
ZXhwciwgbG9jSGFzQXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0
LCBlbmQpOworICAgICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+
ZGl2b3QoKSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOworICAgICAgICAgICAgcmV0dXJu
IG5vZGU7CisgICAgICAgIH0KKwogICAgICAgICBSZWFkTW9kaWZ5QnJhY2tldE5vZGUqIG5vZGUg
PSBuZXcgKG1fcGFyc2VyQXJlbmEpIFJlYWRNb2RpZnlCcmFja2V0Tm9kZShsb2NhdGlvbiwgYnJh
Y2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3AsIGV4cHIsIGxvY0hhc0Fzc2ln
bm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKICAgICAgICAg
bm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2b3QoKSwgYnJhY2tldC0+ZGl2
b3RFbmQoKS5vZmZzZXQpOwogICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9CisKICAgICBBU1NF
UlQobG9jLT5pc0RvdEFjY2Vzc29yTm9kZSgpKTsKICAgICBEb3RBY2Nlc3Nvck5vZGUqIGRvdCA9
IHN0YXRpY19jYXN0PERvdEFjY2Vzc29yTm9kZSo+KGxvYyk7CisKICAgICBpZiAob3AgPT0gT3Bl
cmF0b3I6OkVxdWFsKQogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBc3NpZ25E
b3ROb2RlKGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90LT5pZGVudGlmaWVyKCksIGV4cHIsIGV4
cHJIYXNBc3NpZ25tZW50cywgZG90LT5kaXZvdCgpLCBzdGFydCwgZW5kKTsKIAorICAgIGlmIChv
cCA9PSBPcGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJhdG9yOjpPckVxIHx8IG9wID09
IE9wZXJhdG9yOjpBbmRFcSkgeworICAgICAgICBhdXRvKiBub2RlID0gbmV3IChtX3BhcnNlckFy
ZW5hKSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCks
IGRvdC0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwg
c3RhcnQsIGVuZCk7CisgICAgICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2
b3QoKSwgZG90LT5kaXZvdEVuZCgpLm9mZnNldCk7CisgICAgICAgIHJldHVybiBub2RlOworICAg
IH0KKwogICAgIFJlYWRNb2RpZnlEb3ROb2RlKiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBS
ZWFkTW9kaWZ5RG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigp
LCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAgICAg
bm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oZG90LT5kaXZvdCgpLCBkb3QtPmRpdm90RW5kKCku
b2Zmc2V0KTsKICAgICByZXR1cm4gbm9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhl
ci5jcHAKaW5kZXggNGZiODNjYTNhMGEuLmJhZTVmNmY4MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL0xleGVyLmNwcApAQCAtMjA4Niw2ICsyMDg2LDExIEBAIHN0YXJ0OgogICAgICAg
ICBzaGlmdCgpOwogICAgICAgICBpZiAobV9jdXJyZW50ID09ICcmJykgewogICAgICAgICAgICAg
c2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VMb2dpY2FsQXNz
aWdubWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9PSAnPScpKSB7CisgICAgICAgICAgICAg
ICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9IEFOREVRVUFMOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBBTkQ7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjEyMyw2ICsyMTI4LDExIEBAIHN0YXJ0
OgogICAgICAgICB9CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJ3wnKSB7CiAgICAgICAgICAg
ICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAgICAgICAg
ICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gT1JFUVVBTDsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRva2VuID0gT1I7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjE1OSw2ICsyMTY5LDExIEBAIHN0YXJ0
OgogICAgICAgICBzaGlmdCgpOwogICAgICAgICBpZiAobV9jdXJyZW50ID09ICc/JykgewogICAg
ICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VM
b2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9PSAnPScpKSB7CisgICAg
ICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9IE5VTExJU0hFUVVB
TDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRv
a2VuID0gQ09BTEVTQ0U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCBmZDk3YTBj
YTkzNS4uOWQ1ZjkzMWU3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZUNvbnN0cnVjdG9ycy5oCkBAIC03MTgsNiArNzE4LDE2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVO
b2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9wZXJhdG9yIG9wZXIsIEV4
cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9j
YXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3Rh
cnQsIGRpdm90RW5kKQorICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdo
dChyaWdodCkKKyAgICAgICAgLCBtX29wZXJhdG9yKG9wZXIpCisgICAgICAgICwgbV9yaWdodEhh
c0Fzc2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdubWVudHMpCisgICAgeworICAgIH0KKwogICAgIGlu
bGluZSBBc3NpZ25SZXNvbHZlTm9kZTo6QXNzaWduUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEV4cHJlc3Npb25Ob2Rl
KiByaWdodCwgQXNzaWdubWVudENvbnRleHQgYXNzaWdubWVudENvbnRleHQpCiAgICAgICAgIDog
RXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCiAgICAgICAgICwgbV9pZGVudChpZGVudCkKQEAgLTcz
OSw2ICs3NDksMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGlu
ZSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2Rp
ZnlCcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9u
Tm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgT3BlcmF0b3Igb3BlciwgRXhw
cmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJp
Z2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkK
KyAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2FibGVT
dWJFeHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisgICAgICAgICwg
bV9iYXNlKGJhc2UpCisgICAgICAgICwgbV9zdWJzY3JpcHQoc3Vic2NyaXB0KQorICAgICAgICAs
IG1fcmlnaHQocmlnaHQpCisgICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAsIG1f
c3Vic2NyaXB0SGFzQXNzaWdubWVudHMoc3Vic2NyaXB0SGFzQXNzaWdubWVudHMpCisgICAgICAg
ICwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzKHJpZ2h0SGFzQXNzaWdubWVudHMpCisgICAgeworICAg
IH0KKwogICAgIGlubGluZSBBc3NpZ25CcmFja2V0Tm9kZTo6QXNzaWduQnJhY2tldE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJl
c3Npb25Ob2RlKiBzdWJzY3JpcHQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3Jp
cHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRp
b24pCiAgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQs
IGRpdm90RW5kKQpAQCAtNzcxLDYgKzc5MywxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAg
ICAgfQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlOjpTaG9ydENp
cmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBF
eHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE9wZXJhdG9yIG9w
ZXIsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5v
ZGUobG9jYXRpb24pCisgICAgICAgICwgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEoZGl2b3Qs
IGRpdm90U3RhcnQsIGRpdm90RW5kKQorICAgICAgICAsIG1fYmFzZShiYXNlKQorICAgICAgICAs
IG1faWRlbnQoaWRlbnQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICAgICAgLCBtX29w
ZXJhdG9yKG9wZXIpCisgICAgICAgICwgbV9yaWdodEhhc0Fzc2lnbm1lbnRzKHJpZ2h0SGFzQXNz
aWdubWVudHMpCisgICAgeworICAgIH0KKwogICAgIGlubGluZSBBc3NpZ25FcnJvck5vZGU6OkFz
c2lnbkVycm9yTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCiAgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9j
YXRpb24pCiAgICAgICAgICwgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3Rh
cnQsIGRpdm90RW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDIyZGY1
YWU0ZDA4Li5iNTE1NjA0YTY4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApA
QCAtNjgsNiArNjgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQml0T3JFcSwKICAgICAg
ICAgTW9kRXEsCiAgICAgICAgIFBvd0VxLAorICAgICAgICBOdWxsaXNoRXEsCisgICAgICAgIE9y
RXEsCisgICAgICAgIEFuZEVxLAogICAgICAgICBMU2hpZnQsCiAgICAgICAgIFJTaGlmdCwKICAg
ICAgICAgVVJTaGlmdApAQCAtMTM4OSw2ICsxMzkyLDE5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50czsKICAgICB9OwogCisgICAgY2xhc3MgU2hv
cnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25O
b2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqICByaWdodCwg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAg
ICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9y
aWdodDsKKyAgICAgICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsKKyAgICAgICAgYm9vbCBtX3JpZ2h0
SGFzQXNzaWdubWVudHM7CisgICAgfTsKKwogICAgIGNsYXNzIEFzc2lnblJlc29sdmVOb2RlIGZp
bmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRh
dGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgQXNz
aWdubWVudENvbnRleHQpOwpAQCAtMTQxOCw2ICsxNDM0LDIxIEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50cyA6IDE7CiAgICAgfTsKIAorICAgIGNs
YXNzIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZSBmaW5hbCA6IHB1YmxpYyBFeHBy
ZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZVN1YkV4cHJlc3Npb25EYXRhIHsKKyAgICBwdWJs
aWM6CisgICAgICAgIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZShjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNj
cmlwdCwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNB
c3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3RFbmQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlk
ZTsKKworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOworICAgICAgICBFeHByZXNzaW9u
Tm9kZSogbV9zdWJzY3JpcHQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OworICAg
ICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBib29sIG1fc3Vic2NyaXB0SGFzQXNz
aWdubWVudHMgOiAxOworICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50cyA6IDE7Cisg
ICAgfTsKKwogICAgIGNsYXNzIEFzc2lnbkJyYWNrZXROb2RlIGZpbmFsIDogcHVibGljIEV4cHJl
c3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoK
ICAgICAgICAgQXNzaWduQnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVz
c2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIEV4cHJlc3Npb25Ob2Rl
KiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2ln
bm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwpAQCAtMTQ1OSw2
ICsxNDkwLDIwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIG1fcmlnaHRIYXNBc3Np
Z25tZW50cyA6IDE7CiAgICAgfTsKIAorICAgIGNsYXNzIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlE
b3ROb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlU3Vi
RXhwcmVzc2lvbkRhdGEgeworICAgIHB1YmxpYzoKKyAgICAgICAgU2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeURvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2Us
IGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29s
IHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworCisgICAgICAgIEV4
cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7
CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0OworICAgICAgICBPcGVyYXRvciBtX29w
ZXJhdG9yOworICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50cyA6IDE7CisgICAgfTsK
KwogICAgIGNsYXNzIEFzc2lnbkVycm9yTm9kZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9k
ZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IEFzc2lnbkVycm9yTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RFbmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
Y3BwCmluZGV4IGRkMjUxZjdhYmU3Li45NzY3NTdiZDQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMzg0Nyw3ICszODQ3LDcgQEAgdGVtcGxhdGUgPHR5cGVu
YW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VB
c3NpZ25tZW4KIAogICAgIGZhaWxJZkZhbHNlKGxocywgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9u
Iik7CiAgICAgaWYgKGluaXRpYWxOb25MSFNDb3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0Nv
dW50KSB7Ci0gICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1f
dHlwZSA8PSBCSVRPUkVRVUFMKQorICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwg
JiYgbV90b2tlbi5tX3R5cGUgPD0gQU5ERVFVQUwpCiAgICAgICAgICAgICBzZW1hbnRpY0ZhaWwo
IkxlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAiJyBtdXN0IGJlIGEg
cmVmZXJlbmNlIik7CiAKICAgICAgICAgcmV0dXJuIGxoczsKQEAgLTM4NzEsNiArMzg3MSw5IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAgICAgICAgIGNhc2UgQklUT1JFUVVBTDogb3AgPSBP
cGVyYXRvcjo6Qml0T3JFcTsgYnJlYWs7CiAgICAgICAgIGNhc2UgTU9ERVFVQUw6IG9wID0gT3Bl
cmF0b3I6Ok1vZEVxOyBicmVhazsKICAgICAgICAgY2FzZSBQT1dFUVVBTDogb3AgPSBPcGVyYXRv
cjo6UG93RXE7IGJyZWFrOworICAgICAgICBjYXNlIE5VTExJU0hFUVVBTDogb3AgPSBPcGVyYXRv
cjo6TnVsbGlzaEVxOyBicmVhazsKKyAgICAgICAgY2FzZSBPUkVRVUFMOiBvcCA9IE9wZXJhdG9y
OjpPckVxOyBicmVhazsKKyAgICAgICAgY2FzZSBBTkRFUVVBTDogb3AgPSBPcGVyYXRvcjo6QW5k
RXE7IGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZ290byBlbmQ7CiAgICAg
ICAgIH0KQEAgLTM4OTAsNyArMzg5Myw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRl
cj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAgICAg
ICAgIGxocyA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZh
aWxJZkZhbHNlKGxocywgIkNhbm5vdCBwYXJzZSB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mIGFuIGFz
c2lnbm1lbnQgZXhwcmVzc2lvbiIpOwogICAgICAgICBpZiAoaW5pdGlhbE5vbkxIU0NvdW50ICE9
IG1fcGFyc2VyU3RhdGUubm9uTEhTQ291bnQpIHsKLSAgICAgICAgICAgIGlmIChtX3Rva2VuLm1f
dHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBCSVRPUkVRVUFMKQorICAgICAgICAg
ICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90eXBlIDw9IEFOREVR
VUFMKQogICAgICAgICAgICAgICAgIHNlbWFudGljRmFpbCgiTGVmdCBoYW5kIHNpZGUgb2Ygb3Bl
cmF0b3IgJyIsIGdldFRva2VuKCksICInIG11c3QgYmUgYSByZWZlcmVuY2UiKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlclRva2Vucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXJUb2tlbnMuaAppbmRleCA0ODE4MWFlMGQ0Yi4uZDFjNDdlZmUyY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaApAQCAtMTM0LDYgKzEzNCw5IEBAIGVu
dW0gSlNUb2tlblR5cGUgewogICAgIEJJVEFOREVRVUFMLAogICAgIEJJVFhPUkVRVUFMLAogICAg
IEJJVE9SRVFVQUwsCisgICAgTlVMTElTSEVRVUFMLAorICAgIE9SRVFVQUwsCisgICAgQU5ERVFV
QUwsCiAgICAgRE9URE9URE9ULAogICAgIEFSUk9XRlVOQ1RJT04sCiAgICAgUVVFU1RJT05ET1Qs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCA5OTY5
NGQwMTI3Yi4uYzI4YmZjMzRiZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9uc0xpc3QuaApAQCAtNTAwLDYgKzUwMCw3IEBAIGNvbnN0ZXhwciBib29sIGVuYWJsZVdl
YkFzc2VtYmx5U3RyZWFtaW5nQXBpID0gZmFsc2U7CiAgICAgdihCb29sLCBmb3JjZU9TUkV4aXRU
b0xMSW50LCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgd2UgYWx3YXlzIGV4aXQgdG8gdGhlIExM
SW50LiBJZiBmYWxzZSwgd2UgZXhpdCB0byB3aGF0ZXZlciBpcyBtb3N0IGNvbnZlbmllbnQuIikg
XAogICAgIHYoVW5zaWduZWQsIGdldEJ5VmFsSUNNYXhOdW1iZXJPZklkZW50aWZpZXJzLCA0LCBO
b3JtYWwsICJOdW1iZXIgb2YgaWRlbnRpZmllcnMgd2Ugc2VlIGluIHRoZSBMTEludCB0aGF0IGNv
dWxkIGNhdXNlIHVzIHRvIGJhaWwgb24gZ2VuZXJhdGluZyBhbiBJQyBmb3IgZ2V0X2J5X3ZhbC4i
KSBcCiAgICAgdihCb29sLCB1c2VQdWJsaWNDbGFzc0ZpZWxkcywgdHJ1ZSwgTm9ybWFsLCAiSWYg
dHJ1ZSwgdGhlIHBhcnNlciB3aWxsIHVuZGVyc3RhbmQgcHVibGljIGRhdGEgZmllbGRzIGluc2lk
ZSBjbGFzc2VzLiIpIFwKKyAgICB2KEJvb2wsIHVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3Jz
LCBmYWxzZSwgTm9ybWFsLCAiRW5hYmxlIHN1cHBvcnQgZm9yIFw/XD89LCB8fD0sIGFuZCAmJj0g
bG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycy4iKSBcCiAgICAgdihCb29sLCB1c2VSYW5kb21p
emluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uLCBmYWxzZSwgTm9ybWFsLCAiRm9yIHRoZSBh
cm02NCBFeGVjdXRhYmxlQWxsb2NhdG9yLCBpZiB0cnVlLCBzZWxlY3Qgd2hpY2ggcmVnaW9uIHRv
IHVzZSByYW5kb21seS4gVGhpcyBpcyB1c2VmdWwgZm9yIHRlc3RpbmcgdGhhdCBqdW1wIGlzbGFu
ZHMgd29yay4iKSBcCiAKIGVudW0gT3B0aW9uRXF1aXZhbGVuY2UgewpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0YWYyN2Y1YjcwOC4uNmM2
M2FiMmY1OGUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDQtMTQgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFtFU05leHRdIEltcGxlbWVudCBsb2dpY2FsIGFzc2ln
bm1lbnQgb3BlcmF0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHN0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW51bGxpc2gu
anM6IEFkZGVkLgorICAgICAgICAqIHN0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3It
b3IuanM6IEFkZGVkLgorCisgICAgICAgICogdGVzdDI2Mi9jb25maWcueWFtbDoKKyAgICAgICAg
KiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorICAgICAgICBSaWdodCBub3csIHRlc3QyNjIg
ZXhwZWN0cyBhbiBlYXJseSBlcnJvciB0byBiZSB0aHJvd24gaWYgdGhlIGxocyBpcyBub3Qgc2lt
cGxlLCB3aGljaCBkb2VzCisgICAgICAgIG5vdCBtYXRjaCB3aGF0IHdlIGRvIHdpdGggb3RoZXIg
cmVhZC1tb2RpZnkgYXNzaWdubWVudCBvcGVyYXRvcnMuIFRoaXMgaXMgbGlrZWx5IHRvIGNoYW5n
ZQorICAgICAgICBpbiB0aGUgZnV0dXJlIHRvIG1hdGNoIGV4aXN0aW5nIGJlaGF2aW9yICh0aHJv
dyBhIGBSZWZlcmVuY2VFcnJvcmApIFsxXS4KKworICAgICAgICBbMV06IDxodHRwczovL2dpdGh1
Yi5jb20vdGMzOS9lY21hMjYyL2lzc3Vlcy8yNTcjaXNzdWVjb21tZW50LTUwMjg3ODcwOD4KKwog
MjAyMC0wNC0xNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJlZHVjZSBpdGVyYXRpb24gY291bnQgYW5kIGludHJvZHVjZSBlYXJseSBy
ZXR1cm4gdG8gbWFrZSB0eXBlZC1hcnJheS1zdWJhcnJheS1jYW4tdGhyb3ctb29tLWVycm9yLmpz
IGV4ZWN1dGlvbiB0aW1lIHNob3J0IHdoaWxlIHRocm93aW5nIGFuIGVycm9yCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzIGIvSlNU
ZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLWFuZC5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjk3NTdhNTQ5YzYKLS0tIC9kZXYvbnVsbAor
KysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzCkBA
IC0wLDAgKzEsMTY4NCBAQAorLy9AIHJ1bkxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzRW5hYmxl
ZAorCitmdW5jdGlvbiBzaG91bGRCZShmdW5jLCBleHBlY3RlZCkgeworICAgIGxldCBhY3R1YWwg
PSBmdW5jKCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0
dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0
IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRo
cm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAg
ICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQor
CisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9IGJ1dCBzYXcgJHtlcnJvciAmJiBl
cnJvci5uYW1lfSFgKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3dTeW50YXhFcnJvcihzY3Jp
cHQpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOwor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICgh
KGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
YEV4cGVjdGVkIFN5bnRheEVycm9yIGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsK
K30KKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgcmV0dXJuIHggJiY9
IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7
CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCAmJj0g
NDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICByZXR1cm4g
eCAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBudWxsOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgbnVsbCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAg
ICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgeCAmJj0g
NDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gMDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4
OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICBy
ZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gMTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9
LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAgeCAm
Jj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAidGVzdCI7CisgICAgeCAmJj0gNDI7Cisg
ICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge307CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJldHVy
biB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBbXTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIHgg
JiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIHVuZGVm
aW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBudWxsOworICAg
IHJldHVybiB4ICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gbnVsbDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIG51bGwp
OworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICBy
ZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgZmFsc2UpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCAmJj0g
NDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSAwOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDApOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1
cm4geDsKK30sIDApOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
MTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgIiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAgeCAmJj0g
NDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSAidGVzdCI7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgVHlwZUVycm9y
KTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJl
dHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3Ip
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1
cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge307CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5k
ZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZp
bmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeC5hICYmPSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBu
dWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07Cisg
ICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4LmEgJiY9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVl
fTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hICYm
PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogZmFsc2V9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJu
IHguYSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogMH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEg
JiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAxfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hICYm
PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
IiJ9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICIiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geC5h
ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogInRlc3QifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4g
eC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YToge319OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHJldHVybiB4
LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiBbXX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCisK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4
LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHt9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHVuZGVm
aW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZp
bmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4LmEgJiY9
IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4LmEgJiY9IDQyOwor
fSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVs
bH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgbnVsbCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHgu
YSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogdHJ1ZX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
IDB9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
MX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgJiY9IDQy
OworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgJiY9
IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICB4LmEg
JiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5k
ZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4
WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVy
biB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIG51bGwp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4
WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHhbImEiXSAm
Jj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHRydWV9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHJl
dHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogMX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHhbImEiXSAmJj0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgIiIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJd
ICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVz
dCJ9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4
WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiB7fX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAg
cmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e307CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdICYmPSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQy
OworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gJiY9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVl
fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVy
biB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0gJiY9IDQyOwor
ICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOwor
fSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsK
KyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAiIik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4g
eFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7
fX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHhbImEiXSAmJj0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHhbImEiXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5k
ZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4
WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0g
JiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxd
OworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0
cnVlXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVy
biB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtm
YWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgeFswXSAmJj0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDApOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsx
XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBd
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07Cisg
ICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFsiIl07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07Cisg
ICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBd
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07Cisg
ICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFt7fV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICBy
ZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW1tdXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQy
KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICBy
ZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gW107CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHhb
MF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSAmJj0g
NDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtu
dWxsXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIG51bGwpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOworICAgIHJldHVybiB4
WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFt0cnVlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgcmV0
dXJuIHhbMF0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsK
KyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFswXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzFdOworICAg
IHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFsxXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAg
cmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
ICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOwor
ICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3t9
XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1td
XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBm
YWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5
ICsgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBm
YWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5
ID0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBm
YWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5
ICYmIHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
ZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0g
eSA/PyB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9
IHkgfHwgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYm
PSB5ICYmPSB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHgg
JiY9IHkgPz89IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4g
eCAmJj0geSB8fD0gejsKK30sIGZhbHNlKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4ICYmPSB5ICsgejsKK30sIDMpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4g
eCAmJj0geSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9
IHkgJiYgejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRy
dWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA/
PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsK
KyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5IHx8IHo7
Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAg
IGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgJiY9IHo7Cit9
LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxl
dCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz89IHo7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5
ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHw9IHo7Cit9LCAxKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxl
dCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAg
ICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSAmJj0gNDI7CisgICAgeC5h
ICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQg
c2V0IGdldCBzZXQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsK
KyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNl
dCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSAm
Jj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAi
ICsgYTsKK30sICJnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0gewor
ICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAg
ICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9
OworCisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5q
b2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdW5kZWZpbmVkIik7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7
CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBh
KHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2Owor
ICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBn
ZXQgc2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsK
KworICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgewor
ICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAg
ICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsK
KyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gJiY9
IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIg
IiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAg
ICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAg
ICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAg
fTsKKworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVy
biBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHVuZGVmaW5lZCIpOworCisK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3Mg
UGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBh
cmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAg
ICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0
ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJn
ZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAg
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAg
ICAgICAgIHN1cGVyLmEgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5l
dyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4LmEgJiY9IDQyOworICAgIHguYSAmJj0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNo
aWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQg
Z2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IDQyIik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlz
Ll9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFy
ZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxk
Iik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBz
dXBlci5hICYmPSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7
CisgICAgeC5fYSA9IGZhbHNlOworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKwor
ICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0
LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBn
ZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsK
KyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAg
ICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAg
ICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAg
ICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSAmJj0g
djsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2Eg
PSB1bmRlZmluZWQ7CisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAgcmV0
dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50
IGdldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7
CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJh
Il0gJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisK
KyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBh
cmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAg
ICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAg
ICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAg
ICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYm
PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7Cisg
ICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBl
clsiYSJdICYmPSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7
CisgICAgeC5fYSA9IGZhbHNlOworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0
MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hp
bGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSAm
Jj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOwor
ICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEo
dikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3Vw
ZXJbImEiXSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxk
OworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICB4WyJhIl0g
JiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdl
dC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIpOworCisK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0
YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRh
YmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVm
aW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVu
ZGVmaW5lZCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmlj
dCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7
CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7
CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgZmFs
c2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIs
IHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9
KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEi
LCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAg
IH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4
LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZh
bHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsK
KworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBs
ZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAg
dmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1
cm4geFsiYSJdICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJs
ZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVy
biB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggJiY9
IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAg
ICAgICAgcmV0dXJuIHggJiY9IDQyOworICAgIH0pKCk7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rp
b24oKSB7CisgICAgICAgIHJldHVybiB4ICYmPSA0MjsKKyAgICB9KSgpOworfSwgdW5kZWZpbmVk
KTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0cnVlOwor
ICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCAmJj0gNDI7CisgICAgfSkoKTsKKyAgICByZXR1
cm4geDsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCAm
Jj0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAg
ICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHRy
dWU7CisgICAgdHJ5IHsKKyAgICAgICAgeCAmJj0gKytjb3VudDsKKyAgICB9IGNhdGNoIHsgfQor
CisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCAmJj0gKytjb3Vu
dDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYm
PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKKworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHRydWU7Cisg
ICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHg7IH0KKworICAgIHRyeSB7CisgICAgICAg
IHggJiY9ICsrY291bnQ7CisgICAgfSBjYXRjaCB7IH0KKworICAgIHJldHVybiBjb3VudDsKK30s
IDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAg
Y29uc3QgeCA9IGZhbHNlOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisK
KyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdW5k
ZWZpbmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4ICYm
PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKKworCitzaG91bGRUaHJv
dyhmdW5jdGlvbigpIHsKKyAgICB4ICYmPSA0MjsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgcmV0
dXJuIHg7Cit9LCBSZWZlcmVuY2VFcnJvcik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICByZXR1cm4gdW5kZWZpbmVkICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZFRo
cm93U3ludGF4RXJyb3IoYG51bGwgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3Io
YHRydWUgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYGZhbHNlICYmPSA0MmAp
OworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAwICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5
bnRheEVycm9yKGAxICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAiIiAmJj0g
NDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgInRlc3QiICYmPSA0MmApOworCitzaG91
bGRUaHJvd1N5bnRheEVycm9yKGB7fSAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJv
cihgW10gJiY9IDQyYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2ln
bm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qcyBiL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdu
bWVudC1vcGVyYXRvci1udWxsaXNoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5mOTQ2NWNjODVkYgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2xv
Z2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1udWxsaXNoLmpzCkBAIC0wLDAgKzEsMTY5OSBAQAor
Ly9AIHJ1bkxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlvbiBzaG91
bGRCZShmdW5jLCBleHBlY3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBmdW5jKCk7CisgICAgaWYg
KHR5cGVvZiBleHBlY3RlZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhw
ZWN0ZWQpIDogYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBl
eHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5n
aWZ5KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlw
ZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3Ig
aW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVk
ICR7ZXJyb3JUeXBlLm5hbWV9IGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30K
KworZnVuY3Rpb24gc2hvdWxkVGhyb3dTeW50YXhFcnJvcihzY3JpcHQpIHsKKyAgICBsZXQgZXJy
b3I7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2Yg
U3ludGF4RXJyb3IpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFN5bnRheEVy
cm9yIGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1
cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRl
ZmluZWQ7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4g
eDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOwor
ICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBudWxsOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHgg
Pz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
dHJ1ZTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHJldHVybiB4ID8/PSA0MjsK
K30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsK
KyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDApOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgeCA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHg7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSAxOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IDE7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAxKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICByZXR1cm4geCA/
Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7
CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sICJ0
ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOworICAg
IHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBPYmplY3Qp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHggPz89IDQy
OworICAgIHJldHVybiB4OworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgeCA/Pz0gNDI7CisgICAgcmV0
dXJuIHg7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIFR5cGVFcnJvcik7
CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBudWxsOworICAgIHJl
dHVybiB4ID8/PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB0cnVlOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIHRydWUpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICB4ID8/PSA0MjsK
KyAgICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSAwOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsK
K30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICBy
ZXR1cm4geCA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IDE7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAxKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICIiOworICAgIHJldHVybiB4ID8/PSA0MjsK
K30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICIiOworICAg
IHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sICJ0ZXN0
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVzdCI7CisgICAg
cmV0dXJuIHggPz89IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCA/Pz0g
NDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W107CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgQXJyYXkp
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1
cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0
dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsK
KyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVl
fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVy
biB4LmE7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogZmFsc2V9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeC5hID8/PSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDApOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICB4LmEgPz89IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeC5hID8/PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6ICIifTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hID8/PSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgT2JqZWN0
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHgu
YSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30s
IEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119Owor
ICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIEFycmF5KTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geC5hID8/PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9Owor
ICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEg
Pz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IHVuZGVmaW5lZH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAg
IHJldHVybiB4LmEgPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVl
fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5hID8/
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgMCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeC5h
ID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAxKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICB4LmEg
Pz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAiIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHgu
YSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4LmEgPz89IDQyOwor
fSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAi
dGVzdCJ9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJldHVy
biB4LmEgPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiB7fX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
T2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07
CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge307CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhb
ImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51
bGx9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJu
IHhbImEiXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZh
bHNlfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHhbImEiXSA/Pz0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAwKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeFsiYSJd
ID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwg
MSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHhb
ImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDEpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7
Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsK
KyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAiIik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhb
ImEiXSA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHt9fTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICB4WyJhIl0gPz89IDQyOwor
ICAgIHJldHVybiB4WyJhIl07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBBcnJh
eSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4
WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBBcnJheSk7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSA/
Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICBy
ZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0g
Pz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7
Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0
cnVlfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAg
cmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDApOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHhbImEiXSA/Pz0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeFsi
YSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQy
OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIi
fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1
cm4geFsiYSJdID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVy
biB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIE9iamVjdCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHhbImEi
XSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gPz89
IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IFtdfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBBcnJh
eSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJl
dHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBbXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICBy
ZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOwor
ICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbbnVsbF07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOwor
ICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxz
ZV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gWzBdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsK
KyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbMV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbIiJdOworICAgIHJl
dHVybiB4WzBdID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBbIiJdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgIiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHJl
dHVybiB4WzBdID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07
CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4
WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBb
W11dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbW11dOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVy
biB4WzBdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IFtdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHhbMF0gPz89IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgeFswXSA/
Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAgIHhb
MF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30s
IHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOwor
ICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdID8/
PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFtmYWxzZV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07CisgICAgcmV0dXJu
IHhbMF0gPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSBbMF07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsxXTsKKyAgICByZXR1cm4geFsw
XSA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFsxXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDEpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICByZXR1cm4geFswXSA/
Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBb
IiJdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgIiIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhb
MF0gPz89IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IFsidGVzdCJdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
InRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt7fV07Cisg
ICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFt7fV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhb
MF07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W1tdXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAgIHhbMF0gPz89IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4ID8/PSB5ICsgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4ID8/PSB5ID0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4ID8/PSB5ICYmIHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1
cm4geCA/Pz0geSA/PyB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggPz89IHkgfHwgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4ID8/PSB5ICYmPSB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggPz89IHkgPz89IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAg
ICByZXR1cm4geCA/Pz0geSB8fD0gejsKK30sIGZhbHNlKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ID8/PSB5ICsgejsKK30sIDMpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAg
ICByZXR1cm4geCA/Pz0geSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggPz89IHkgJiYgejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4g
eCA/Pz0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/
PSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBu
dWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkg
JiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxs
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz89
IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOwor
ICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgfHw9IHo7
Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsK
KworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAg
ICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOwor
ICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSA/Pz0gNDI7
CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsK
K30sICJnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxv
ZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0
IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4g
YTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHgu
YSA/Pz0gNDI7CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsg
IiAiICsgYTsKK30sICJnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0g
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAg
ICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAg
ICB9OworCisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEgPz89IDQyOworCisgICAgcmV0dXJuIGxv
Zy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7
CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBh
KHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2Owor
ICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCB0
cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAg
IGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0s
CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAg
ICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gPz89IDQyOwor
ICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7
Cit9LCAiZ2V0IGdldCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
bG9nID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICBy
ZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKwor
ICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJdID8/PSA0MjsKKworICAgIHJldHVybiBsb2cu
am9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOwor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikg
eworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMu
X2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJl
bnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQi
KTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBh
KHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1
cGVyLmEgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsK
KyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAg
ICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1w
YXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAg
IGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAg
ICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAg
ICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSA/Pz0gdjsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBm
YWxzZTsKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9n
LmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNo
aWxkIGdldC1wYXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAg
ICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBz
dXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEgPz89IHY7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOwor
ICAgIHguYSA/Pz0gNDI7CisgICAgeC5hID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigi
ICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0
LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhp
cy5fYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBh
cmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGls
ZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAg
ICAgc3VwZXJbImEiXSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3
IENoaWxkOworICAgIHguX2EgPSB0cnVlOworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJd
ID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJn
ZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlz
Ll9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFy
ZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxk
Iik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAgICBz
ZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAg
ICBzdXBlclsiYSJdID8/PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcg
Q2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJd
ID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJn
ZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhp
cy5fYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBh
cmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGls
ZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAg
c2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAg
ICAgc3VwZXJbImEiXSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3
IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4
WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOwor
fSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQg
Z2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAg
ICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAg
IHJldHVybiB4LmEgPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAg
ICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAg
ICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7Cisg
ICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9
KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdy
aXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHgg
PSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVl
OiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4
LmEgPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAi
dXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
eCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIFR5cGVFcnJvcik7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdy
aXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIHRy
dWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAg
ICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVk
LAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/
Pz0gNDI7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0
cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEi
LCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAg
fSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30s
IGZhbHNlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOwor
ICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAg
ICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7
CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAg
ICAgICAgeCA/Pz0gNDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIHRydWUpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHJldHVybiAoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICBy
ZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCA/Pz0gNDI7CisgICAgfSkoKTsK
K30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0cnVl
OworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCA/Pz0gNDI7CisgICAgfSkoKTsKKyAgICBy
ZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggPz89
IDQyOworICAgIH0pKCk7Cit9LCBmYWxzZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAg
ICAgcmV0dXJuIHggPz89IDQyOworICAgIH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSB0
cnVlOworICAgIHggPz89ICsrY291bnQ7CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHgg
PSBmYWxzZTsKKyAgICB4ID8/PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25z
dCB4ID0gdW5kZWZpbmVkOworICAgIHRyeSB7CisgICAgICAgIHggPz89ICsrY291bnQ7CisgICAg
fSBjYXRjaCB7IH0KKworICAgIHJldHVybiBjb3VudDsKK30sIDEpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSB0cnVlOwor
ICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4ID8/PSArK2NvdW50
OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgZnVuY3Rpb24g
Y2FwdHVyZSgpIHsgcmV0dXJuIHg7IH0KKworICAgIHggPz89ICsrY291bnQ7CisKKyAgICByZXR1
cm4gY291bnQ7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50
ID0gMDsKKworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgp
IHsgcmV0dXJuIHg7IH0KKworICAgIHRyeSB7CisgICAgICAgIHggPz89ICsrY291bnQ7CisgICAg
fSBjYXRjaCB7IH0KKworICAgIHJldHVybiBjb3VudDsKK30sIDEpOworCisKKworc2hvdWxkVGhy
b3coZnVuY3Rpb24oKSB7CisgICAgeCA/Pz0gNDI7CisgICAgbGV0IHggPSB0cnVlOworICAgIHJl
dHVybiB4OworfSwgUmVmZXJlbmNlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgcmV0dXJuIHVuZGVmaW5lZCA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZFRocm93U3lu
dGF4RXJyb3IoYG51bGwgPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYHRydWUg
Pz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYGZhbHNlID8/PSA0MmApOworCitz
aG91bGRUaHJvd1N5bnRheEVycm9yKGAwID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVy
cm9yKGAxID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAiIiA/Pz0gNDJgKTsK
Kworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgInRlc3QiID8/PSA0MmApOworCitzaG91bGRUaHJv
d1N5bnRheEVycm9yKGB7fSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgW10g
Pz89IDQyYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQt
b3BlcmF0b3Itb3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0
b3Itb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFlODk0YzRm
YmIxCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50
LW9wZXJhdG9yLW9yLmpzCkBAIC0wLDAgKzEsMTY4NSBAQAorLy9AIHJ1bkxvZ2ljYWxBc3NpZ25t
ZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlvbiBzaG91bGRCZShmdW5jLCBleHBlY3RlZCkg
eworICAgIGxldCBhY3R1YWwgPSBmdW5jKCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3RlZCA9PT0g
ImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFsICE9PSBl
eHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04uc3RyaW5n
aWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7Cit9CisK
K2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxldCBlcnJvcjsK
KyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBl
cnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5cGUp
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9IGJ1
dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhy
b3dTeW50YXhFcnJvcihzY3JpcHQpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAg
ICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOwor
ICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFN5bnRheEVycm9yIGJ1dCBzYXcgJHtlcnJvciAm
JiBlcnJvci5uYW1lfSFgKTsKK30KKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7
CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeDsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIHgg
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVu
ZGVmaW5lZDsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIHJldHVybiB4IHx8PSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAg
IHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgdHJ1ZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICB4IHx8PSA0MjsK
KyAgICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IGZhbHNlOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1
cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOwor
ICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSAwOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDE7CisgICAgcmV0dXJuIHggfHw9IDQy
OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICB4
IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9ICIiOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1
cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAidGVz
dCI7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSAidGVzdCI7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7
Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9Owor
ICAgIHJldHVybiB4IHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBPYmpl
Y3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJldHVy
biB4IHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbXTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIEFycmF5KTsKKworCisK
K3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAg
cmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IG51bGw7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVy
cm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAg
cmV0dXJuIHggfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB0cnVlOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7
CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICBy
ZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3Ip
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICByZXR1cm4g
eCB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IDE7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAxKTsKKworc2hvdWxkVGhyb3co
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICIiOworICAgIHJldHVybiB4IHx8PSA0MjsKK30s
IFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVz
dCI7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAg
cmV0dXJuIHggfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geCB8fD0g
NDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBb
XTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHguYSB8fD0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsK
KyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4LmEgfHw9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxs
fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4LmEgfHw9
IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHRydWV9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHRydWUpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJu
IHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IGZhbHNlfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHJldHVy
biB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAwfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4
LmEgfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IDF9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSB8
fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
ICIifTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHgu
YSB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAidGVzdCJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICJ0
ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAg
ICByZXR1cm4geC5hIHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBb
XX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVy
biB4LmE7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge307CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVy
biB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSB8
fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAg
ICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7
Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0
cnVlfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB0cnVlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJu
IHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogZmFsc2V9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICBy
ZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiAwfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAg
cmV0dXJuIHguYSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiAxfTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAg
cmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogIiJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9
OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHguYSB8fD0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgT2JqZWN0KTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgeC5hIHx8
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBB
cnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119Owor
ICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIEFycmF5KTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307Cisg
ICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVs
bH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJd
IHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFs
c2V9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhb
ImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IDB9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0
dXJuIHhbImEiXSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogMX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAg
ICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhb
ImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
InRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOwor
fSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319
OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIE9iamVjdCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4g
eFsiYSJdIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogW119OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJu
IHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4WyJhIl0g
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IG51bGx9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAg
ICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeFsi
YSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9
OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsi
YSJdIHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IDF9OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDEp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICBy
ZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeFsiYSJd
IHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSB8fD0g
NDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IHt9fTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBPYmpl
Y3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAg
ICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
W3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gfHw9IDQy
OworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHhbMF0gfHw9IDQy
OworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgeFswXSB8fD0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHhbMF0g
fHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHhbMF0gfHw9IDQy
OworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IFsxXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMV07CisgICAgeFswXSB8fD0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBbIiJdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBbIiJdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVy
biB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsi
dGVzdCJdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IFt7fV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgT2JqZWN0KTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHhbMF0gfHw9IDQy
OworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbW11dOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIEFycmF5KTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbW11dOworICAgIHhbMF0gfHw9
IDQyOworICAgIHJldHVybiB4WzBdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHhbMF0g
fHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5l
ZF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgcmV0dXJuIHhbMF0g
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
W251bGxdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOworICAgIHJldHVybiB4
WzBdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gW3RydWVdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdHJ1
ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOworICAg
IHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07Cisg
ICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gWzBdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzFdOworICAg
IHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gWzFdOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
MSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbIiJdOworICAgIHJl
dHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFsiIl07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAg
ICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gWyJ0ZXN0Il07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJu
IHhbMF07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICB4WzBdIHx8PSA0MjsKKyAg
ICByZXR1cm4geFswXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbW11dOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIEFycmF5KTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgeFswXSB8fD0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsK
KyAgICByZXR1cm4geCB8fD0geSArIHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7Cisg
ICAgcmV0dXJuIHggfHw9IHkgPSB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAg
IHJldHVybiB4IHx8PSB5ICYmIHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggfHw9IHkgPz8gejsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICBy
ZXR1cm4geCB8fD0geSB8fCB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4IHx8PSB5ICYmPSB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4IHx8PSB5IHx8PSB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4IHx8PSB5ID8/PSB6OworfSwgdHJ1ZSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAg
ICByZXR1cm4geCB8fD0geSArIHo7Cit9LCAzKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggfHw9IHkgPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4
IHx8PSB5ICYmIHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9
IHkgPz8gejsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51
bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSB8
fCB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsK
KyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICYmPSB6
OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAg
ICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8PSB6Owor
fSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ID8/PSB6OworfSwg
MSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAg
ICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0s
CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAg
ICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgfHw9IDQyOworICAg
IHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAi
Z2V0IGdldCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBb
XTsKKworICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7Cisg
ICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQi
KTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4LmEgfHw9
IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0IHggPSB7Cisg
ICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAg
ICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07
CisKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpv
aW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAg
ICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikg
eworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAg
ICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSB8fD0gNDI7CisgICAgeFsiYSJdIHx8PSA0MjsK
KworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHRydWUi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0
IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAg
ICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSB8fD0gNDI7CisgICAg
eFsiYSJdIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30s
ICJnZXQgc2V0IGdldCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9n
ID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1
cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1
c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAg
IHhbImEiXSB8fD0gNDI7CisgICAgeFsiYSJdIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9p
bigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2Eg
fHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVy
LmEgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gdHJ1ZTsKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJl
bnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1
cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBs
b2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdl
dCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAg
cmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAg
ICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSB8fD0gdjsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxz
ZTsKKyAgICB4LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpv
aW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxk
IGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhp
cy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBh
cmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGls
ZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0
IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAg
c3VwZXIuYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxk
OworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeC5hIHx8PSA0MjsKKyAgICB4LmEgfHw9IDQy
OworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGls
ZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cg
PSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOwor
ICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQt
cGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQor
ICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJb
ImEiXTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVz
aCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdIHx8PSB2OworICAgICAgICB9
CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRydWU7CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2lu
KCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBn
ZXQtcGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsi
YSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gfHw9IHY7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gZmFsc2U7CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2lu
KCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBn
ZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOwor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikg
eworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMu
X2EgfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJl
bnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQi
KTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAg
IHN1cGVyWyJhIl0gfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBD
aGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOworICAgIHhbImEiXSB8fD0gNDI7CisgICAgeFsi
YSJdIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30s
ICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdl
dC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAg
ICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICBy
ZXR1cm4geC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAg
ICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAg
cmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAg
ICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7Cisg
ICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJs
ZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0g
e307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTog
ZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5h
IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAg
ICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6
IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgVHlwZUVycm9yKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwg
dHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAg
ICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQs
CisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8
PSA0MjsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3Ry
aWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIs
IHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9
KTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRUaHJvdyhm
dW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAg
ICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOwor
fSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJp
Y3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwg
eworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisg
ICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigp
IHsKKyAgICAgICAgeCB8fD0gNDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHJldHVy
biAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAg
ICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7CisgICAgfSko
KTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB0
cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCB8fD0gNDI7CisgICAgfSkoKTsKKyAg
ICByZXR1cm4geDsKK30sIHRydWUpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IHggfHw9IDQyOworICAgIH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24o
KSB7CisgICAgICAgIHJldHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgVHlwZUVycm9yKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBj
b25zdCB4ID0gdHJ1ZTsKKyAgICB4IHx8PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50Owor
fSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAg
ICBjb25zdCB4ID0gZmFsc2U7CisgICAgdHJ5IHsKKyAgICAgICAgeCB8fD0gKytjb3VudDsKKyAg
ICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVk
OworICAgIHRyeSB7CisgICAgICAgIHggfHw9ICsrY291bnQ7CisgICAgfSBjYXRjaCB7IH0KKwor
ICAgIHJldHVybiBjb3VudDsKK30sIDEpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSB0cnVlOworICAgIGZ1bmN0aW9uIGNh
cHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4IHx8PSArK2NvdW50OworCisgICAgcmV0dXJu
IGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9
IDA7CisKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0
dXJuIHg7IH0KKworICAgIHRyeSB7CisgICAgICAgIHggfHw9ICsrY291bnQ7CisgICAgfSBjYXRj
aCB7IH0KKworICAgIHJldHVybiBjb3VudDsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICBm
dW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4geDsgfQorCisgICAgdHJ5IHsKKyAgICAgICAgeCB8
fD0gKytjb3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7
CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICB4IHx8PSA0MjsKKyAgICBsZXQg
eCA9IHRydWU7CisgICAgcmV0dXJuIHg7Cit9LCBSZWZlcmVuY2VFcnJvcik7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdW5kZWZpbmVkIHx8PSA0MjsKK30sIDQyKTsK
Kworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgbnVsbCB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dT
eW50YXhFcnJvcihgdHJ1ZSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgZmFs
c2UgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYDAgfHw9IDQyYCk7CisKK3No
b3VsZFRocm93U3ludGF4RXJyb3IoYDEgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJy
b3IoYCIiIHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAidGVzdCIgfHw9IDQy
YCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYHt9IHx8PSA0MmApOworCitzaG91bGRUaHJv
d1N5bnRheEVycm9yKGBbXSB8fD0gNDJgKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9j
b25maWcueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAppbmRleCAwYjZiNTZlOGMx
ZC4uMGM2N2E0ZGU2MzMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAor
KysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTQsNiArNCw3IEBAIGZsYWdzOgog
ICBCaWdJbnQ6IHVzZUJpZ0ludAogICBXZWFrUmVmOiB1c2VXZWFrUmVmcwogICBjbGFzcy1maWVs
ZHMtcHVibGljOiB1c2VQdWJsaWNDbGFzc0ZpZWxkcworICBsb2dpY2FsLWFzc2lnbm1lbnQtb3Bl
cmF0b3JzOiB1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycwogc2tpcDoKICAgZmVhdHVyZXM6
CiAgICAgLSBTaGFyZWRBcnJheUJ1ZmZlcgpAQCAtMjAsOCArMjEsNiBAQCBza2lwOgogICAgICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQ3NQogICAgIC0gcmVn
ZXhwLW1hdGNoLWluZGljZXMKICAgICAtIHRvcC1sZXZlbC1hd2FpdAotICAgICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcxNgotICAgIC0gbG9naWNhbC1hc3Np
Z25tZW50LW9wZXJhdG9ycwogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMjU2NgogICAgIC0gUHJvbWlzZS5hbnkKICAgICAtIEFnZ3JlZ2F0ZUVycm9yCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rl
c3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggNGFlMmE3NzAyZDcuLjYzMGZhYzllYjBmIDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0
cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCkBAIC0yNzE4LDYgKzI3MTgsMTIgQEAgdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9pbXBvcnQubWV0YS9zeW50YXgvaW52YWxpZC1hc3NpZ25tZW50
LXRhcmdldC1mb3Itb2YtbG8KIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvaW5zdGFuY2VvZi9w
cm90b3R5cGUtZ2V0dGVyLXdpdGgtcHJpbWl0aXZlLmpzOgogICBkZWZhdWx0OiAiVGVzdDI2MkVy
cm9yOiBnZXR0ZXIgZm9yICdwcm90b3R5cGUnIGNhbGxlZCIKICAgc3RyaWN0IG1vZGU6ICJUZXN0
MjYyRXJyb3I6IGdldHRlciBmb3IgJ3Byb3RvdHlwZScgY2FsbGVkIgordGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9sb2dpY2FsLWFzc2lnbm1lbnQvbGdjbC1hbmQtYXNzaWdubWVudC1vcGVyYXRv
ci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVtZW50
IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9n
aWNhbC1hc3NpZ25tZW50L2xnY2wtbnVsbGlzaC1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi1zaW1w
bGUtbGhzLmpzOgorICBkZWZhdWx0OiAiVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5v
dCBiZSBldmFsdWF0ZWQuIgordGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9sb2dpY2FsLWFzc2ln
bm1lbnQvbGdjbC1vci1hc3NpZ25tZW50LW9wZXJhdG9yLW5vbi1zaW1wbGUtbGhzLmpzOgorICBk
ZWZhdWx0OiAiVGVzdDI2MjogVGhpcyBzdGF0ZW1lbnQgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQu
IgogdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9uZXcvY3RvckV4cHItZm4tcmVmLWJlZm9yZS1h
cmdzLWV2YWwtZm4td3JhcHVwLmpzOgogICBkZWZhdWx0OiAiVHlwZUVycm9yOiAxIGlzIG5vdCBh
IGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgeCh4ID0gMSknKSIKICAgc3RyaWN0IG1vZGU6
ICJUeXBlRXJyb3I6IDEgaXMgbm90IGEgY29uc3RydWN0b3IgKGV2YWx1YXRpbmcgJ25ldyB4KHgg
PSAxKScpIgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGEzMTI2MjlkMzI4Li5iNjliNWM0Mzk5MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA0LTE0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzOgor
CiAyMDIwLTA0LTE0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4t
anNjLXN0cmVzcy10ZXN0cwppbmRleCA3YmRhNjE3N2Q2NC4uYzRlMDhmMGZmNGYgMTAwNzU1Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0
cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNzg3LDYgKzc4NywxMCBAQCBkZWYgcnVuTWluaU1v
ZGUoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICBydW4oIm1pbmktbW9kZSIsICIt
LWZvcmNlTWluaVZNTW9kZT10cnVlIiwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKIGVu
ZAogCitkZWYgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkKCpvcHRpb25hbFRl
c3RTcGVjaWZpY09wdGlvbnMpCisgICAgcnVuKCJsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3Jz
LWVuYWJsZWQiLCAiLS11c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycz10cnVlIiAsICooRlRM
X09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorZW5kCisKIGRlZiBkZWZh
dWx0UnVuCiAgICAgaWYgJG1vZGUgPT0gInF1aWNrIgogICAgICAgICBkZWZhdWx0UXVpY2tSdW4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396492</attachid>
            <date>2020-04-14 20:20:45 -0700</date>
            <delta_ts>2020-04-14 20:29:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200414212043.patch</filename>
            <type>text/plain</type>
            <size>117285</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDM5OGU5MzJhNzZlODZhZjkyMWNmOTQ0MTE3ZDM3
ODcxZDg1MDczZjcuLmYxOGZkZThiMTNiYWI1NzNlZmJjMGI5MGIwOTdlZWZlMDQwZDYyMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTE0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBub3cgU3RhZ2UgMy4gSXQgaW50cm9kdWNlcwor
ICAgICAgICB0aHJlZSBuZXcgYXNzaWdubWVudCBvcGVyYXRvcnMgd2hpY2ggd2lsbCBvbmx5IHN0
b3JlIHRoZSByZXN1bHQgb2YgdGhlIHJocyBpbiB0aGUgbGhzIGlmIHRoZQorICAgICAgICBsaHMg
bWVldHMgdGhlIGdpdmVuIGNvbmRpdGlvbjoKKyAgICAgICAgIC0gYD8/PWAsIGZvciBpZiB0aGUg
bGhzIGlzIG51bGxpc2ggKGBudWxsYCBvciBgdW5kZWZpbmVkYCkKKyAgICAgICAgIC0gYHx8PWAs
IGZvciBpZiB0aGUgbGhzIGlzIGZhbHN5CisgICAgICAgICAtIGAmJj1gLCBmb3IgaWYgdGhlIGxo
cyBpcyB0cnV0aHkKKworICAgICAgICBUaGlzIHNob3J0IGNpcmN1aXRpbmcgY2FuIGJlIGJlbmVm
aWNpYWwgYXMgaXQgY2FuIGF2b2lkIGEgcmVkdW5kYW50IHN0b3JlIHdoZW4gdXNlZCBpbiB0aGUK
KyAgICAgICAgY29tbW9uIEphdmFTY3JpcHQgcHJvZ3JhbW1pbmcgcGF0dGVybiBvZiAiZGVmYXVs
dGluZyIgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgYGBganMKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZvbyh4KSB7CisgICAgICAgICAgICAgICAgeCA9IHggfHwgNDI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIGBgYAorCisgICAgICAgIElmIGB4YCBpcyBhIHRydXRoeSB2YWx1ZSwgaXQgd291bGQg
cmVzdWx0IGluIHRoZSByaHMgYHhgIGJlaW5nIHN0b3JlZCBiYWNrIGludG8gdGhlIGxocyBgeGAu
CisgICAgICAgIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gaGF2ZSBuZWdhdGl2ZSB1bmlu
dGVuZGVkIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBmb3IgYGlubmVySFRNTGAuCisKKyAgICAgICAg
TG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycywgaG93ZXZlciwgYXJlIGRlZmluZWQgc3VjaCB0
aGF0IHRoZXkgb25seSBzdG9yZSBpZiB0aGUgcmhzIGlzCisgICAgICAgIHRvIGFjdHVhbGx5IGJl
IG5lZWRlZC91c2VkLCBza2lwcGluZyB0aGUgcmVkdW5kYW50IHN0b3JlIGFuZCBzaW1wbHkgcmV0
dXJuaW5nIGxocyBvdGhlcndpc2UuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcmVhZG9ubHkg
cmVmZXJlbmNlcywgdGhpcyBtZWFucyB0aGF0IGFuIGVycm9yIGlzIG9ubHkgdGhyb3duIHdoZW4g
dGhlCisgICAgICAgIGFzc2lnbm1lbnQgb2NjdXJzLCBtZWFuaW5nIHRoYXQgaWYgdGhlIGxocyBh
bHJlYWR5IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uIGl0IHdpbGwgYmUgdXNlZAorICAgICAgICBh
bmQgcmV0dXJuZWQgd2l0aCBubyBlcnJvci4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6bGV4V2l0aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGU6OlNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlKTogQWRkZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50
KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRN
b2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKworICAg
ICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEgYHVzZUxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0aGlzIGZlYXR1cmUu
CisKIDIwMjAtMDQtMTMgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTk1ODcpOiBidGVybHNvbi9lc2hvc3QgdGhyb3dzIGR1
cmluZyBpbml0IGluIHN0cmljdCBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggZDRmZGI0ZGQ1NGQ0OTJmOTBkMmQ3
MjFmZDdkYWMxMmZmN2QyZjg1MC4uZDdkMDU4ZGI3M2IzNDgyMzczZTg2NGJiODdhYTM2OWZjNTk1
YjQwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcApAQCAtMjg2Miw2ICsyODYyLDEwOSBAQCBSZWdpc3RlcklEKiBSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZQogICAgIHJldHVybiByZXR1cm5SZXN1bHQ7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBl
bWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBS
ZWdpc3RlcklEKiB2YWx1ZSwgT3BlcmF0b3Igb3BlciwgTGFiZWwmIGFmdGVyQXNzaWdubWVudCkK
K3sKKyAgICBzd2l0Y2ggKG9wZXIpIHsKKyAgICBjYXNlIE9wZXJhdG9yOjpOdWxsaXNoRXE6Cisg
ICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElmRmFsc2UoZ2VuZXJhdG9yLmVtaXRJc1VuZGVmaW5l
ZE9yTnVsbChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHZhbHVlKSwgYWZ0ZXJBc3NpZ25tZW50
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE9wZXJhdG9yOjpPckVxOgorICAgICAgICBn
ZW5lcmF0b3IuZW1pdEp1bXBJZlRydWUodmFsdWUsIGFmdGVyQXNzaWdubWVudCk7CisgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBPcGVyYXRvcjo6QW5kRXE6CisgICAgICAgIGdlbmVyYXRvci5l
bWl0SnVtcElmRmFsc2UodmFsdWUsIGFmdGVyQXNzaWdubWVudCk7CisgICAgICAgIGJyZWFrOwor
CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorfQorCitSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgSlNUZXh0UG9zaXRpb24gbmV3RGl2b3QgPSBkaXZv
dFN0YXJ0KCkgKyBtX2lkZW50Lmxlbmd0aCgpOworCisgICAgVmFyaWFibGUgdmFyID0gZ2VuZXJh
dG9yLnZhcmlhYmxlKG1faWRlbnQpOworICAgIGJvb2wgaXNSZWFkT25seSA9IHZhci5pc1JlYWRP
bmx5KCk7CisKKyAgICBpZiAoUmVmUHRyPFJlZ2lzdGVySUQ+IGxvY2FsID0gdmFyLmxvY2FsKCkp
IHsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5KHZhciwgbG9jYWwu
Z2V0KCksIG51bGxwdHIpOworCisgICAgICAgIGlmIChpc1JlYWRPbmx5KSB7CisgICAgICAgICAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0ID0gbG9jYWw7CisKKyAgICAgICAgICAgIFJlZjxM
YWJlbD4gYWZ0ZXJBc3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgICAgICAg
ICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9v
cGVyYXRvciwgYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAgICAgICAgICAgcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXROb2RlKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7IC8vIEV4ZWN1dGUgc2lk
ZSBlZmZlY3RzIGZpcnN0LgorICAgICAgICAgICAgYm9vbCB0aHJld0V4Y2VwdGlvbiA9IGdlbmVy
YXRvci5lbWl0UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIpOworCisgICAgICAgICAgICBp
ZiAoIXRocmV3RXhjZXB0aW9uKQorICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmls
ZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworCisgICAgICAg
ICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAgICAg
ICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKGdlbmVyYXRvci5sZWZ0SGFuZFNpZGVOZWVkc0NvcHkobV9yaWdodEhh
c0Fzc2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSkpIHsKKyAgICAgICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRz
dCk7CisgICAgICAgICAgICBnZW5lcmF0b3IubW92ZShyZXN1bHQuZ2V0KCksIGxvY2FsLmdldCgp
KTsKKworICAgICAgICAgICAgUmVmPExhYmVsPiBhZnRlckFzc2lnbm1lbnQgPSBnZW5lcmF0b3Iu
bmV3TGFiZWwoKTsKKyAgICAgICAgICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVy
YXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOwor
CisgICAgICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGUocmVzdWx0LmdldCgpLCBt
X3JpZ2h0KTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5tb3ZlKGxvY2FsLmdldCgpLCByZXN1bHQu
Z2V0KCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQuZ2V0
KCksIHZhciwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKworICAgICAgICAgICAgZ2VuZXJh
dG9yLmVtaXRMYWJlbChhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJu
IGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKKyAgICAgICAgfQorCisgICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBsb2NhbDsKKworICAgICAgICBSZWY8TGFiZWw+
IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgICAgICBlbWl0U2hv
cnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwg
YWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1p
dE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9m
aWxlVHlwZShyZXN1bHQuZ2V0KCksIHZhciwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKwor
ICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAg
ICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgfQorCisg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhuZXdEaXZvdCwgZGl2b3RTdGFydCgpLCBu
ZXdEaXZvdCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRS
ZXNvbHZlU2NvcGUobnVsbHB0ciwgdmFyKTsKKworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1
bHQgPSBnZW5lcmF0b3IuZW1pdEdldEZyb21TY29wZShnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9u
KGRzdCksIHNjb3BlLmdldCgpLCB2YXIsIFRocm93SWZOb3RGb3VuZCk7CisgICAgZ2VuZXJhdG9y
LmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5KHZhciwgcmVzdWx0LmdldCgpLCBudWxscHRyKTsKKwor
ICAgIFJlZjxMYWJlbD4gYWZ0ZXJBc3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7Cisg
ICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1f
b3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBnZW5lcmF0
b3IuZW1pdE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsgLy8gRXhlY3V0ZSBzaWRlIGVmZmVj
dHMgZmlyc3QuCisKKyAgICBib29sIHRocmV3RXhjZXB0aW9uID0gaXNSZWFkT25seSA/IGdlbmVy
YXRvci5lbWl0UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIpIDogZmFsc2U7CisKKyAgICBp
ZiAoIXRocmV3RXhjZXB0aW9uKQorICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZv
KGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisKKyAgICBpZiAoIWlzUmVhZE9u
bHkpIHsKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRUb1Njb3BlKHNjb3BlLmdl
dCgpLCB2YXIsIHJlc3VsdC5nZXQoKSwgVGhyb3dJZk5vdEZvdW5kLCBJbml0aWFsaXphdGlvbk1v
ZGU6Ok5vdEluaXRpYWxpemF0aW9uKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlw
ZShyZXN1bHQuZ2V0KCksIHZhciwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICB9CisK
KyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAgcmV0
dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKworLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKIHN0YXRpYyBJbml0aWFsaXphdGlvbk1vZGUgaW5pdGlhbGl6
YXRpb25Nb2RlRm9yQXNzaWdubWVudENvbnRleHQoQXNzaWdubWVudENvbnRleHQgYXNzaWdubWVu
dENvbnRleHQpCiB7CiAgICAgc3dpdGNoIChhc3NpZ25tZW50Q29udGV4dCkgewpAQCAtMjg3Nyw4
ICsyOTgwLDYgQEAgc3RhdGljIEluaXRpYWxpemF0aW9uTW9kZSBpbml0aWFsaXphdGlvbk1vZGVG
b3JBc3NpZ25tZW50Q29udGV4dChBc3NpZ25tZW50Q29udGUKICAgICByZXR1cm4gSW5pdGlhbGl6
YXRpb25Nb2RlOjpOb3RJbml0aWFsaXphdGlvbjsKIH0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KIFJlZ2lzdGVySUQqIEFzc2lnblJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIFZh
cmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2lkZW50KTsKQEAgLTI5NzgsNiArMzA3
OSwzNyBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5RG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdAogICAgIHJldHVybiByZXQ7CiB9CiAKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90
Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBT
aG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBSZWZQdHI8UmVnaXN0ZXJJ
RD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2Jhc2UsIG1fcmln
aHRIYXNBc3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOworICAgIFJlZlB0
cjxSZWdpc3RlcklEPiB0aGlzVmFsdWU7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0
OworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3Qo
KSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7CisgICAgaWYgKG1f
YmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAgICAgICB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5z
dXJlVGhpcygpOworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJh
dG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1f
aWRlbnQpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5
SWQoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBtX2lkZW50KTsK
KworICAgIFJlZjxMYWJlbD4gYWZ0ZXJBc3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7
CisgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCks
IG1fb3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBnZW5l
cmF0b3IuZW1pdE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBnZW5lcmF0b3IuZW1p
dEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAg
aWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVt
aXRQdXRCeUlkKGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgbV9pZGVudCwgcmVzdWx0Lmdl
dCgpKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlJZChi
YXNlLmdldCgpLCBtX2lkZW50LCByZXN1bHQuZ2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRM
YWJlbChhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5
cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIHJldHVybiBn
ZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBBc3NpZ25FcnJvck5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAogUmVnaXN0ZXJJRCogQXNzaWduRXJyb3JOb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCopCkBAIC0zMDQyLDYgKzMx
NzQsMzggQEAgUmVnaXN0ZXJJRCogUmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmUKICAgICByZXR1cm4gdXBkYXRlZFZhbHVl
OwogfQogCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0UmVh
ZE1vZGlmeUJyYWNrZXROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K1JlZ2lzdGVySUQqIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZTo6ZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5k
U2lkZShtX2Jhc2UsIG1fc3Vic2NyaXB0SGFzQXNzaWdubWVudHMgfHwgbV9yaWdodEhhc0Fzc2ln
bm1lbnRzLCBtX3N1YnNjcmlwdC0+aXNQdXJlKGdlbmVyYXRvcikgJiYgbV9yaWdodC0+aXNQdXJl
KGdlbmVyYXRvcikpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eSA9IGdlbmVyYXRv
ci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZUZvclByb3BlcnR5KG1fc3Vic2NyaXB0LCBtX3JpZ2h0
SGFzQXNzaWdubWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gdGhpc1ZhbHVlOworCisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdDsK
KworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oc3ViZXhwcmVzc2lvbkRpdm90KCks
IHN1YmV4cHJlc3Npb25TdGFydCgpLCBzdWJleHByZXNzaW9uRW5kKCkpOworICAgIGlmIChtX2Jh
c2UtPmlzU3VwZXJOb2RlKCkpIHsKKyAgICAgICAgdGhpc1ZhbHVlID0gZ2VuZXJhdG9yLmVuc3Vy
ZVRoaXMoKTsKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0
b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgcHJv
cGVydHkuZ2V0KCkpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1p
dEdldEJ5VmFsKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgcHJv
cGVydHkuZ2V0KCkpOworCisgICAgUmVmPExhYmVsPiBhZnRlckFzc2lnbm1lbnQgPSBnZW5lcmF0
b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3Is
IHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAg
IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZShyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAg
IGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZv
dEVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKQorICAgICAgICByZXN1bHQg
PSBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgcHJv
cGVydHkuZ2V0KCksIHJlc3VsdC5nZXQoKSk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBn
ZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGJhc2UuZ2V0KCksIHByb3BlcnR5LmdldCgpLCByZXN1bHQu
Z2V0KCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChhZnRlckFzc2lnbm1lbnQuZ2V0KCkp
OworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0
KCksIGRpdm90RW5kKCkpOworICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5n
ZXQoKSk7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb21tYU5vZGUg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJlZ2lzdGVySUQqIENvbW1h
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVp
bGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXgg
NDNiMTcxZmJjNGU3YjM1OWRiZTY4MjdmYTVkYzViODVhODllYmZjMC4uNWUzNTNiZDE3NjNkOWUy
Zjc0ZDM2NDI0NGEwYjBkYWRkMjI1ODJiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9BU1RCdWlsZGVyLmgKQEAgLTE1NDgsNiArMTU0OCw3IEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RC
dWlsZGVyOjptYWtlQXNzaWduTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBF
eHByCiAKICAgICBpZiAobG9jLT5pc1Jlc29sdmVOb2RlKCkpIHsKICAgICAgICAgUmVzb2x2ZU5v
ZGUqIHJlc29sdmUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSo+KGxvYyk7CisKICAgICAgICAg
aWYgKG9wID09IE9wZXJhdG9yOjpFcXVhbCkgewogICAgICAgICAgICAgaWYgKGV4cHItPmlzQmFz
ZUZ1bmNFeHByTm9kZSgpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBtZXRhZGF0YSA9IHN0YXRp
Y19jYXN0PEJhc2VGdW5jRXhwck5vZGUqPihleHByKS0+bWV0YWRhdGEoKTsKQEAgLTE1NTgsMjEg
KzE1NTksNDIgQEAgRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VBc3NpZ25Ob2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHIKICAgICAgICAgICAgIHNldEV4Y2Vw
dGlvbkxvY2F0aW9uKG5vZGUsIHN0YXJ0LCBkaXZvdCwgZW5kKTsKICAgICAgICAgICAgIHJldHVy
biBub2RlOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpOdWxsaXNo
RXEgfHwgb3AgPT0gT3BlcmF0b3I6Ok9yRXEgfHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVxKQorICAg
ICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlm
eVJlc29sdmVOb2RlKGxvY2F0aW9uLCByZXNvbHZlLT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBl
eHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKKwogICAgICAgICByZXR1cm4g
bmV3IChtX3BhcnNlckFyZW5hKSBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUobG9jYXRpb24sIHJlc29s
dmUtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0
YXJ0LCBlbmQpOwogICAgIH0KKwogICAgIGlmIChsb2MtPmlzQnJhY2tldEFjY2Vzc29yTm9kZSgp
KSB7CiAgICAgICAgIEJyYWNrZXRBY2Nlc3Nvck5vZGUqIGJyYWNrZXQgPSBzdGF0aWNfY2FzdDxC
cmFja2V0QWNjZXNzb3JOb2RlKj4obG9jKTsKKwogICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6
OkVxdWFsKQogICAgICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXNzaWduQnJh
Y2tldE5vZGUobG9jYXRpb24sIGJyYWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCks
IGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGJyYWNrZXQtPmRp
dm90KCksIHN0YXJ0LCBlbmQpOworCisgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TnVsbGlz
aEVxIHx8IG9wID09IE9wZXJhdG9yOjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkgewor
ICAgICAgICAgICAgYXV0byogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0
UmVhZE1vZGlmeUJyYWNrZXROb2RlKGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQt
PnN1YnNjcmlwdCgpLCBvcCwgZXhwciwgbG9jSGFzQXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25t
ZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVz
c2lvbkluZm8oYnJhY2tldC0+ZGl2b3QoKSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOwor
ICAgICAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgICAgIH0KKwogICAgICAgICBSZWFkTW9kaWZ5
QnJhY2tldE5vZGUqIG5vZGUgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIFJlYWRNb2RpZnlCcmFja2V0
Tm9kZShsb2NhdGlvbiwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3As
IGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFy
dCwgZW5kKTsKICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2
b3QoKSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOwogICAgICAgICByZXR1cm4gbm9kZTsK
ICAgICB9CisKICAgICBBU1NFUlQobG9jLT5pc0RvdEFjY2Vzc29yTm9kZSgpKTsKICAgICBEb3RB
Y2Nlc3Nvck5vZGUqIGRvdCA9IHN0YXRpY19jYXN0PERvdEFjY2Vzc29yTm9kZSo+KGxvYyk7CisK
ICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkVxdWFsKQogICAgICAgICByZXR1cm4gbmV3IChtX3Bh
cnNlckFyZW5hKSBBc3NpZ25Eb3ROb2RlKGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90LT5pZGVu
dGlmaWVyKCksIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZG90LT5kaXZvdCgpLCBzdGFydCwg
ZW5kKTsKIAorICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJh
dG9yOjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkgeworICAgICAgICBhdXRvKiBub2Rl
ID0gbmV3IChtX3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShsb2Nh
dGlvbiwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fz
c2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CisgICAgICAgIG5vZGUtPnNldFN1YmV4cHJl
c3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5kaXZvdEVuZCgpLm9mZnNldCk7CisgICAgICAg
IHJldHVybiBub2RlOworICAgIH0KKwogICAgIFJlYWRNb2RpZnlEb3ROb2RlKiBub2RlID0gbmV3
IChtX3BhcnNlckFyZW5hKSBSZWFkTW9kaWZ5RG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCks
IGRvdC0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwg
c3RhcnQsIGVuZCk7CiAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oZG90LT5kaXZvdCgp
LCBkb3QtPmRpdm90RW5kKCkub2Zmc2V0KTsKICAgICByZXR1cm4gbm9kZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9MZXhlci5jcHAKaW5kZXggNGZiODNjYTNhMGE3YzhhYTk5MmQyMDI5ZTkw
OWEwMzJjMTVkOTAwNi4uYmFlNWY2ZjgzOTI5YjA4NTY4NTMzYTgyZjIxNjQzOTM3ODNiMjJkOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTIwODYsNiArMjA4Niwx
MSBAQCBzdGFydDoKICAgICAgICAgc2hpZnQoKTsKICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAn
JicpIHsKICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0
aW9uczo6dXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0n
KSkgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBB
TkRFUVVBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHRva2VuID0gQU5EOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxMjMs
NiArMjEyOCwxMSBAQCBzdGFydDoKICAgICAgICAgfQogICAgICAgICBpZiAobV9jdXJyZW50ID09
ICd8JykgewogICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShP
cHRpb25zOjp1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9PSAn
PScpKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9
IE9SRVFVQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB0b2tlbiA9IE9SOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxNTks
NiArMjE2OSwxMSBAQCBzdGFydDoKICAgICAgICAgc2hpZnQoKTsKICAgICAgICAgaWYgKG1fY3Vy
cmVudCA9PSAnPycpIHsKICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoVU5M
SUtFTFkoT3B0aW9uczo6dXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJl
bnQgPT0gJz0nKSkgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAg
dG9rZW4gPSBOVUxMSVNIRVFVQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB0b2tlbiA9IENPQUxFU0NFOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNv
bnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0
b3JzLmgKaW5kZXggZmQ5N2EwY2E5MzVlN2U1Nzc4YTA5Mzg1MDIyZjk4Njc4MDE0YTMyNC4uOWQ1
ZjkzMWU3MmY2YTVlODUyNWQwNjI0M2IxM2FhZGExOTRiYTFhMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTcxOCw2ICs3MTgsMTYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dCwgT3BlcmF0b3Igb3BlciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNz
aWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKKyAgICAgICAg
OiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9u
RGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisgICAgICAgICwgbV9pZGVudChpZGVu
dCkKKyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikK
KyAgICAgICAgLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAg
ICB7CisgICAgfQorCiAgICAgaW5saW5lIEFzc2lnblJlc29sdmVOb2RlOjpBc3NpZ25SZXNvbHZl
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBp
ZGVudCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBBc3NpZ25tZW50Q29udGV4dCBhc3NpZ25tZW50
Q29udGV4dCkKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBt
X2lkZW50KGlkZW50KQpAQCAtNzM5LDYgKzc0OSwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7
CiAgICAgfQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZTo6
U2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYg
bG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0
LCBPcGVyYXRvciBvcGVyLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFz
QXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQor
ICAgICAgICAsIFRocm93YWJsZVN1YkV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBk
aXZvdEVuZCkKKyAgICAgICAgLCBtX2Jhc2UoYmFzZSkKKyAgICAgICAgLCBtX3N1YnNjcmlwdChz
dWJzY3JpcHQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICAgICAgLCBtX29wZXJhdG9y
KG9wZXIpCisgICAgICAgICwgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyhzdWJzY3JpcHRIYXNB
c3NpZ25tZW50cykKKyAgICAgICAgLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3Np
Z25tZW50cykKKyAgICB7CisgICAgfQorCiAgICAgaW5saW5lIEFzc2lnbkJyYWNrZXROb2RlOjpB
c3NpZ25CcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNz
aW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhwcmVzc2lvbk5vZGUq
IHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdu
bWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKICAgICAgICAgOiBF
eHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9uRGF0
YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCkBAIC03NzEsNiArNzkzLDE3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeURvdE5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0
SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKKyAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2FibGVTdWJF
eHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisgICAgICAgICwgbV9i
YXNlKGJhc2UpCisgICAgICAgICwgbV9pZGVudChpZGVudCkKKyAgICAgICAgLCBtX3JpZ2h0KHJp
Z2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3JpZ2h0SGFzQXNz
aWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7CisgICAgfQorCiAgICAgaW5saW5l
IEFzc2lnbkVycm9yTm9kZTo6QXNzaWduRXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYg
bG9jYXRpb24sIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKICAgICAgICAg
OiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9u
RGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKaW5kZXggMjJkZjVhZTRkMDhlNTg2ZTc4ZjhiMzliMmJiZjVhNjhmZjE4ZTY1ZC4u
YjUxNTYwNGE2OGFhNmJlNDM4ZjRkZmU3OWFiNGE4MDQyYzhhZmQ4YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtNjgsNiArNjgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgQml0T3JFcSwKICAgICAgICAgTW9kRXEsCiAgICAgICAgIFBvd0VxLAorICAgICAgICBO
dWxsaXNoRXEsCisgICAgICAgIE9yRXEsCisgICAgICAgIEFuZEVxLAogICAgICAgICBMU2hpZnQs
CiAgICAgICAgIFJTaGlmdCwKICAgICAgICAgVVJTaGlmdApAQCAtMTM4OSw2ICsxMzkyLDE5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50czsKICAg
ICB9OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlIGZpbmFs
IDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEg
eworICAgIHB1YmxpYzoKKyAgICAgICAgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2Rl
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRvciwgRXhw
cmVzc2lvbk5vZGUqICByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAw
KSBvdmVycmlkZTsKKworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OworICAgICAg
ICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAgICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsK
KyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHM7CisgICAgfTsKKwogICAgIGNsYXNz
IEFzc2lnblJlc29sdmVOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMg
VGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduUmVz
b2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJl
c3Npb25Ob2RlKiByaWdodCwgQXNzaWdubWVudENvbnRleHQpOwpAQCAtMTQxOCw2ICsxNDM0LDIx
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50cyA6
IDE7CiAgICAgfTsKIAorICAgIGNsYXNzIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9k
ZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZVN1YkV4cHJl
c3Npb25EYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlC
cmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwg
RXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdo
dCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRz
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworCisgICAgcHJpdmF0ZToK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNl
OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9zdWJzY3JpcHQ7CisgICAgICAgIEV4cHJlc3Np
b25Ob2RlKiBtX3JpZ2h0OworICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBi
b29sIG1fc3Vic2NyaXB0SGFzQXNzaWdubWVudHMgOiAxOworICAgICAgICBib29sIG1fcmlnaHRI
YXNBc3NpZ25tZW50cyA6IDE7CisgICAgfTsKKwogICAgIGNsYXNzIEFzc2lnbkJyYWNrZXROb2Rl
IGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lv
bkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduQnJhY2tldE5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJz
Y3JpcHQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50
cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3Qs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RFbmQpOwpAQCAtMTQ1OSw2ICsxNDkwLDIwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50cyA6IDE7CiAgICAgfTsKIAorICAgIGNsYXNzIFNo
b3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2Rl
LCBwdWJsaWMgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
RXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRvciwgRXhwcmVz
c2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92
ZXJyaWRlOworCisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CisgICAgICAgIGNvbnN0
IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0Owor
ICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBib29sIG1fcmlnaHRIYXNBc3Np
Z25tZW50cyA6IDE7CisgICAgfTsKKwogICAgIGNsYXNzIEFzc2lnbkVycm9yTm9kZSBmaW5hbCA6
IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2lnbkVycm9yTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGRkMjUxZjdhYmU3NWJmYmNlMGEzOWI4YzBl
ZWY1NWIyZDQxYmY3MDkuLjk3Njc1N2JkNDk0ZGZhOTBiYmQwMjhmNzNkYzY5M2EzNTA0OTJjMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTM4NDcsNyArMzg0
Nyw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFy
c2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAKICAgICBmYWlsSWZGYWxzZShsaHMsICJD
YW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwogICAgIGlmIChpbml0aWFsTm9uTEhTQ291bnQgIT0g
bV9wYXJzZXJTdGF0ZS5ub25MSFNDb3VudCkgewotICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUg
Pj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQklUT1JFUVVBTCkKKyAgICAgICAgaWYgKG1f
dG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90eXBlIDw9IEFOREVRVUFMKQogICAg
ICAgICAgICAgc2VtYW50aWNGYWlsKCJMZWZ0IGhhbmQgc2lkZSBvZiBvcGVyYXRvciAnIiwgZ2V0
VG9rZW4oKSwgIicgbXVzdCBiZSBhIHJlZmVyZW5jZSIpOwogCiAgICAgICAgIHJldHVybiBsaHM7
CkBAIC0zODcxLDYgKzM4NzEsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRy
ZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1lbgogICAgICAgICBj
YXNlIEJJVE9SRVFVQUw6IG9wID0gT3BlcmF0b3I6OkJpdE9yRXE7IGJyZWFrOwogICAgICAgICBj
YXNlIE1PREVRVUFMOiBvcCA9IE9wZXJhdG9yOjpNb2RFcTsgYnJlYWs7CiAgICAgICAgIGNhc2Ug
UE9XRVFVQUw6IG9wID0gT3BlcmF0b3I6OlBvd0VxOyBicmVhazsKKyAgICAgICAgY2FzZSBOVUxM
SVNIRVFVQUw6IG9wID0gT3BlcmF0b3I6Ok51bGxpc2hFcTsgYnJlYWs7CisgICAgICAgIGNhc2Ug
T1JFUVVBTDogb3AgPSBPcGVyYXRvcjo6T3JFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgQU5ERVFV
QUw6IG9wID0gT3BlcmF0b3I6OkFuZEVxOyBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIGdvdG8gZW5kOwogICAgICAgICB9CkBAIC0zODkwLDcgKzM4OTMsNyBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+
OjpwYXJzZUFzc2lnbm1lbgogICAgICAgICBsaHMgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9u
KGNvbnRleHQpOwogICAgICAgICBmYWlsSWZGYWxzZShsaHMsICJDYW5ub3QgcGFyc2UgdGhlIHJp
Z2h0IGhhbmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGV4cHJlc3Npb24iKTsKICAgICAgICAgaWYg
KGluaXRpYWxOb25MSFNDb3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAg
ICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0g
QklUT1JFUVVBTCkKKyAgICAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBt
X3Rva2VuLm1fdHlwZSA8PSBBTkRFUVVBTCkKICAgICAgICAgICAgICAgICBzZW1hbnRpY0ZhaWwo
IkxlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAiJyBtdXN0IGJlIGEg
cmVmZXJlbmNlIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggNDgxODFhZTBkNGI5MzM4OTRm
OGU0ZjJiZGZkYjYyZTgxMzgzZDJjNS4uZDFjNDdlZmUyY2ZiYTQzY2M4YzZmZjAwYWYyZTk4MjRj
YWVjNjk0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJU
b2tlbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5o
CkBAIC0xMzQsNiArMTM0LDkgQEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgQklUQU5ERVFVQUws
CiAgICAgQklUWE9SRVFVQUwsCiAgICAgQklUT1JFUVVBTCwKKyAgICBOVUxMSVNIRVFVQUwsCisg
ICAgT1JFUVVBTCwKKyAgICBBTkRFUVVBTCwKICAgICBET1RET1RET1QsCiAgICAgQVJST1dGVU5D
VElPTiwKICAgICBRVUVTVElPTkRPVCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zTGlzdC5oCmluZGV4IDk5Njk0ZDAxMjdiYWUxY2VhNWNmNjNmYTljZGQ5NzcwMDBjYjdh
YTQuLmMyOGJmYzM0YmZlODBmNzYzNGE0MGUxZjM4ZDAyOTdiNmE3MGQ3MWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtNTAwLDYgKzUwMCw3IEBA
IGNvbnN0ZXhwciBib29sIGVuYWJsZVdlYkFzc2VtYmx5U3RyZWFtaW5nQXBpID0gZmFsc2U7CiAg
ICAgdihCb29sLCBmb3JjZU9TUkV4aXRUb0xMSW50LCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwg
d2UgYWx3YXlzIGV4aXQgdG8gdGhlIExMSW50LiBJZiBmYWxzZSwgd2UgZXhpdCB0byB3aGF0ZXZl
ciBpcyBtb3N0IGNvbnZlbmllbnQuIikgXAogICAgIHYoVW5zaWduZWQsIGdldEJ5VmFsSUNNYXhO
dW1iZXJPZklkZW50aWZpZXJzLCA0LCBOb3JtYWwsICJOdW1iZXIgb2YgaWRlbnRpZmllcnMgd2Ug
c2VlIGluIHRoZSBMTEludCB0aGF0IGNvdWxkIGNhdXNlIHVzIHRvIGJhaWwgb24gZ2VuZXJhdGlu
ZyBhbiBJQyBmb3IgZ2V0X2J5X3ZhbC4iKSBcCiAgICAgdihCb29sLCB1c2VQdWJsaWNDbGFzc0Zp
ZWxkcywgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgdGhlIHBhcnNlciB3aWxsIHVuZGVyc3RhbmQg
cHVibGljIGRhdGEgZmllbGRzIGluc2lkZSBjbGFzc2VzLiIpIFwKKyAgICB2KEJvb2wsIHVzZUxv
Z2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzLCBmYWxzZSwgTm9ybWFsLCAiRW5hYmxlIHN1cHBvcnQg
Zm9yIFw/XD89LCB8fD0sIGFuZCAmJj0gbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycy4iKSBc
CiAgICAgdihCb29sLCB1c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uLCBm
YWxzZSwgTm9ybWFsLCAiRm9yIHRoZSBhcm02NCBFeGVjdXRhYmxlQWxsb2NhdG9yLCBpZiB0cnVl
LCBzZWxlY3Qgd2hpY2ggcmVnaW9uIHRvIHVzZSByYW5kb21seS4gVGhpcyBpcyB1c2VmdWwgZm9y
IHRlc3RpbmcgdGhhdCBqdW1wIGlzbGFuZHMgd29yay4iKSBcCiAKIGVudW0gT3B0aW9uRXF1aXZh
bGVuY2UgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGEzMTI2MjlkMzI4NTBmYjY4NjJmYzJjZTEyZWE1ZTY5N2MyMGExYzcuLmI2OWI1YzQzOTkw
YmFkMDkzYzdiMWMwYmExYWM1NTVmNTg5OWJkYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNC0xNCAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW0VTTmV4dF0gSW1wbGVt
ZW50IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoK
KwogMjAyMC0wNC0xNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVu
LWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggN2JkYTYxNzdkNjQwMDljMjY1YmM3YzQwODcxYTMwZjc0
NDdkNTE2Yi4uYzRlMDhmMGZmNGY2ZGJiYTc4MTNmYWFjOWU4NzE2M2FmYmM4MDQ3NyAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cworKysgYi9Ub29scy9TY3Jp
cHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBAIC03ODcsNiArNzg3LDEwIEBAIGRlZiBydW5NaW5p
TW9kZSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJ1bigibWluaS1tb2RlIiwg
Ii0tZm9yY2VNaW5pVk1Nb2RlPXRydWUiLCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQog
ZW5kCiAKK2RlZiBydW5Mb2dpY2FsQXNzaWdubWVudE9wZXJhdG9yc0VuYWJsZWQoKm9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykKKyAgICBydW4oImxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRv
cnMtZW5hYmxlZCIsICItLXVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzPXRydWUiICwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCitlbmQKKwogZGVmIGRl
ZmF1bHRSdW4KICAgICBpZiAkbW9kZSA9PSAicXVpY2siCiAgICAgICAgIGRlZmF1bHRRdWlja1J1
bgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCA5ZGM5ODljNTViNDM0ZWZmNmZkM2VmNGRhM2E1MjNjN2ZkNTczYWIyLi4xOTQ0N2FiMDY5ZGNj
ZGI5YzRjM2MwNTI5YThmZTEyMDFmYWM3M2E0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA0LTE0ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBs
ZW1lbnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9w
ZXJhdG9yLWFuZC5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVu
dC1vcGVyYXRvci1udWxsaXNoLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1h
c3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzOiBBZGRlZC4KKworICAgICAgICAqIHRlc3QyNjIvY29u
ZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKyAgICAgICAg
UmlnaHQgbm93LCB0ZXN0MjYyIGV4cGVjdHMgYW4gZWFybHkgZXJyb3IgdG8gYmUgdGhyb3duIGlm
IHRoZSBsaHMgaXMgbm90IHNpbXBsZSwgd2hpY2ggZG9lcworICAgICAgICBub3QgbWF0Y2ggd2hh
dCB3ZSBkbyB3aXRoIG90aGVyIHJlYWQtbW9kaWZ5IGFzc2lnbm1lbnQgb3BlcmF0b3JzLiBUaGlz
IGlzIGxpa2VseSB0byBjaGFuZ2UKKyAgICAgICAgaW4gdGhlIGZ1dHVyZSB0byBtYXRjaCBleGlz
dGluZyBiZWhhdmlvciAodGhyb3cgYSBgUmVmZXJlbmNlRXJyb3JgKSBbMV0uCisKKyAgICAgICAg
WzFdOiA8aHR0cHM6Ly9naXRodWIuY29tL3RjMzkvZWNtYTI2Mi9pc3N1ZXMvMjU3I2lzc3VlY29t
bWVudC01MDI4Nzg3MDg+CisKIDIwMjAtMDQtMTQgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2tpcCBhbGwgbG93IGV4ZWN1dGFibGUgbWVtb3J5IHdhc20gdGVz
dHMgb24gYXJtNjQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVu
dC1vcGVyYXRvci1hbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3Bl
cmF0b3ItYW5kLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NzU3YTU0OWM2MTVlMzE2NmQxNDMwZWJmM2M4MWY2
OTA4YmIwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2ln
bm1lbnQtb3BlcmF0b3ItYW5kLmpzCkBAIC0wLDAgKzEsMTY4NCBAQAorLy9AIHJ1bkxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlvbiBzaG91bGRCZShmdW5jLCBleHBl
Y3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBmdW5jKCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3Rl
ZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFs
ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04u
c3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxldCBl
cnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJv
clR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5h
bWV9IGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworZnVuY3Rpb24gc2hv
dWxkVGhyb3dTeW50YXhFcnJvcihzY3JpcHQpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsK
KyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3Ig
PSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFN5bnRheEVycm9yIGJ1dCBzYXcgJHtl
cnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHg7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9
LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVm
aW5lZDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIHggJiY9IDQyOworICAgIHJldHVy
biB4OworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1
ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1
cm4geCAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICByZXR1cm4geCAmJj0g
NDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAg
IHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1
cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsK
KyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOworICAgIHJldHVybiB4
ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAi
dGVzdCI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHggJiY9
IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IFtdOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4g
eDsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1
bmRlZmluZWQ7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBudWxsOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIG51bGwpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIG51bGwpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJu
IHggJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHJldHVybiB4ICYm
PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsK
KyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDApOworCitzaG91bGRUaHJvdyhmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBl
RXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAg
cmV0dXJuIHggJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3No
b3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVzdCI7CisgICAgcmV0dXJu
IHggJiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisK
K3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4g
eCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hICYmPSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVu
ZGVmaW5lZH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVk
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAg
cmV0dXJuIHguYSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOwor
fSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9
OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZh
bHNlfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSAmJj0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeC5hICYmPSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IDF9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVy
biB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
InRlc3QifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgJiY9IDQyOworICAg
IHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHguYSAmJj0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogW119OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeC5hICYmPSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHt9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHguYSAmJj0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
dW5kZWZpbmVkfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmlu
ZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9Owor
ICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hICYmPSA0MjsKKyAg
ICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5h
ICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwg
MCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAg
eC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAg
eC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30s
ICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07Cisg
ICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgIiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSAmJj0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
InRlc3QifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJldHVybiB4
LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHt9fTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVy
biB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVy
biB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAg
ICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4g
eFsiYSJdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1
ZX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeFsi
YSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0
MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsK
KyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHhbImEiXSAm
Jj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IDF9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4
WyJhIl0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAiIn07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9Owor
ICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YToge319OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdICYmPSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9
LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307
CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdW5kZWZpbmVkKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9Owor
ICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0g
NDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiBudWxsfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBudWxs
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAg
ICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVy
biB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJh
Il0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0g
NDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAw
fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsi
YSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiAxfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAg
IHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319Owor
ICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEi
XSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogW119OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQy
KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0
dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVm
aW5lZF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdICYmPSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIG51
bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICB4
WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAg
IHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOwor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07
CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdICYmPSA0
MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAg
ICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgeFswXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgeFswXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICB4WzBdICYmPSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgeFswXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gJiY9
IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
dW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxs
XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW3RydWVdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAg
ICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdICYm
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCAwKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICB4WzBdICYm
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gWzFdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsxXTsKKyAgICB4WzBdICYmPSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdICYmPSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHhb
MF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhb
MF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAgIHhb
MF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ICYmPSB5ID0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmIHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6
ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHwgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0
IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmPSB6OworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBs
ZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz89IHo7Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSB8fD0gejsKK30sIGZhbHNlKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIDMpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgJiYgejsKK30sIDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOwor
ICAgIHJldHVybiB4ICYmPSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggJiY9IHkgJiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggJiY9IHkgPz89IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJu
IHggJiY9IHkgfHw9IHo7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICBy
ZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKwor
ICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigi
ICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCBzZXQgNDIiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBs
ZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7
CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAg
IH0sCisgICAgfTsKKworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJl
dHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IGZhbHNlIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5k
ZWZpbmVkOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBh
ID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQg
dW5kZWZpbmVkIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7Cisg
ICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQi
KTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSAr
ICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgc2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHgg
PSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAg
ICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAor
ICAgIH07CisKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVu
ZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAg
YSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsi
YSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJn
ZXQgZ2V0IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAg
ICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBz
dXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEgJiY9IHY7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4
LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSAr
ICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBz
ZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBb
XTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAg
ICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFy
ZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAg
IGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsK
KyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hICYmPSB2OworICAgICAgICB9CisgICAgfQor
CisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHguYSAmJj0g
NDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsg
eC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxz
ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBj
bGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJn
ZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAg
ICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAg
ICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGls
ZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1
c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0K
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOwor
ICAgICAgICAgICAgc3VwZXIuYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4
ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeC5hICYmPSA0MjsKKyAg
ICB4LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOwor
fSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIp
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAg
Y2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
Z2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAg
ICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hp
bGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAg
ICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQi
KTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gJiY9IDQy
OworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFy
ZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKwor
ICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1
c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9
CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7
CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNz
IENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNo
aWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdICYmPSB2OworICAgICAgICB9CisgICAgfQor
CisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHhbImEiXSAm
Jj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsg
IiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVu
dCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisK
KyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAg
fQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIp
OworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFz
cyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1j
aGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsi
YSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIg
IikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQt
cGFyZW50IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJu
IHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1
ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4g
eC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRUaHJvdyhmdW5j
dGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3
cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBUeXBl
RXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJl
dHVybiB4LmEgJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxl
OiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAg
ICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOwor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5l
ZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0g
JiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgewor
ICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIFR5cGVFcnJvcik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhb
ImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1
c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4
LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZh
bHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICAoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHggJiY9IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAg
cmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggJiY9IDQyOworICAgIH0pKCk7
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZp
bmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ICYmPSA0MjsK
KyAgICB9KSgpOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCAmJj0g
NDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9u
KCkgeworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1
cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30s
IHVuZGVmaW5lZCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQg
PSAwOworCisgICAgY29uc3QgeCA9IHRydWU7CisgICAgdHJ5IHsKKyAgICAgICAgeCAmJj0gKytj
b3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0g
ZmFsc2U7CisgICAgeCAmJj0gKytjb3VudDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3Qg
eCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50Owor
fSwgMCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOwor
CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHg7
IH0KKworICAgIHRyeSB7CisgICAgICAgIHggJiY9ICsrY291bnQ7CisgICAgfSBjYXRjaCB7IH0K
KworICAgIHJldHVybiBjb3VudDsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIGZ1bmN0aW9uIGNh
cHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJu
IGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9
IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7
IHJldHVybiB4OyB9CisKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50Owor
fSwgMCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICB4ICYmPSA0MjsKKyAg
ICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHg7Cit9LCBSZWZlcmVuY2VFcnJvcik7CisKKwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdW5kZWZpbmVkICYmPSA0MjsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYG51bGwgJiY9IDQyYCk7CisK
K3Nob3VsZFRocm93U3ludGF4RXJyb3IoYHRydWUgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3lu
dGF4RXJyb3IoYGZhbHNlICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAwICYm
PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAxICYmPSA0MmApOworCitzaG91bGRU
aHJvd1N5bnRheEVycm9yKGAiIiAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihg
InRlc3QiICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB7fSAmJj0gNDJgKTsK
Kworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgW10gJiY9IDQyYCk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qcyBiL0pTVGVz
dHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1udWxsaXNoLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY5NDY1Y2M4NWRiMDFlMjIyMzYzYzJlMGEyYmI1NjI2Y2U5ZGJjN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlz
aC5qcwpAQCAtMCwwICsxLDE2OTkgQEAKKy8vQCBydW5Mb2dpY2FsQXNzaWdubWVudE9wZXJhdG9y
c0VuYWJsZWQKKworZnVuY3Rpb24gc2hvdWxkQmUoZnVuYywgZXhwZWN0ZWQpIHsKKyAgICBsZXQg
YWN0dWFsID0gZnVuYygpOworICAgIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT09ICJmdW5jdGlvbiIg
PyAhKGFjdHVhbCBpbnN0YW5jZW9mIGV4cGVjdGVkKSA6IGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShleHBlY3Rl
ZCl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShhY3R1YWwpfWApOworfQorCitmdW5jdGlvbiBz
aG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsK
KyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOwor
ICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgZXJyb3JUeXBlKSkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlwZS5uYW1lfSBidXQgc2F3ICR7ZXJy
b3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93U3ludGF4RXJy
b3Ioc2NyaXB0KSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2Ny
aXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAg
ICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKGBFeHBlY3RlZCBTeW50YXhFcnJvciBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3IubmFt
ZX0hYCk7Cit9CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4OworICAgIHJldHVy
biB4ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7
CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiB4ID8/PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7Cisg
ICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICB4ID8/PSA0MjsK
KyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB0cnVlOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJu
IHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxz
ZTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICBy
ZXR1cm4geCA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSAwOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAxOworICAgIHggPz89IDQy
OworICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gIiI7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4Owor
fSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAg
ICByZXR1cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sICJ0
ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0
dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIE9iamVjdCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHggPz89
IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtd
OworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgQXJyYXkpOworCisKKworc2hvdWxk
VGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4g
eCA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4g
eCA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHRydWU7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiB4ID8/
PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IGZhbHNlOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICByZXR1cm4geCA/Pz0gNDI7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDA7CisgICAg
eCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IDE7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgMSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOworICAgIHggPz89IDQyOworICAgIHJl
dHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAi
IjsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSAiIjsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICBy
ZXR1cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCA/
Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge307CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIEFy
cmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJl
dHVybiB4ID8/PSA0MjsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hID8/PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSA/
Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHgu
YSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07Cisg
ICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hID8/PSA0
MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
ZmFsc2V9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHgu
YSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogMH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgPz89
IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9
OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7
Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsK
KyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSA/Pz0g
NDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAidGVzdCJ9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICJ0ZXN0Iik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICByZXR1
cm4geC5hID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBP
YmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07Cisg
ICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e307CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5k
ZWZpbmVkfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSA/Pz0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4LmEg
Pz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsK
KyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHguYSA/
Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogZmFsc2V9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICBy
ZXR1cm4geC5hID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IDB9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDAp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHJl
dHVybiB4LmEgPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogMX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJl
dHVybiB4LmEgPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6ICIifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAi
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsK
KyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHguYSA/Pz0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgQXJy
YXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAg
ICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geFsi
YSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9
OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSA/
Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZh
bHNlfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHJldHVy
biB4WyJhIl0gPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IDB9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30s
IDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICBy
ZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9Owor
ICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgInRlc3QiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0g
Pz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7
Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7
fX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgT2JqZWN0KTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHJldHVy
biB4WyJhIl0gPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiBbXX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHt9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAg
ICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEi
XSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogbnVsbH07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9Owor
ICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAg
ICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEi
XSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiAwfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1
cm4geFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IDF9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsK
KyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAidGVzdCIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAg
eFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEi
XSA/Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IHt9fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtd
fTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgeFswXSA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0g
Pz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHhbMF0g
Pz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgeFsw
XSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30s
IGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOwor
ICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07CisgICAg
eFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0gPz89
IDQyOworICAgIHJldHVybiB4WzBdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gWyIiXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAgICB4WzBdID8/PSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBbInRlc3QiXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAidGVzdCIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0g
Pz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIE9i
amVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICB4
WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9
LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAg
ICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSA/Pz0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsK
KyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHJldHVybiB4WzBd
ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFt1bmRlZmluZWRdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAgIHJl
dHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFtudWxsXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAg
ICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2Zh
bHNlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOworICAgIHhbMF0gPz89IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDApOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOworICAgIHhbMF0gPz89IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFsiIl07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAgICB4WzBdID8/PSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIE9iamVj
dCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhb
MF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOwor
fSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsK
KyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOwor
ICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSArIHo7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOwor
ICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSA9IHo7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOwor
ICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJiB6OworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz8gejsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5IHx8IHo7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAx
OworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJj0gejsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9
IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ID8/PSB6OworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5
ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgfHw9IHo7Cit9LCBmYWxz
ZSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAg
bGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSArIHo7Cit9LCAz
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5
ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPSB6OworfSwgMik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ICYmIHo7Cit9LCAyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAg
ICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz8gejsKK30sIDEpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSB8fCB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ID8/PSB5ICYmPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ID8/PSB5ID8/PSB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOwor
ICAgIHJldHVybiB4ID8/PSB5IHx8PSB6OworfSwgMSk7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHgg
PSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAg
ICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAor
ICAgIH07CisKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4g
bG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCB0cnVlIik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7Cisg
ICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdl
dCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAg
ICAgICB9LAorICAgIH07CisKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAg
ICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9
IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAg
ICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSA/Pz0gNDI7CisgICAgeC5h
ID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQg
c2V0IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOwor
ICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJd
ID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikg
KyAiICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0gewor
ICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAg
ICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9
OworCisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJu
IGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgZmFsc2UiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB1bmRlZmlu
ZWQ7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1
c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2
OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/
Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNl
dCBnZXQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBb
XTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAg
ICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFy
ZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAg
IGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsK
KyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hID8/PSB2OworICAgICAgICB9CisgICAgfQor
CisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRydWU7CisgICAgeC5hID8/PSA0
MjsKKyAgICB4LmEgPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4
Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHRydWUi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xh
c3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAg
ICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQg
ZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9Cisg
ICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAg
ICAgICAgICAgIHN1cGVyLmEgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9
IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gZmFsc2U7CisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEg
Pz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdl
dC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlz
Ll9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFy
ZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxk
Iik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBz
dXBlci5hID8/PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7
CisgICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7
CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxk
IGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0
LXBhcmVudCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsi
YSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4
WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBh
cmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJh
Il07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSA/Pz0gdjsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4
WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsi
YSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOwor
ICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJdID8/PSA0MjsKKworICAgIHJldHVybiBsb2cu
am9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hp
bGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKKwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRh
YmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRydWUpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0
YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAg
ICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0
Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
InVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxz
ZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxk
VGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307Cisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZp
bmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/
Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAg
ICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAg
IHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsK
KyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAg
IH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAg
ICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOwor
fSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAg
ICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAg
ICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAg
cmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9u
KCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwg
VHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1
ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggPz89IDQyOworICAgIH0pKCk7CisgICAg
cmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCA/Pz0g
NDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0
dXJuIHggPz89IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHgg
Pz89IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiAoZnVuY3Rpb24o
KSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOworfSwgZmFsc2UpOworCitz
aG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJl
dHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOwor
fSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3Vu
dCA9IDA7CisKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICB4ID8/PSArK2NvdW50OworCisgICAg
cmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBj
b3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gKytjb3VudDsKKwor
ICAgIHJldHVybiBjb3VudDsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB0cnkgeworICAg
ICAgICB4ID8/PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7
Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7
CisKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4g
eDsgfQorCisgICAgeCA/Pz0gKytjb3VudDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3Qg
eCA9IGZhbHNlOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4
ID8/PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVk
OworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB0cnkgeworICAg
ICAgICB4ID8/PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7
Cit9LCAxKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIHggPz89IDQyOwor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB1bmRlZmluZWQgPz89IDQyOwor
fSwgNDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBudWxsID8/PSA0MmApOworCitzaG91
bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVy
cm9yKGBmYWxzZSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMCA/Pz0gNDJg
KTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dT
eW50YXhFcnJvcihgIiIgPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCJ0ZXN0
IiA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihge30gPz89IDQyYCk7CisKK3No
b3VsZFRocm93U3ludGF4RXJyb3IoYFtdID8/PSA0MmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
bG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlODk0YzRmYmIx
OWY5MmQwMjYyMTc2ZjdmNmFkYTJjMGQzNTlhZTAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3Itb3IuanMKQEAgLTAsMCArMSwxNjg1
IEBACisvL0AgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkCisKK2Z1bmN0aW9u
IHNob3VsZEJlKGZ1bmMsIGV4cGVjdGVkKSB7CisgICAgbGV0IGFjdHVhbCA9IGZ1bmMoKTsKKyAg
ICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAiZnVuY3Rpb24iID8gIShhY3R1YWwgaW5zdGFuY2Vv
ZiBleHBlY3RlZCkgOiBhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoYGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpfSBidXQgZ290ICR7SlNPTi5z
dHJpbmdpZnkoYWN0dWFsKX1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJy
b3JUeXBlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShl
cnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhw
ZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWAp
OworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvd1N5bnRheEVycm9yKHNjcmlwdCkgeworICAgIGxl
dCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFu
Y2VvZiBTeW50YXhFcnJvcikpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgU3lu
dGF4RXJyb3IgYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQorCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4OworICAgIHggfHw9IDQyOworICAg
IHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHggfHw9IDQyOworICAgIHJl
dHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51
bGw7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1
cm4geCB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB0cnVlOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHggfHw9
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNl
OworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgeCB8fD0gNDI7Cisg
ICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gMTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSAxOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAgcmV0dXJuIHgg
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICIi
OworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAg
ICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgT2JqZWN0
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4IHx8PSA0
MjsKKyAgICByZXR1cm4geDsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHggfHw9IDQyOworICAgIHJl
dHVybiB4OworfSwgQXJyYXkpOworCisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3Ip
OworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICBy
ZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgeCB8fD0gNDI7
CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7
CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHJldHVy
biB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSAxOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4g
eDsKK30sIDEpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7
CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gInRlc3QiOwor
ICAgIHJldHVybiB4IHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBPYmplY3QpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHgg
fHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFy
cmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAg
cmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge307CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAg
IHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVs
bH07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
dHJ1ZX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hIHx8PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSB8fD0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHguYSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeC5hIHx8PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6ICIifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hIHx8PSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgT2JqZWN0
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHgu
YSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30s
IEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119Owor
ICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIEFycmF5KTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9Owor
ICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEg
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IHVuZGVmaW5lZH07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAg
IHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVl
fTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5hIHx8PSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHguYSB8fD0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDEpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHguYSB8fD0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeC5hIHx8
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0
In07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHgu
YSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBPYmpl
Y3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAg
ICByZXR1cm4geC5hIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeFsiYSJd
IHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsi
YSJdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9
OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDEpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsi
YSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9
IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogInRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07Cisg
ICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgQXJyYXkpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhb
ImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
bnVsbH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgdHJ1
ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07Cisg
ICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07
CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4WyJh
Il0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdIHx8
PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9
fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHhbImEiXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbImEiXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgQXJy
YXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAg
ICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBBcnJheSk7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJldHVybiB4WzBdIHx8
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsK
KyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSB8
fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3Vu
ZGVmaW5lZF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHJldHVybiB4
WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBbbnVsbF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAgIHJldHVybiB4
WzBdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFt0cnVlXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgcmV0
dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFtmYWxzZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHJldHVy
biB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbMF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHJldHVybiB4WzBd
IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsx
XTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDEpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07Cisg
ICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQy
OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRl
c3QiXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFsw
XSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFt7fV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBPYmplY3Qp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtbXV07CisgICAgcmV0dXJu
IHhbMF0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFtbXV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBBcnJh
eSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAg
cmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gW107CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsK
KyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFtudWxsXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgeFswXSB8fD0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgeFswXSB8fD0gNDI7
CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBd
IHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07CisgICAgeFswXSB8
fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgMSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgeFswXSB8fD0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdIHx8PSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sICJ0ZXN0
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAg
ICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdIHx8PSA0
MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBb
e31dOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJuIHhb
MF0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gW1tdXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5
KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICsgejsKK30sIHRy
dWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0
IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA9IHo7Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5
ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiYgejsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkg
PSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/PyB6OworfSwgdHJ1ZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9
IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8IHo7Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiY9IHo7Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgfHw9IHo7Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPz89IHo7Cit9LCB0cnVlKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQg
eSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICsgejsKK30sIDMpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAx
OworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA9IHo7Cit9LCAyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAg
ICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiYgejsKK30sIDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7
CisgICAgcmV0dXJuIHggfHw9IHkgJiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7Cisg
ICAgcmV0dXJuIHggfHw9IHkgfHw9IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggfHw9IHkgPz89IHo7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAg
ICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAg
ICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAg
fTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cu
am9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBs
ZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7
CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAg
IH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJl
dHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVu
ZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAg
YSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8
PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0
IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtd
OworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAg
ICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7
CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAi
ICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0geworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAg
IHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBs
b2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9Owor
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxv
Zy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVk
OworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsK
KyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQg
Z2V0IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAg
ICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVu
dCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBj
bGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1j
aGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB0cnVlOworICAgIHguYSB8fD0gNDI7
CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5f
YTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAg
IHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAg
ICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4
dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
Z2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAg
ICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAg
ICAgICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBu
ZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8
PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQt
Y2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGls
ZCBnZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cg
PSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOwor
ICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQt
cGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQor
ICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIu
YTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
c2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9CisgICAg
fQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4
LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSAr
ICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2Eg
fHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBh
KHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1
cGVyWyJhIl0gfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGls
ZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEiXSB8fD0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNo
aWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8
fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOwor
ICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEo
dikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3Vw
ZXJbImEiXSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxk
OworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEiXSB8fD0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNo
aWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQg
Z2V0LXBhcmVudCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBh
cmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJh
Il07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSB8fD0gdjsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7Cisg
ICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5q
b2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGls
ZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFi
bGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgdHJ1ZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRh
YmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdy
aXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQg
eCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFs
dWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4g
eC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAi
dXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
eCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNl
LAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hv
dWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5k
ZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHgu
YSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAg
ICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAg
cmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7Cisg
ICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOwor
ICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsK
KyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAg
IH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAg
ICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOwor
fSwgdHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsK
KyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAg
ICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7Cisg
ICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhm
dW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisg
ICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0
MjsKK30sIFR5cGVFcnJvcik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB4IHx8PSA0MjsKKyAgICB9KSgp
OworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IHggfHw9IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAg
IHJldHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAg
ICB4IHx8PSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1
bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7CisgICAgfSkoKTsKK30sIFR5cGVF
cnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmlu
ZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggfHw9IDQyOwor
ICAgIH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSB0cnVlOworICAgIHggfHw9ICsrY291
bnQ7CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICB0cnkgewor
ICAgICAgICB4IHx8PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291
bnQ7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsK
KworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgdHJ5IHsKKyAgICAgICAgeCB8fD0gKytj
b3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKKwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3Qg
eCA9IHRydWU7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHg7IH0KKworICAgIHgg
fHw9ICsrY291bnQ7CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAg
ICBmdW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4geDsgfQorCisgICAgdHJ5IHsKKyAgICAgICAg
eCB8fD0gKytjb3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwg
MSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBj
b25zdCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9
CisKKyAgICB0cnkgeworICAgICAgICB4IHx8PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisK
KyAgICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgIHggfHw9IDQyOworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30sIFJl
ZmVyZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB1
bmRlZmluZWQgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBudWxs
IHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlIHx8PSA0MmApOworCitz
aG91bGRUaHJvd1N5bnRheEVycm9yKGBmYWxzZSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50
YXhFcnJvcihgMCB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSB8fD0gNDJg
KTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgIiIgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93
U3ludGF4RXJyb3IoYCJ0ZXN0IiB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihg
e30gfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYFtdIHx8PSA0MmApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2Nv
bmZpZy55YW1sCmluZGV4IDBiNmI1NmU4YzFkMmNlMTBhNmU2M2NiNDcwMmY4MDk0MGM3ZTBhNTgu
LjBjNjdhNGRlNjMzZTJkNTVkOWM5MzU0N2Q2OGMwNGQ2NGIxYzAzZjcgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlh
bWwKQEAgLTQsNiArNCw3IEBAIGZsYWdzOgogICBCaWdJbnQ6IHVzZUJpZ0ludAogICBXZWFrUmVm
OiB1c2VXZWFrUmVmcwogICBjbGFzcy1maWVsZHMtcHVibGljOiB1c2VQdWJsaWNDbGFzc0ZpZWxk
cworICBsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzOiB1c2VMb2dpY2FsQXNzaWdubWVudE9w
ZXJhdG9ycwogc2tpcDoKICAgZmVhdHVyZXM6CiAgICAgLSBTaGFyZWRBcnJheUJ1ZmZlcgpAQCAt
MjAsOCArMjEsNiBAQCBza2lwOgogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMjQ3NQogICAgIC0gcmVnZXhwLW1hdGNoLWluZGljZXMKICAgICAtIHRvcC1s
ZXZlbC1hd2FpdAotICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwOTcxNgotICAgIC0gbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycwogICAgICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU2NgogICAgIC0gUHJvbWlzZS5h
bnkKICAgICAtIEFnZ3JlZ2F0ZUVycm9yCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXgg
NGFlMmE3NzAyZDdlMTA1NWFiOTVmZmYwMGU0YmY3ZTY5YmEwMDMxNS4uNjMwZmFjOWViMGYxZmQx
Zjk5NTdkN2U3OTZkOTA3MDFiNjI0YjVhZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApA
QCAtMjcxOCw2ICsyNzE4LDEyIEBAIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvaW1wb3J0Lm1l
dGEvc3ludGF4L2ludmFsaWQtYXNzaWdubWVudC10YXJnZXQtZm9yLW9mLWxvCiB0ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2luc3RhbmNlb2YvcHJvdG90eXBlLWdldHRlci13aXRoLXByaW1pdGl2
ZS5qczoKICAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogZ2V0dGVyIGZvciAncHJvdG90eXBlJyBj
YWxsZWQiCiAgIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVycm9yOiBnZXR0ZXIgZm9yICdwcm90b3R5
cGUnIGNhbGxlZCIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanM6CisgIGRlZmF1
bHQ6ICJUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4iCit0
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gt
YXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3Qy
NjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKK3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVy
YXRvci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
bmV3L2N0b3JFeHByLWZuLXJlZi1iZWZvcmUtYXJncy1ldmFsLWZuLXdyYXB1cC5qczoKICAgZGVm
YXVsdDogIlR5cGVFcnJvcjogMSBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3
IHgoeCA9IDEpJykiCiAgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiAxIGlzIG5vdCBhIGNvbnN0
cnVjdG9yIChldmFsdWF0aW5nICduZXcgeCh4ID0gMSknKSIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396493</attachid>
            <date>2020-04-14 20:29:16 -0700</date>
            <delta_ts>2020-04-14 22:28:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200414212915.patch</filename>
            <type>text/plain</type>
            <size>141427</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDM5OGU5MzJhNzZlODZhZjkyMWNmOTQ0MTE3ZDM3
ODcxZDg1MDczZjcuLmYxOGZkZThiMTNiYWI1NzNlZmJjMGI5MGIwOTdlZWZlMDQwZDYyMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTE0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRoZSBsb2dpY2FsIGFzc2lnbm1lbnQg
b3BlcmF0b3JzIHByb3Bvc2FsLCB3aGljaCBpcyBub3cgU3RhZ2UgMy4gSXQgaW50cm9kdWNlcwor
ICAgICAgICB0aHJlZSBuZXcgYXNzaWdubWVudCBvcGVyYXRvcnMgd2hpY2ggd2lsbCBvbmx5IHN0
b3JlIHRoZSByZXN1bHQgb2YgdGhlIHJocyBpbiB0aGUgbGhzIGlmIHRoZQorICAgICAgICBsaHMg
bWVldHMgdGhlIGdpdmVuIGNvbmRpdGlvbjoKKyAgICAgICAgIC0gYD8/PWAsIGZvciBpZiB0aGUg
bGhzIGlzIG51bGxpc2ggKGBudWxsYCBvciBgdW5kZWZpbmVkYCkKKyAgICAgICAgIC0gYHx8PWAs
IGZvciBpZiB0aGUgbGhzIGlzIGZhbHN5CisgICAgICAgICAtIGAmJj1gLCBmb3IgaWYgdGhlIGxo
cyBpcyB0cnV0aHkKKworICAgICAgICBUaGlzIHNob3J0IGNpcmN1aXRpbmcgY2FuIGJlIGJlbmVm
aWNpYWwgYXMgaXQgY2FuIGF2b2lkIGEgcmVkdW5kYW50IHN0b3JlIHdoZW4gdXNlZCBpbiB0aGUK
KyAgICAgICAgY29tbW9uIEphdmFTY3JpcHQgcHJvZ3JhbW1pbmcgcGF0dGVybiBvZiAiZGVmYXVs
dGluZyIgYSBwYXJhbWV0ZXIuCisKKyAgICAgICAgYGBganMKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGZvbyh4KSB7CisgICAgICAgICAgICAgICAgeCA9IHggfHwgNDI7CisgICAgICAgICAgICB9Cisg
ICAgICAgIGBgYAorCisgICAgICAgIElmIGB4YCBpcyBhIHRydXRoeSB2YWx1ZSwgaXQgd291bGQg
cmVzdWx0IGluIHRoZSByaHMgYHhgIGJlaW5nIHN0b3JlZCBiYWNrIGludG8gdGhlIGxocyBgeGAu
CisgICAgICAgIEluIHNvbWUgc2l0dWF0aW9ucywgdGhpcyBjYW4gaGF2ZSBuZWdhdGl2ZSB1bmlu
dGVuZGVkIHNpZGUtZWZmZWN0cywgc3VjaCBhcyBmb3IgYGlubmVySFRNTGAuCisKKyAgICAgICAg
TG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycywgaG93ZXZlciwgYXJlIGRlZmluZWQgc3VjaCB0
aGF0IHRoZXkgb25seSBzdG9yZSBpZiB0aGUgcmhzIGlzCisgICAgICAgIHRvIGFjdHVhbGx5IGJl
IG5lZWRlZC91c2VkLCBza2lwcGluZyB0aGUgcmVkdW5kYW50IHN0b3JlIGFuZCBzaW1wbHkgcmV0
dXJuaW5nIGxocyBvdGhlcndpc2UuCisKKyAgICAgICAgSW4gdGhlIGNhc2Ugb2YgcmVhZG9ubHkg
cmVmZXJlbmNlcywgdGhpcyBtZWFucyB0aGF0IGFuIGVycm9yIGlzIG9ubHkgdGhyb3duIHdoZW4g
dGhlCisgICAgICAgIGFzc2lnbm1lbnQgb2NjdXJzLCBtZWFuaW5nIHRoYXQgaWYgdGhlIGxocyBh
bHJlYWR5IHNhdGlzZmllcyB0aGUgY29uZGl0aW9uIGl0IHdpbGwgYmUgdXNlZAorICAgICAgICBh
bmQgcmV0dXJuZWQgd2l0aCBubyBlcnJvci4KKworICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxU
Pjo6bGV4V2l0aG91dENsZWFyaW5nTGluZVRlcm1pbmF0b3IpOgorICAgICAgICAqIHBhcnNlci9Q
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25t
ZW50RXhwcmVzc2lvbik6CisKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAg
ICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQXNzaWduTm9kZSk6CisgICAgICAgICogcGFyc2VyL05v
ZGVzLmg6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpT
Qzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGUpOiBBZGRl
ZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGU6OlNob3J0Q2ly
Y3VpdFJlYWRNb2RpZnlEb3ROb2RlKTogQWRkZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50
KTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKTogQWRkZWQuCisgICAgICAgIChKU0M6OlNob3J0Q2lyY3VpdFJlYWRN
b2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRD
aXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKworICAg
ICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKyAgICAgICAgQWRkIGEgYHVzZUxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzYCBzZXR0aW5nIGZvciBjb250cm9sbGluZyB0aGlzIGZlYXR1cmUu
CisKIDIwMjAtMDQtMTMgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTk1ODcpOiBidGVybHNvbi9lc2hvc3QgdGhyb3dzIGR1
cmluZyBpbml0IGluIHN0cmljdCBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggZDRmZGI0ZGQ1NGQ0OTJmOTBkMmQ3
MjFmZDdkYWMxMmZmN2QyZjg1MC4uNTRjM2E5ZjgxOWRlMDU0NmQ5NDdlZjY3NGVkNTAxYWU0NmIx
Y2I4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcApAQCAtMjg2Miw2ICsyODYyLDEwOSBAQCBSZWdpc3RlcklEKiBSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZQogICAgIHJldHVybiByZXR1cm5SZXN1bHQ7CiB9CiAKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3RhdGljIEFMV0FZU19JTkxJTkUgdm9pZCBl
bWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBS
ZWdpc3RlcklEKiB2YWx1ZSwgT3BlcmF0b3Igb3BlciwgTGFiZWwmIGFmdGVyQXNzaWdubWVudCkK
K3sKKyAgICBzd2l0Y2ggKG9wZXIpIHsKKyAgICBjYXNlIE9wZXJhdG9yOjpOdWxsaXNoRXE6Cisg
ICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElmRmFsc2UoZ2VuZXJhdG9yLmVtaXRJc1VuZGVmaW5l
ZE9yTnVsbChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHZhbHVlKSwgYWZ0ZXJBc3NpZ25tZW50
KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIE9wZXJhdG9yOjpPckVxOgorICAgICAgICBn
ZW5lcmF0b3IuZW1pdEp1bXBJZlRydWUodmFsdWUsIGFmdGVyQXNzaWdubWVudCk7CisgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBPcGVyYXRvcjo6QW5kRXE6CisgICAgICAgIGdlbmVyYXRvci5l
bWl0SnVtcElmRmFsc2UodmFsdWUsIGFmdGVyQXNzaWdubWVudCk7CisgICAgICAgIGJyZWFrOwor
CisgICAgZGVmYXVsdDoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorfQorCitSZWdpc3RlcklEKiBTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5UmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9y
LCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgSlNUZXh0UG9zaXRpb24gbmV3RGl2b3QgPSBkaXZv
dFN0YXJ0KCkgKyBtX2lkZW50Lmxlbmd0aCgpOworCisgICAgVmFyaWFibGUgdmFyID0gZ2VuZXJh
dG9yLnZhcmlhYmxlKG1faWRlbnQpOworICAgIGJvb2wgaXNSZWFkT25seSA9IHZhci5pc1JlYWRP
bmx5KCk7CisKKyAgICBpZiAoUmVmUHRyPFJlZ2lzdGVySUQ+IGxvY2FsID0gdmFyLmxvY2FsKCkp
IHsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5KHZhciwgbG9jYWwu
Z2V0KCksIG51bGxwdHIpOworCisgICAgICAgIGlmIChpc1JlYWRPbmx5KSB7CisgICAgICAgICAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0ID0gbG9jYWw7CisKKyAgICAgICAgICAgIFJlZjxM
YWJlbD4gYWZ0ZXJBc3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgICAgICAg
ICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9v
cGVyYXRvciwgYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAgICAgICAgICAgcmVzdWx0ID0g
Z2VuZXJhdG9yLmVtaXROb2RlKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7IC8vIEV4ZWN1dGUgc2lk
ZSBlZmZlY3RzIGZpcnN0LgorICAgICAgICAgICAgYm9vbCB0aHJld0V4Y2VwdGlvbiA9IGdlbmVy
YXRvci5lbWl0UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIpOworCisgICAgICAgICAgICBp
ZiAoIXRocmV3RXhjZXB0aW9uKQorICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmls
ZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworCisgICAgICAg
ICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAgICAg
ICAgICByZXR1cm4gZ2VuZXJhdG9yLm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKGdlbmVyYXRvci5sZWZ0SGFuZFNpZGVOZWVkc0NvcHkobV9yaWdodEhh
c0Fzc2lnbm1lbnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSkpIHsKKyAgICAgICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRz
dCk7CisgICAgICAgICAgICBnZW5lcmF0b3IubW92ZShyZXN1bHQuZ2V0KCksIGxvY2FsLmdldCgp
KTsKKworICAgICAgICAgICAgUmVmPExhYmVsPiBhZnRlckFzc2lnbm1lbnQgPSBnZW5lcmF0b3Iu
bmV3TGFiZWwoKTsKKyAgICAgICAgICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVy
YXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOwor
CisgICAgICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdE5vZGUocmVzdWx0LmdldCgpLCBt
X3JpZ2h0KTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5tb3ZlKGxvY2FsLmdldCgpLCByZXN1bHQu
Z2V0KCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQuZ2V0
KCksIHZhciwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKworICAgICAgICAgICAgZ2VuZXJh
dG9yLmVtaXRMYWJlbChhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworICAgICAgICAgICAgcmV0dXJu
IGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKKyAgICAgICAgfQorCisgICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBsb2NhbDsKKworICAgICAgICBSZWY8TGFiZWw+
IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOworICAgICAgICBlbWl0U2hv
cnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwg
YWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1p
dE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9m
aWxlVHlwZShyZXN1bHQuZ2V0KCksIHZhciwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKwor
ICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAg
ICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgfQorCisg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhuZXdEaXZvdCwgZGl2b3RTdGFydCgpLCBu
ZXdEaXZvdCk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRS
ZXNvbHZlU2NvcGUobnVsbHB0ciwgdmFyKTsKKworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1
bHQgPSBnZW5lcmF0b3IuZW1pdEdldEZyb21TY29wZShnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9u
KGRzdCksIHNjb3BlLmdldCgpLCB2YXIsIFRocm93SWZOb3RGb3VuZCk7CisgICAgZ2VuZXJhdG9y
LmVtaXRURFpDaGVja0lmTmVjZXNzYXJ5KHZhciwgcmVzdWx0LmdldCgpLCBudWxscHRyKTsKKwor
ICAgIFJlZjxMYWJlbD4gYWZ0ZXJBc3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7Cisg
ICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCksIG1f
b3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBnZW5lcmF0
b3IuZW1pdE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsgLy8gRXhlY3V0ZSBzaWRlIGVmZmVj
dHMgZmlyc3QuCisKKyAgICBib29sIHRocmV3RXhjZXB0aW9uID0gaXNSZWFkT25seSA/IGdlbmVy
YXRvci5lbWl0UmVhZE9ubHlFeGNlcHRpb25JZk5lZWRlZCh2YXIpIDogZmFsc2U7CisKKyAgICBp
ZiAoIXRocmV3RXhjZXB0aW9uKQorICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZv
KGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisKKyAgICBpZiAoIWlzUmVhZE9u
bHkpIHsKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRUb1Njb3BlKHNjb3BlLmdl
dCgpLCB2YXIsIHJlc3VsdC5nZXQoKSwgVGhyb3dJZk5vdEZvdW5kLCBJbml0aWFsaXphdGlvbk1v
ZGU6Ok5vdEluaXRpYWxpemF0aW9uKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlw
ZShyZXN1bHQuZ2V0KCksIHZhciwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICB9CisK
KyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAgcmV0
dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKworLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKIHN0YXRpYyBJbml0aWFsaXphdGlvbk1vZGUgaW5pdGlhbGl6
YXRpb25Nb2RlRm9yQXNzaWdubWVudENvbnRleHQoQXNzaWdubWVudENvbnRleHQgYXNzaWdubWVu
dENvbnRleHQpCiB7CiAgICAgc3dpdGNoIChhc3NpZ25tZW50Q29udGV4dCkgewpAQCAtMjg3Nyw4
ICsyOTgwLDYgQEAgc3RhdGljIEluaXRpYWxpemF0aW9uTW9kZSBpbml0aWFsaXphdGlvbk1vZGVG
b3JBc3NpZ25tZW50Q29udGV4dChBc3NpZ25tZW50Q29udGUKICAgICByZXR1cm4gSW5pdGlhbGl6
YXRpb25Nb2RlOjpOb3RJbml0aWFsaXphdGlvbjsKIH0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEFzc2lnblJlc29sdmVOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KIFJlZ2lzdGVySUQqIEFzc2lnblJlc29sdmVOb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIFZh
cmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShtX2lkZW50KTsKQEAgLTI5NzgsNiArMzA3
OSwzNyBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5RG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdAogICAgIHJldHVybiByZXQ7CiB9CiAKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90
Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitSZWdpc3RlcklEKiBT
aG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBSZWZQdHI8UmVnaXN0ZXJJ
RD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2Jhc2UsIG1fcmln
aHRIYXNBc3NpZ25tZW50cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOworICAgIFJlZlB0
cjxSZWdpc3RlcklEPiB0aGlzVmFsdWU7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0
OworCisgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3Qo
KSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7CisgICAgaWYgKG1f
YmFzZS0+aXNTdXBlck5vZGUoKSkgeworICAgICAgICB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5z
dXJlVGhpcygpOworICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJh
dG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCB0aGlzVmFsdWUuZ2V0KCksIG1f
aWRlbnQpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5
SWQoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBtX2lkZW50KTsK
KworICAgIFJlZjxMYWJlbD4gYWZ0ZXJBc3NpZ25tZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7
CisgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQuZ2V0KCks
IG1fb3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICByZXN1bHQgPSBnZW5l
cmF0b3IuZW1pdE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsKKyAgICBnZW5lcmF0b3IuZW1p
dEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAg
aWYgKG1fYmFzZS0+aXNTdXBlck5vZGUoKSkKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVt
aXRQdXRCeUlkKGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgbV9pZGVudCwgcmVzdWx0Lmdl
dCgpKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0UHV0QnlJZChi
YXNlLmdldCgpLCBtX2lkZW50LCByZXN1bHQuZ2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJv
ZmlsZVR5cGUocmVzdWx0LmdldCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworCisgICAg
Z2VuZXJhdG9yLmVtaXRMYWJlbChhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworICAgIHJldHVybiBn
ZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBBc3NpZ25FcnJvck5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAogUmVnaXN0ZXJJRCogQXNzaWduRXJyb3JOb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCopCkBAIC0zMDQyLDYgKzMx
NzQsMzggQEAgUmVnaXN0ZXJJRCogUmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmUKICAgICByZXR1cm4gdXBkYXRlZFZhbHVl
OwogfQogCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2hvcnRDaXJjdWl0UmVh
ZE1vZGlmeUJyYWNrZXROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K1JlZ2lzdGVySUQqIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZTo6ZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZUZvckxlZnRIYW5k
U2lkZShtX2Jhc2UsIG1fc3Vic2NyaXB0SGFzQXNzaWdubWVudHMgfHwgbV9yaWdodEhhc0Fzc2ln
bm1lbnRzLCBtX3N1YnNjcmlwdC0+aXNQdXJlKGdlbmVyYXRvcikgJiYgbV9yaWdodC0+aXNQdXJl
KGdlbmVyYXRvcikpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9wZXJ0eSA9IGdlbmVyYXRv
ci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZUZvclByb3BlcnR5KG1fc3Vic2NyaXB0LCBtX3JpZ2h0
SGFzQXNzaWdubWVudHMsIG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKTsKKyAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gdGhpc1ZhbHVlOworCisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdDsK
KworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oc3ViZXhwcmVzc2lvbkRpdm90KCks
IHN1YmV4cHJlc3Npb25TdGFydCgpLCBzdWJleHByZXNzaW9uRW5kKCkpOworICAgIGlmIChtX2Jh
c2UtPmlzU3VwZXJOb2RlKCkpIHsKKyAgICAgICAgdGhpc1ZhbHVlID0gZ2VuZXJhdG9yLmVuc3Vy
ZVRoaXMoKTsKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0
b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgcHJv
cGVydHkuZ2V0KCkpOworICAgIH0gZWxzZQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1p
dEdldEJ5VmFsKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgcHJv
cGVydHkuZ2V0KCkpOworCisgICAgUmVmPExhYmVsPiBhZnRlckFzc2lnbm1lbnQgPSBnZW5lcmF0
b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hvcnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3Is
IHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAg
IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZShyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAg
IGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZv
dEVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVyTm9kZSgpKQorICAgICAgICByZXN1bHQg
PSBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgcHJv
cGVydHkuZ2V0KCksIHJlc3VsdC5nZXQoKSk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBn
ZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGJhc2UuZ2V0KCksIHByb3BlcnR5LmdldCgpLCByZXN1bHQu
Z2V0KCkpOworICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5cGUocmVzdWx0LmdldCgpLCBkaXZv
dFN0YXJ0KCksIGRpdm90RW5kKCkpOworCisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChhZnRlckFz
c2lnbm1lbnQuZ2V0KCkpOworICAgIHJldHVybiBnZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5n
ZXQoKSk7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDb21tYU5vZGUg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFJlZ2lzdGVySUQqIENvbW1h
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVy
SUQqIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVp
bGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXgg
NDNiMTcxZmJjNGU3YjM1OWRiZTY4MjdmYTVkYzViODVhODllYmZjMC4uNWUzNTNiZDE3NjNkOWUy
Zjc0ZDM2NDI0NGEwYjBkYWRkMjI1ODJiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9BU1RCdWlsZGVyLmgKQEAgLTE1NDgsNiArMTU0OCw3IEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RC
dWlsZGVyOjptYWtlQXNzaWduTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBF
eHByCiAKICAgICBpZiAobG9jLT5pc1Jlc29sdmVOb2RlKCkpIHsKICAgICAgICAgUmVzb2x2ZU5v
ZGUqIHJlc29sdmUgPSBzdGF0aWNfY2FzdDxSZXNvbHZlTm9kZSo+KGxvYyk7CisKICAgICAgICAg
aWYgKG9wID09IE9wZXJhdG9yOjpFcXVhbCkgewogICAgICAgICAgICAgaWYgKGV4cHItPmlzQmFz
ZUZ1bmNFeHByTm9kZSgpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBtZXRhZGF0YSA9IHN0YXRp
Y19jYXN0PEJhc2VGdW5jRXhwck5vZGUqPihleHByKS0+bWV0YWRhdGEoKTsKQEAgLTE1NTgsMjEg
KzE1NTksNDIgQEAgRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VBc3NpZ25Ob2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHIKICAgICAgICAgICAgIHNldEV4Y2Vw
dGlvbkxvY2F0aW9uKG5vZGUsIHN0YXJ0LCBkaXZvdCwgZW5kKTsKICAgICAgICAgICAgIHJldHVy
biBub2RlOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpOdWxsaXNo
RXEgfHwgb3AgPT0gT3BlcmF0b3I6Ok9yRXEgfHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVxKQorICAg
ICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0UmVhZE1vZGlm
eVJlc29sdmVOb2RlKGxvY2F0aW9uLCByZXNvbHZlLT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBl
eHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsKKwogICAgICAgICByZXR1cm4g
bmV3IChtX3BhcnNlckFyZW5hKSBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUobG9jYXRpb24sIHJlc29s
dmUtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0
YXJ0LCBlbmQpOwogICAgIH0KKwogICAgIGlmIChsb2MtPmlzQnJhY2tldEFjY2Vzc29yTm9kZSgp
KSB7CiAgICAgICAgIEJyYWNrZXRBY2Nlc3Nvck5vZGUqIGJyYWNrZXQgPSBzdGF0aWNfY2FzdDxC
cmFja2V0QWNjZXNzb3JOb2RlKj4obG9jKTsKKwogICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6
OkVxdWFsKQogICAgICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQXNzaWduQnJh
Y2tldE5vZGUobG9jYXRpb24sIGJyYWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCks
IGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGJyYWNrZXQtPmRp
dm90KCksIHN0YXJ0LCBlbmQpOworCisgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TnVsbGlz
aEVxIHx8IG9wID09IE9wZXJhdG9yOjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkgewor
ICAgICAgICAgICAgYXV0byogbm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgU2hvcnRDaXJjdWl0
UmVhZE1vZGlmeUJyYWNrZXROb2RlKGxvY2F0aW9uLCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQt
PnN1YnNjcmlwdCgpLCBvcCwgZXhwciwgbG9jSGFzQXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25t
ZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVz
c2lvbkluZm8oYnJhY2tldC0+ZGl2b3QoKSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOwor
ICAgICAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgICAgIH0KKwogICAgICAgICBSZWFkTW9kaWZ5
QnJhY2tldE5vZGUqIG5vZGUgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIFJlYWRNb2RpZnlCcmFja2V0
Tm9kZShsb2NhdGlvbiwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgb3As
IGV4cHIsIGxvY0hhc0Fzc2lnbm1lbnRzLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFy
dCwgZW5kKTsKICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2
b3QoKSwgYnJhY2tldC0+ZGl2b3RFbmQoKS5vZmZzZXQpOwogICAgICAgICByZXR1cm4gbm9kZTsK
ICAgICB9CisKICAgICBBU1NFUlQobG9jLT5pc0RvdEFjY2Vzc29yTm9kZSgpKTsKICAgICBEb3RB
Y2Nlc3Nvck5vZGUqIGRvdCA9IHN0YXRpY19jYXN0PERvdEFjY2Vzc29yTm9kZSo+KGxvYyk7CisK
ICAgICBpZiAob3AgPT0gT3BlcmF0b3I6OkVxdWFsKQogICAgICAgICByZXR1cm4gbmV3IChtX3Bh
cnNlckFyZW5hKSBBc3NpZ25Eb3ROb2RlKGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90LT5pZGVu
dGlmaWVyKCksIGV4cHIsIGV4cHJIYXNBc3NpZ25tZW50cywgZG90LT5kaXZvdCgpLCBzdGFydCwg
ZW5kKTsKIAorICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6TnVsbGlzaEVxIHx8IG9wID09IE9wZXJh
dG9yOjpPckVxIHx8IG9wID09IE9wZXJhdG9yOjpBbmRFcSkgeworICAgICAgICBhdXRvKiBub2Rl
ID0gbmV3IChtX3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZShsb2Nh
dGlvbiwgZG90LT5iYXNlKCksIGRvdC0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fz
c2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CisgICAgICAgIG5vZGUtPnNldFN1YmV4cHJl
c3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90LT5kaXZvdEVuZCgpLm9mZnNldCk7CisgICAgICAg
IHJldHVybiBub2RlOworICAgIH0KKwogICAgIFJlYWRNb2RpZnlEb3ROb2RlKiBub2RlID0gbmV3
IChtX3BhcnNlckFyZW5hKSBSZWFkTW9kaWZ5RG90Tm9kZShsb2NhdGlvbiwgZG90LT5iYXNlKCks
IGRvdC0+aWRlbnRpZmllcigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwg
c3RhcnQsIGVuZCk7CiAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oZG90LT5kaXZvdCgp
LCBkb3QtPmRpdm90RW5kKCkub2Zmc2V0KTsKICAgICByZXR1cm4gbm9kZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9MZXhlci5jcHAKaW5kZXggNGZiODNjYTNhMGE3YzhhYTk5MmQyMDI5ZTkw
OWEwMzJjMTVkOTAwNi4uYmFlNWY2ZjgzOTI5YjA4NTY4NTMzYTgyZjIxNjQzOTM3ODNiMjJkOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTIwODYsNiArMjA4Niwx
MSBAQCBzdGFydDoKICAgICAgICAgc2hpZnQoKTsKICAgICAgICAgaWYgKG1fY3VycmVudCA9PSAn
JicpIHsKICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoT3B0
aW9uczo6dXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJlbnQgPT0gJz0n
KSkgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAgdG9rZW4gPSBB
TkRFUVVBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHRva2VuID0gQU5EOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxMjMs
NiArMjEyOCwxMSBAQCBzdGFydDoKICAgICAgICAgfQogICAgICAgICBpZiAobV9jdXJyZW50ID09
ICd8JykgewogICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShP
cHRpb25zOjp1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9PSAn
PScpKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9
IE9SRVFVQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB0b2tlbiA9IE9SOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTIxNTks
NiArMjE2OSwxMSBAQCBzdGFydDoKICAgICAgICAgc2hpZnQoKTsKICAgICAgICAgaWYgKG1fY3Vy
cmVudCA9PSAnPycpIHsKICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAoVU5M
SUtFTFkoT3B0aW9uczo6dXNlTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnMoKSAmJiBtX2N1cnJl
bnQgPT0gJz0nKSkgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAgICAg
dG9rZW4gPSBOVUxMSVNIRVFVQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB0b2tlbiA9IENPQUxFU0NFOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNv
bnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0
b3JzLmgKaW5kZXggZmQ5N2EwY2E5MzVlN2U1Nzc4YTA5Mzg1MDIyZjk4Njc4MDE0YTMyNC4uOWQ1
ZjkzMWU3MmY2YTVlODUyNWQwNjI0M2IxM2FhZGExOTRiYTFhMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTcxOCw2ICs3MTgsMTYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dCwgT3BlcmF0b3Igb3BlciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNz
aWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKKyAgICAgICAg
OiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9u
RGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisgICAgICAgICwgbV9pZGVudChpZGVu
dCkKKyAgICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikK
KyAgICAgICAgLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAg
ICB7CisgICAgfQorCiAgICAgaW5saW5lIEFzc2lnblJlc29sdmVOb2RlOjpBc3NpZ25SZXNvbHZl
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBp
ZGVudCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBBc3NpZ25tZW50Q29udGV4dCBhc3NpZ25tZW50
Q29udGV4dCkKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBt
X2lkZW50KGlkZW50KQpAQCAtNzM5LDYgKzc0OSwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7
CiAgICAgfQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZTo6
U2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYg
bG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0
LCBPcGVyYXRvciBvcGVyLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vic2NyaXB0SGFz
QXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQor
ICAgICAgICAsIFRocm93YWJsZVN1YkV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZvdFN0YXJ0LCBk
aXZvdEVuZCkKKyAgICAgICAgLCBtX2Jhc2UoYmFzZSkKKyAgICAgICAgLCBtX3N1YnNjcmlwdChz
dWJzY3JpcHQpCisgICAgICAgICwgbV9yaWdodChyaWdodCkKKyAgICAgICAgLCBtX29wZXJhdG9y
KG9wZXIpCisgICAgICAgICwgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyhzdWJzY3JpcHRIYXNB
c3NpZ25tZW50cykKKyAgICAgICAgLCBtX3JpZ2h0SGFzQXNzaWdubWVudHMocmlnaHRIYXNBc3Np
Z25tZW50cykKKyAgICB7CisgICAgfQorCiAgICAgaW5saW5lIEFzc2lnbkJyYWNrZXROb2RlOjpB
c3NpZ25CcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNz
aW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhwcmVzc2lvbk5vZGUq
IHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdu
bWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKICAgICAgICAgOiBF
eHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9uRGF0
YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCkBAIC03NzEsNiArNzkzLDE3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgU2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeURvdE5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudCwgT3BlcmF0b3Igb3BlciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0
SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKKyAg
ICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKKyAgICAgICAgLCBUaHJvd2FibGVTdWJF
eHByZXNzaW9uRGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCisgICAgICAgICwgbV9i
YXNlKGJhc2UpCisgICAgICAgICwgbV9pZGVudChpZGVudCkKKyAgICAgICAgLCBtX3JpZ2h0KHJp
Z2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAgICAgLCBtX3JpZ2h0SGFzQXNz
aWdubWVudHMocmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7CisgICAgfQorCiAgICAgaW5saW5l
IEFzc2lnbkVycm9yTm9kZTo6QXNzaWduRXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYg
bG9jYXRpb24sIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKICAgICAgICAg
OiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAgICAgICAgLCBUaHJvd2FibGVFeHByZXNzaW9u
RGF0YShkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKaW5kZXggMjJkZjVhZTRkMDhlNTg2ZTc4ZjhiMzliMmJiZjVhNjhmZjE4ZTY1ZC4u
YjUxNTYwNGE2OGFhNmJlNDM4ZjRkZmU3OWFiNGE4MDQyYzhhZmQ4YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaApAQCAtNjgsNiArNjgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgQml0T3JFcSwKICAgICAgICAgTW9kRXEsCiAgICAgICAgIFBvd0VxLAorICAgICAgICBO
dWxsaXNoRXEsCisgICAgICAgIE9yRXEsCisgICAgICAgIEFuZEVxLAogICAgICAgICBMU2hpZnQs
CiAgICAgICAgIFJTaGlmdCwKICAgICAgICAgVVJTaGlmdApAQCAtMTM4OSw2ICsxMzkyLDE5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50czsKICAg
ICB9OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlIGZpbmFs
IDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEg
eworICAgIHB1YmxpYzoKKyAgICAgICAgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2Rl
KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRvciwgRXhw
cmVzc2lvbk5vZGUqICByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAw
KSBvdmVycmlkZTsKKworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OworICAgICAg
ICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKKyAgICAgICAgT3BlcmF0b3IgbV9vcGVyYXRvcjsK
KyAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHM7CisgICAgfTsKKwogICAgIGNsYXNz
IEFzc2lnblJlc29sdmVOb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMg
VGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduUmVz
b2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJl
c3Npb25Ob2RlKiByaWdodCwgQXNzaWdubWVudENvbnRleHQpOwpAQCAtMTQxOCw2ICsxNDM0LDIx
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50cyA6
IDE7CiAgICAgfTsKIAorICAgIGNsYXNzIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9k
ZSBmaW5hbCA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZVN1YkV4cHJl
c3Npb25EYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlC
cmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwg
RXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgT3BlcmF0b3IsIEV4cHJlc3Npb25Ob2RlKiByaWdo
dCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRz
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworCisgICAgcHJpdmF0ZToK
KyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVn
aXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKKworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNl
OworICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9zdWJzY3JpcHQ7CisgICAgICAgIEV4cHJlc3Np
b25Ob2RlKiBtX3JpZ2h0OworICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBi
b29sIG1fc3Vic2NyaXB0SGFzQXNzaWdubWVudHMgOiAxOworICAgICAgICBib29sIG1fcmlnaHRI
YXNBc3NpZ25tZW50cyA6IDE7CisgICAgfTsKKwogICAgIGNsYXNzIEFzc2lnbkJyYWNrZXROb2Rl
IGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lv
bkRhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgQXNzaWduQnJhY2tldE5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJz
Y3JpcHQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50
cywgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3Qs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RFbmQpOwpAQCAtMTQ1OSw2ICsxNDkwLDIwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBib29sIG1fcmlnaHRIYXNBc3NpZ25tZW50cyA6IDE7CiAgICAgfTsKIAorICAgIGNsYXNzIFNo
b3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlIGZpbmFsIDogcHVibGljIEV4cHJlc3Npb25Ob2Rl
LCBwdWJsaWMgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
RXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRvciwgRXhwcmVz
c2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92
ZXJyaWRlOworCisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CisgICAgICAgIGNvbnN0
IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3JpZ2h0Owor
ICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBib29sIG1fcmlnaHRIYXNBc3Np
Z25tZW50cyA6IDE7CisgICAgfTsKKwogICAgIGNsYXNzIEFzc2lnbkVycm9yTm9kZSBmaW5hbCA6
IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIEFzc2lnbkVycm9yTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IGRkMjUxZjdhYmU3NWJmYmNlMGEzOWI4YzBl
ZWY1NWIyZDQxYmY3MDkuLjk3Njc1N2JkNDk0ZGZhOTBiYmQwMjhmNzNkYzY5M2EzNTA0OTJjMmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTM4NDcsNyArMzg0
Nyw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFy
c2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAKICAgICBmYWlsSWZGYWxzZShsaHMsICJD
YW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwogICAgIGlmIChpbml0aWFsTm9uTEhTQ291bnQgIT0g
bV9wYXJzZXJTdGF0ZS5ub25MSFNDb3VudCkgewotICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUg
Pj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQklUT1JFUVVBTCkKKyAgICAgICAgaWYgKG1f
dG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90eXBlIDw9IEFOREVRVUFMKQogICAg
ICAgICAgICAgc2VtYW50aWNGYWlsKCJMZWZ0IGhhbmQgc2lkZSBvZiBvcGVyYXRvciAnIiwgZ2V0
VG9rZW4oKSwgIicgbXVzdCBiZSBhIHJlZmVyZW5jZSIpOwogCiAgICAgICAgIHJldHVybiBsaHM7
CkBAIC0zODcxLDYgKzM4NzEsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRy
ZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1lbgogICAgICAgICBj
YXNlIEJJVE9SRVFVQUw6IG9wID0gT3BlcmF0b3I6OkJpdE9yRXE7IGJyZWFrOwogICAgICAgICBj
YXNlIE1PREVRVUFMOiBvcCA9IE9wZXJhdG9yOjpNb2RFcTsgYnJlYWs7CiAgICAgICAgIGNhc2Ug
UE9XRVFVQUw6IG9wID0gT3BlcmF0b3I6OlBvd0VxOyBicmVhazsKKyAgICAgICAgY2FzZSBOVUxM
SVNIRVFVQUw6IG9wID0gT3BlcmF0b3I6Ok51bGxpc2hFcTsgYnJlYWs7CisgICAgICAgIGNhc2Ug
T1JFUVVBTDogb3AgPSBPcGVyYXRvcjo6T3JFcTsgYnJlYWs7CisgICAgICAgIGNhc2UgQU5ERVFV
QUw6IG9wID0gT3BlcmF0b3I6OkFuZEVxOyBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIGdvdG8gZW5kOwogICAgICAgICB9CkBAIC0zODkwLDcgKzM4OTMsNyBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+
OjpwYXJzZUFzc2lnbm1lbgogICAgICAgICBsaHMgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9u
KGNvbnRleHQpOwogICAgICAgICBmYWlsSWZGYWxzZShsaHMsICJDYW5ub3QgcGFyc2UgdGhlIHJp
Z2h0IGhhbmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGV4cHJlc3Npb24iKTsKICAgICAgICAgaWYg
KGluaXRpYWxOb25MSFNDb3VudCAhPSBtX3BhcnNlclN0YXRlLm5vbkxIU0NvdW50KSB7Ci0gICAg
ICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0g
QklUT1JFUVVBTCkKKyAgICAgICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBt
X3Rva2VuLm1fdHlwZSA8PSBBTkRFUVVBTCkKICAgICAgICAgICAgICAgICBzZW1hbnRpY0ZhaWwo
IkxlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAiJyBtdXN0IGJlIGEg
cmVmZXJlbmNlIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggNDgxODFhZTBkNGI5MzM4OTRm
OGU0ZjJiZGZkYjYyZTgxMzgzZDJjNS4uZDFjNDdlZmUyY2ZiYTQzY2M4YzZmZjAwYWYyZTk4MjRj
YWVjNjk0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJU
b2tlbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5o
CkBAIC0xMzQsNiArMTM0LDkgQEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgQklUQU5ERVFVQUws
CiAgICAgQklUWE9SRVFVQUwsCiAgICAgQklUT1JFUVVBTCwKKyAgICBOVUxMSVNIRVFVQUwsCisg
ICAgT1JFUVVBTCwKKyAgICBBTkRFUVVBTCwKICAgICBET1RET1RET1QsCiAgICAgQVJST1dGVU5D
VElPTiwKICAgICBRVUVTVElPTkRPVCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zTGlzdC5oCmluZGV4IDk5Njk0ZDAxMjdiYWUxY2VhNWNmNjNmYTljZGQ5NzcwMDBjYjdh
YTQuLmMyOGJmYzM0YmZlODBmNzYzNGE0MGUxZjM4ZDAyOTdiNmE3MGQ3MWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtNTAwLDYgKzUwMCw3IEBA
IGNvbnN0ZXhwciBib29sIGVuYWJsZVdlYkFzc2VtYmx5U3RyZWFtaW5nQXBpID0gZmFsc2U7CiAg
ICAgdihCb29sLCBmb3JjZU9TUkV4aXRUb0xMSW50LCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwg
d2UgYWx3YXlzIGV4aXQgdG8gdGhlIExMSW50LiBJZiBmYWxzZSwgd2UgZXhpdCB0byB3aGF0ZXZl
ciBpcyBtb3N0IGNvbnZlbmllbnQuIikgXAogICAgIHYoVW5zaWduZWQsIGdldEJ5VmFsSUNNYXhO
dW1iZXJPZklkZW50aWZpZXJzLCA0LCBOb3JtYWwsICJOdW1iZXIgb2YgaWRlbnRpZmllcnMgd2Ug
c2VlIGluIHRoZSBMTEludCB0aGF0IGNvdWxkIGNhdXNlIHVzIHRvIGJhaWwgb24gZ2VuZXJhdGlu
ZyBhbiBJQyBmb3IgZ2V0X2J5X3ZhbC4iKSBcCiAgICAgdihCb29sLCB1c2VQdWJsaWNDbGFzc0Zp
ZWxkcywgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgdGhlIHBhcnNlciB3aWxsIHVuZGVyc3RhbmQg
cHVibGljIGRhdGEgZmllbGRzIGluc2lkZSBjbGFzc2VzLiIpIFwKKyAgICB2KEJvb2wsIHVzZUxv
Z2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzLCBmYWxzZSwgTm9ybWFsLCAiRW5hYmxlIHN1cHBvcnQg
Zm9yIFw/XD89LCB8fD0sIGFuZCAmJj0gbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycy4iKSBc
CiAgICAgdihCb29sLCB1c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uLCBm
YWxzZSwgTm9ybWFsLCAiRm9yIHRoZSBhcm02NCBFeGVjdXRhYmxlQWxsb2NhdG9yLCBpZiB0cnVl
LCBzZWxlY3Qgd2hpY2ggcmVnaW9uIHRvIHVzZSByYW5kb21seS4gVGhpcyBpcyB1c2VmdWwgZm9y
IHRlc3RpbmcgdGhhdCBqdW1wIGlzbGFuZHMgd29yay4iKSBcCiAKIGVudW0gT3B0aW9uRXF1aXZh
bGVuY2UgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGEzMTI2MjlkMzI4NTBmYjY4NjJmYzJjZTEyZWE1ZTY5N2MyMGExYzcuLmI2OWI1YzQzOTkw
YmFkMDkzYzdiMWMwYmExYWM1NTVmNTg5OWJkYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNC0xNCAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW0VTTmV4dF0gSW1wbGVt
ZW50IGxvZ2ljYWwgYXNzaWdubWVudCBvcGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoK
KwogMjAyMC0wNC0xNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1hYwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVu
LWpzYy1zdHJlc3MtdGVzdHMKaW5kZXggN2JkYTYxNzdkNjQwMDljMjY1YmM3YzQwODcxYTMwZjc0
NDdkNTE2Yi4uYzRlMDhmMGZmNGY2ZGJiYTc4MTNmYWFjOWU4NzE2M2FmYmM4MDQ3NyAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cworKysgYi9Ub29scy9TY3Jp
cHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCkBAIC03ODcsNiArNzg3LDEwIEBAIGRlZiBydW5NaW5p
TW9kZSgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJ1bigibWluaS1tb2RlIiwg
Ii0tZm9yY2VNaW5pVk1Nb2RlPXRydWUiLCAqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQog
ZW5kCiAKK2RlZiBydW5Mb2dpY2FsQXNzaWdubWVudE9wZXJhdG9yc0VuYWJsZWQoKm9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykKKyAgICBydW4oImxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRv
cnMtZW5hYmxlZCIsICItLXVzZUxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzPXRydWUiICwgKihG
VExfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCitlbmQKKwogZGVmIGRl
ZmF1bHRSdW4KICAgICBpZiAkbW9kZSA9PSAicXVpY2siCiAgICAgICAgIGRlZmF1bHRRdWlja1J1
bgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCA5ZGM5ODljNTViNDM0ZWZmNmZkM2VmNGRhM2E1MjNjN2ZkNTczYWIyLi4xOTQ0N2FiMDY5ZGNj
ZGI5YzRjM2MwNTI5YThmZTEyMDFmYWM3M2E0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA0LTE0ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBs
ZW1lbnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9w
ZXJhdG9yLWFuZC5qczogQWRkZWQuCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVu
dC1vcGVyYXRvci1udWxsaXNoLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1h
c3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzOiBBZGRlZC4KKworICAgICAgICAqIHRlc3QyNjIvY29u
ZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKyAgICAgICAg
UmlnaHQgbm93LCB0ZXN0MjYyIGV4cGVjdHMgYW4gZWFybHkgZXJyb3IgdG8gYmUgdGhyb3duIGlm
IHRoZSBsaHMgaXMgbm90IHNpbXBsZSwgd2hpY2ggZG9lcworICAgICAgICBub3QgbWF0Y2ggd2hh
dCB3ZSBkbyB3aXRoIG90aGVyIHJlYWQtbW9kaWZ5IGFzc2lnbm1lbnQgb3BlcmF0b3JzLiBUaGlz
IGlzIGxpa2VseSB0byBjaGFuZ2UKKyAgICAgICAgaW4gdGhlIGZ1dHVyZSB0byBtYXRjaCBleGlz
dGluZyBiZWhhdmlvciAodGhyb3cgYSBgUmVmZXJlbmNlRXJyb3JgKSBbMV0uCisKKyAgICAgICAg
WzFdOiA8aHR0cHM6Ly9naXRodWIuY29tL3RjMzkvZWNtYTI2Mi9pc3N1ZXMvMjU3I2lzc3VlY29t
bWVudC01MDI4Nzg3MDg+CisKIDIwMjAtMDQtMTQgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2tpcCBhbGwgbG93IGV4ZWN1dGFibGUgbWVtb3J5IHdhc20gdGVz
dHMgb24gYXJtNjQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVu
dC1vcGVyYXRvci1hbmQuanMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3Bl
cmF0b3ItYW5kLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NzU3YTU0OWM2MTVlMzE2NmQxNDMwZWJmM2M4MWY2
OTA4YmIwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2ln
bm1lbnQtb3BlcmF0b3ItYW5kLmpzCkBAIC0wLDAgKzEsMTY4NCBAQAorLy9AIHJ1bkxvZ2ljYWxB
c3NpZ25tZW50T3BlcmF0b3JzRW5hYmxlZAorCitmdW5jdGlvbiBzaG91bGRCZShmdW5jLCBleHBl
Y3RlZCkgeworICAgIGxldCBhY3R1YWwgPSBmdW5jKCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3Rl
ZCA9PT0gImZ1bmN0aW9uIiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFs
ICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04u
c3RyaW5naWZ5KGV4cGVjdGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7
Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxldCBl
cnJvcjsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJv
clR5cGUpKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5h
bWV9IGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworZnVuY3Rpb24gc2hv
dWxkVGhyb3dTeW50YXhFcnJvcihzY3JpcHQpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsK
KyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3Ig
PSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIFN5bnRheEVycm9yIGJ1dCBzYXcgJHtl
cnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHg7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9
LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVm
aW5lZDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsKKyAgICBy
ZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIHggJiY9IDQyOworICAgIHJldHVy
biB4OworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1
ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1
cm4geCAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICByZXR1cm4geCAmJj0g
NDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAg
IHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1
cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsK
KyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOworICAgIHJldHVybiB4
ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAi
dGVzdCI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHggJiY9
IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IFtdOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4g
eDsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1
bmRlZmluZWQ7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBudWxsOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIG51bGwpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIG51bGwpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJu
IHggJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gZmFsc2U7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHJldHVybiB4ICYm
PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsK
KyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDApOworCitzaG91bGRUaHJvdyhmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBl
RXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAg
cmV0dXJuIHggJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gIiI7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3No
b3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVzdCI7CisgICAgcmV0dXJu
IHggJiY9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisK
K3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4g
eCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hICYmPSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVu
ZGVmaW5lZH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVk
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAg
cmV0dXJuIHguYSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOwor
fSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9
OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4
LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZh
bHNlfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSAmJj0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeC5hICYmPSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IDF9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVy
biB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
InRlc3QifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgJiY9IDQyOworICAg
IHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHguYSAmJj0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogW119OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeC5hICYmPSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IHt9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHguYSAmJj0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
dW5kZWZpbmVkfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmlu
ZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9Owor
ICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hICYmPSA0MjsKKyAg
ICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5h
ICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwg
MCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAg
eC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAg
eC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30s
ICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07Cisg
ICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgIiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSAmJj0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
InRlc3QifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJldHVybiB4
LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHt9fTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVy
biB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVy
biB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAg
ICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4g
eFsiYSJdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1
ZX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAg
cmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeFsi
YSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0
MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsK
KyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHhbImEiXSAm
Jj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IDF9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4
WyJhIl0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAiIn07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9Owor
ICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YToge319OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdICYmPSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9
LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307
CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdW5kZWZpbmVkKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9Owor
ICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0g
NDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiBudWxsfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBudWxs
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAg
ICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVy
biB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJh
Il0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0g
NDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAw
fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsi
YSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiAxfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAg
IHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319Owor
ICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEi
XSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogW119OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQy
KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0
dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVm
aW5lZF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdICYmPSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIG51
bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICB4
WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAg
IHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOwor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07
CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdICYmPSA0
MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAg
ICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgeFswXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0g
JiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgeFswXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICB4WzBdICYmPSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgeFswXSAm
Jj0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gJiY9
IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwg
dW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxs
XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0gW3RydWVdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAg
ICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdICYm
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCAwKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICB4WzBdICYm
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gWzFdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsxXTsKKyAgICB4WzBdICYmPSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdICYmPSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHhb
MF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhb
MF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAgIHhb
MF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ICYmPSB5ID0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmIHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6
ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHwgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0
IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICYmPSB6OworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBs
ZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz89IHo7Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSB8fD0gejsKK30sIGZhbHNlKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIDMpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCAmJj0geSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgJiYgejsKK30sIDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCAmJj0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOwor
ICAgIHJldHVybiB4ICYmPSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggJiY9IHkgJiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggJiY9IHkgPz89IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJu
IHggJiY9IHkgfHw9IHo7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICBy
ZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKwor
ICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigi
ICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCBzZXQgNDIiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBs
ZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7
CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAg
IH0sCisgICAgfTsKKworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJl
dHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IGZhbHNlIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5k
ZWZpbmVkOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBh
ID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQg
dW5kZWZpbmVkIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkg
eworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7Cisg
ICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQi
KTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSAr
ICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgc2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHgg
PSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAg
ICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAor
ICAgIH07CisKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVu
ZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAg
YSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsi
YSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJn
ZXQgZ2V0IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAg
ICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBz
dXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyLmEgJiY9IHY7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4
LmEgJiY9IDQyOworICAgIHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSAr
ICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBz
ZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBb
XTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAg
ICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFy
ZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAg
IGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsK
KyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hICYmPSB2OworICAgICAgICB9CisgICAgfQor
CisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHguYSAmJj0g
NDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsg
eC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxz
ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBj
bGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJn
ZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAg
ICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAg
ICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGls
ZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1
c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0K
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOwor
ICAgICAgICAgICAgc3VwZXIuYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4
ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeC5hICYmPSA0MjsKKyAg
ICB4LmEgJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOwor
fSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIp
OworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAg
Y2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
Z2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAg
ICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hp
bGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAg
ICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQi
KTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gJiY9IDQy
OworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiAr
IHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFy
ZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKwor
ICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1
c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9
CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7
CisgICAgICAgICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNz
IENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNo
aWxkIik7CisgICAgICAgICAgICBzdXBlclsiYSJdICYmPSB2OworICAgICAgICB9CisgICAgfQor
CisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHhbImEiXSAm
Jj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsg
IiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVu
dCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisK
KyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5w
dXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAg
fQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIp
OworICAgICAgICAgICAgdGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFz
cyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1j
aGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsi
YSJdICYmPSA0MjsKKyAgICB4WyJhIl0gJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIg
IikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQt
cGFyZW50IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJu
IHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1
ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4g
eC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZh
bHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRUaHJvdyhmdW5j
dGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3
cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBUeXBl
RXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJl
dHVybiB4LmEgJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxl
OiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7
CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAg
IHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAg
ICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOwor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5l
ZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0g
JiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgewor
ICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBm
YWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIFR5cGVFcnJvcik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhb
ImEiXSAmJj0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1
c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4
LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZh
bHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICAoZnVu
Y3Rpb24oKSB7CisgICAgICAgIHggJiY9IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAg
cmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggJiY9IDQyOworICAgIH0pKCk7
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZp
bmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ICYmPSA0MjsK
KyAgICB9KSgpOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCAmJj0g
NDI7CisgICAgfSkoKTsKKyAgICByZXR1cm4geDsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9u
KCkgeworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1
cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30s
IHVuZGVmaW5lZCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQg
PSAwOworCisgICAgY29uc3QgeCA9IHRydWU7CisgICAgdHJ5IHsKKyAgICAgICAgeCAmJj0gKytj
b3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0g
ZmFsc2U7CisgICAgeCAmJj0gKytjb3VudDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3Qg
eCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50Owor
fSwgMCk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOwor
CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHg7
IH0KKworICAgIHRyeSB7CisgICAgICAgIHggJiY9ICsrY291bnQ7CisgICAgfSBjYXRjaCB7IH0K
KworICAgIHJldHVybiBjb3VudDsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIGZ1bmN0aW9uIGNh
cHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJu
IGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9
IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7
IHJldHVybiB4OyB9CisKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50Owor
fSwgMCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICB4ICYmPSA0MjsKKyAg
ICBsZXQgeCA9IHRydWU7CisgICAgcmV0dXJuIHg7Cit9LCBSZWZlcmVuY2VFcnJvcik7CisKKwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdW5kZWZpbmVkICYmPSA0MjsKK30s
IHVuZGVmaW5lZCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYG51bGwgJiY9IDQyYCk7CisK
K3Nob3VsZFRocm93U3ludGF4RXJyb3IoYHRydWUgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3lu
dGF4RXJyb3IoYGZhbHNlICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAwICYm
PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAxICYmPSA0MmApOworCitzaG91bGRU
aHJvd1N5bnRheEVycm9yKGAiIiAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihg
InRlc3QiICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB7fSAmJj0gNDJgKTsK
Kworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgW10gJiY9IDQyYCk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qcyBiL0pTVGVz
dHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1udWxsaXNoLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY5NDY1Y2M4NWRiMDFlMjIyMzYzYzJlMGEyYmI1NjI2Y2U5ZGJjN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlz
aC5qcwpAQCAtMCwwICsxLDE2OTkgQEAKKy8vQCBydW5Mb2dpY2FsQXNzaWdubWVudE9wZXJhdG9y
c0VuYWJsZWQKKworZnVuY3Rpb24gc2hvdWxkQmUoZnVuYywgZXhwZWN0ZWQpIHsKKyAgICBsZXQg
YWN0dWFsID0gZnVuYygpOworICAgIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT09ICJmdW5jdGlvbiIg
PyAhKGFjdHVhbCBpbnN0YW5jZW9mIGV4cGVjdGVkKSA6IGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShleHBlY3Rl
ZCl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeShhY3R1YWwpfWApOworfQorCitmdW5jdGlvbiBz
aG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsK
KyAgICAgICAgZnVuYygpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOwor
ICAgIH0KKworICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgZXJyb3JUeXBlKSkKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2Vycm9yVHlwZS5uYW1lfSBidXQgc2F3ICR7ZXJy
b3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93U3ludGF4RXJy
b3Ioc2NyaXB0KSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2Ny
aXB0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAg
ICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSkKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKGBFeHBlY3RlZCBTeW50YXhFcnJvciBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3IubmFt
ZX0hYCk7Cit9CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4OworICAgIHJldHVy
biB4ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7
CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiB4ID8/PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7Cisg
ICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICB4ID8/PSA0MjsK
KyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB0cnVlOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJu
IHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxz
ZTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICBy
ZXR1cm4geCA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSAwOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAxOworICAgIHggPz89IDQy
OworICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gIiI7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4Owor
fSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAg
ICByZXR1cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sICJ0
ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0
dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIE9iamVjdCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHggPz89
IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtd
OworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgQXJyYXkpOworCisKKworc2hvdWxk
VGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4g
eCA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4g
eCA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHRydWU7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiB4ID8/
PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IGZhbHNlOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgZmFsc2UpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICByZXR1cm4geCA/Pz0gNDI7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDA7CisgICAg
eCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IDE7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgMSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOworICAgIHggPz89IDQyOworICAgIHJl
dHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAi
IjsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSAiIjsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICBy
ZXR1cm4geCA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCA/
Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge307CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIEFy
cmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJl
dHVybiB4ID8/PSA0MjsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hID8/PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSA/
Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHgu
YSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07Cisg
ICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hID8/PSA0
MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
ZmFsc2V9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHgu
YSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogMH07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgPz89
IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9
OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7
Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsK
KyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSA/Pz0g
NDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAidGVzdCJ9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICJ0ZXN0Iik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICByZXR1
cm4geC5hID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBP
YmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07Cisg
ICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e307CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5k
ZWZpbmVkfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSA/Pz0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4LmEg
Pz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsK
KyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHguYSA/
Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogZmFsc2V9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICBy
ZXR1cm4geC5hID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IDB9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDAp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHJl
dHVybiB4LmEgPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogMX07CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJl
dHVybiB4LmEgPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6ICIifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAi
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsK
KyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHguYSA/Pz0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgQXJy
YXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAg
ICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAg
IHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geFsi
YSJdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9
OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSA/
Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7
Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZh
bHNlfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHJldHVy
biB4WyJhIl0gPz89IDQyOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IDB9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30s
IDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICBy
ZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9Owor
ICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4g
eFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHth
OiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgInRlc3QiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0g
Pz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7
Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7
fX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgT2JqZWN0KTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHJldHVy
biB4WyJhIl0gPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiBbXX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHt9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAg
ICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEi
XSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogbnVsbH07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9Owor
ICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAg
ICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEi
XSA/Pz0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiAwfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1
cm4geFsiYSJdID8/PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6IDF9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsK
KyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAidGVzdCIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAg
eFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEi
XSA/Pz0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IHt9fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtd
fTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgeFswXSA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0g
Pz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHhbMF0g
Pz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgeFsw
XSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30s
IGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOwor
ICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgZmFsc2UpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07CisgICAg
eFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0gPz89
IDQyOworICAgIHJldHVybiB4WzBdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gWyIiXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAgICB4WzBdID8/PSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBbInRlc3QiXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAidGVzdCIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0g
Pz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIE9i
amVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICB4
WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9
LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAg
ICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSA/Pz0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsK
KyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHJldHVybiB4WzBd
ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFt1bmRlZmluZWRdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAgIHJl
dHVybiB4WzBdID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFtudWxsXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAg
ICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2Zh
bHNlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbZmFsc2VdOworICAgIHhbMF0gPz89IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDApOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOworICAgIHhbMF0gPz89IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFsiIl07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAgICB4WzBdID8/PSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIE9iamVj
dCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhb
MF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOwor
fSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsK
KyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOwor
ICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSArIHo7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOwor
ICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSA9IHo7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOwor
ICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJiB6OworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsK
KyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz8gejsKK30sIGZhbHNlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5IHx8IHo7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAx
OworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSAmJj0gejsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9
IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ID8/PSB6OworfSwgZmFsc2Up
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5
ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgfHw9IHo7Cit9LCBmYWxz
ZSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAg
bGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSArIHo7Cit9LCAz
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5
ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPSB6OworfSwgMik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7
CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/PSB5ICYmIHo7Cit9LCAyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAg
ICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPz8gejsKK30sIDEpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSB8fCB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ID8/PSB5ICYmPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ID8/PSB5ID8/PSB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOwor
ICAgIHJldHVybiB4ID8/PSB5IHx8PSB6OworfSwgMSk7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHgg
PSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAg
ICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAor
ICAgIH07CisKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4g
bG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCB0cnVlIik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7Cisg
ICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdl
dCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAg
ICAgICB9LAorICAgIH07CisKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAg
ICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9
IHVuZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAg
ICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAg
ICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSA/Pz0gNDI7CisgICAgeC5h
ID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQg
c2V0IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOwor
ICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJd
ID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikg
KyAiICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0gewor
ICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAg
ICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9
OworCisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJu
IGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgZmFsc2UiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB1bmRlZmlu
ZWQ7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1
c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2
OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/
Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNl
dCBnZXQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBb
XTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAg
ICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFy
ZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAg
IGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsK
KyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hID8/PSB2OworICAgICAgICB9CisgICAgfQor
CisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRydWU7CisgICAgeC5hID8/PSA0
MjsKKyAgICB4LmEgPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4
Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHRydWUi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xh
c3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAg
ICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQg
ZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9Cisg
ICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAg
ICAgICAgICAgIHN1cGVyLmEgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9
IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gZmFsc2U7CisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEg
Pz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdl
dC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlz
Ll9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFy
ZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxk
Iik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBz
dXBlci5hID8/PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7
CisgICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7
CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxk
IGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0
LXBhcmVudCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsi
YSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4
WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBh
cmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJh
Il07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSA/Pz0gdjsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4
WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdl
dC1wYXJlbnQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9
IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAg
ICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsi
YSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOwor
ICAgIHhbImEiXSA/Pz0gNDI7CisgICAgeFsiYSJdID8/PSA0MjsKKworICAgIHJldHVybiBsb2cu
am9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hp
bGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKKwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRh
YmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRydWUpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0
YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBmYWxzZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAg
ICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0
Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
InVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5
KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxz
ZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxk
VGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307Cisg
ICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZp
bmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/
Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAg
IHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0
dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAg
ICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAg
IHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsK
KyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAg
IH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAg
ICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOwor
fSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAg
ICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAg
ICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAg
cmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9u
KCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAg
d3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwg
VHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1
ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggPz89IDQyOworICAgIH0pKCk7CisgICAg
cmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCA/Pz0g
NDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0
dXJuIHggPz89IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHgg
Pz89IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiAoZnVuY3Rpb24o
KSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOworfSwgZmFsc2UpOworCitz
aG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJl
dHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOwor
fSwgVHlwZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3Vu
dCA9IDA7CisKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICB4ID8/PSArK2NvdW50OworCisgICAg
cmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBj
b3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gKytjb3VudDsKKwor
ICAgIHJldHVybiBjb3VudDsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB0cnkgeworICAg
ICAgICB4ID8/PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7
Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7
CisKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4g
eDsgfQorCisgICAgeCA/Pz0gKytjb3VudDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3Qg
eCA9IGZhbHNlOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4
ID8/PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVk
OworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB0cnkgeworICAg
ICAgICB4ID8/PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7
Cit9LCAxKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIHggPz89IDQyOwor
ICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB1bmRlZmluZWQgPz89IDQyOwor
fSwgNDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBudWxsID8/PSA0MmApOworCitzaG91
bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVy
cm9yKGBmYWxzZSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMCA/Pz0gNDJg
KTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dT
eW50YXhFcnJvcihgIiIgPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCJ0ZXN0
IiA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihge30gPz89IDQyYCk7CisKK3No
b3VsZFRocm93U3ludGF4RXJyb3IoYFtdID8/PSA0MmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
bG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlODk0YzRmYmIx
OWY5MmQwMjYyMTc2ZjdmNmFkYTJjMGQzNTlhZTAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3Itb3IuanMKQEAgLTAsMCArMSwxNjg1
IEBACisvL0AgcnVuTG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkCisKK2Z1bmN0aW9u
IHNob3VsZEJlKGZ1bmMsIGV4cGVjdGVkKSB7CisgICAgbGV0IGFjdHVhbCA9IGZ1bmMoKTsKKyAg
ICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAiZnVuY3Rpb24iID8gIShhY3R1YWwgaW5zdGFuY2Vv
ZiBleHBlY3RlZCkgOiBhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoYGV4cGVjdGVkICR7SlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpfSBidXQgZ290ICR7SlNPTi5z
dHJpbmdpZnkoYWN0dWFsKX1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJy
b3JUeXBlKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShl
cnJvciBpbnN0YW5jZW9mIGVycm9yVHlwZSkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhw
ZWN0ZWQgJHtlcnJvclR5cGUubmFtZX0gYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWAp
OworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvd1N5bnRheEVycm9yKHNjcmlwdCkgeworICAgIGxl
dCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFu
Y2VvZiBTeW50YXhFcnJvcikpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgU3lu
dGF4RXJyb3IgYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQorCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4OworICAgIHggfHw9IDQyOworICAg
IHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHggfHw9IDQyOworICAgIHJl
dHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51
bGw7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1
cm4geCB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB0cnVlOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHggfHw9
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNl
OworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgeCB8fD0gNDI7Cisg
ICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gMTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSAxOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAgcmV0dXJuIHgg
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICIi
OworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAg
ICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgT2JqZWN0
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4IHx8PSA0
MjsKKyAgICByZXR1cm4geDsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHggfHw9IDQyOworICAgIHJl
dHVybiB4OworfSwgQXJyYXkpOworCisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3Ip
OworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICBy
ZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCB0cnVlKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgeCB8fD0gNDI7
CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7
CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHJldHVy
biB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSAxOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4g
eDsKK30sIDEpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7
CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gInRlc3QiOwor
ICAgIHJldHVybiB4IHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBPYmplY3QpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHgg
fHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFy
cmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAg
cmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge307CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAg
IHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVs
bH07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
dHJ1ZX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hIHx8PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSB8fD0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHguYSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07CisgICAgeC5hIHx8PSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6ICIifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogInRlc3QifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hIHx8PSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgT2JqZWN0
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHgu
YSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30s
IEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119Owor
ICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIEFycmF5KTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geC5hIHx8PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9Owor
ICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEg
fHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6IHVuZGVmaW5lZH07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAg
IHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVl
fTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5hIHx8PSA0
MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHguYSB8fD0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDEpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHguYSB8fD0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeC5hIHx8
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0
In07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHgu
YSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IHt9fTsKKyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBPYmpl
Y3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAg
ICByZXR1cm4geC5hIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4
WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6
IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeFsiYSJd
IHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsi
YSJdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9
OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDEpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gfHw9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsi
YSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9
IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogInRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07Cisg
ICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgQXJyYXkpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAg
eFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhb
ImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJh
Il07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
bnVsbH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgdHJ1
ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07Cisg
ICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07
CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4
ID0ge2E6IDF9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4WyJh
Il0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdIHx8
PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9
fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHhbImEiXSB8fD0gNDI7Cisg
ICAgcmV0dXJuIHhbImEiXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgQXJy
YXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAg
ICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBBcnJheSk7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJldHVybiB4WzBdIHx8
PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsK
KyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSB8
fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3Vu
ZGVmaW5lZF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHJldHVybiB4
WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBbbnVsbF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAgIHJldHVybiB4
WzBdIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFt0cnVlXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgcmV0
dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFtmYWxzZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHJldHVy
biB4WzBdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbMF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHJldHVybiB4WzBd
IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsx
XTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDEpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07Cisg
ICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQy
OworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRl
c3QiXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFsw
XSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IFt7fV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBPYmplY3Qp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtbXV07CisgICAgcmV0dXJu
IHhbMF0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFtbXV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBBcnJh
eSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAg
cmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gW107CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsK
KyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFtudWxsXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbbnVsbF07CisgICAgeFswXSB8fD0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSBbdHJ1ZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgeFswXSB8fD0gNDI7
CisgICAgcmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBd
IHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07CisgICAgeFswXSB8
fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgMSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgeFswXSB8fD0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdIHx8PSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sICJ0ZXN0
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAg
ICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdIHx8PSA0
MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBb
e31dOworICAgIHhbMF0gfHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJuIHhb
MF0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gW1tdXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5
KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBs
ZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICsgejsKK30sIHRy
dWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0
IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA9IHo7Cit9LCB0cnVl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5
ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiYgejsKK30sIHRydWUp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkg
PSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/PyB6OworfSwgdHJ1ZSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9
IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8IHo7Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiY9IHo7Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgfHw9IHo7Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0g
MTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPz89IHo7Cit9LCB0cnVlKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQg
eSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICsgejsKK30sIDMpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAx
OworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA9IHo7Cit9LCAyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAg
ICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiYgejsKK30sIDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7
CisgICAgcmV0dXJuIHggfHw9IHkgJiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7Cisg
ICAgcmV0dXJuIHggfHw9IHkgfHw9IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggfHw9IHkgPz89IHo7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAg
ICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAg
ICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAg
fTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cu
am9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBs
ZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7
CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAg
IH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJl
dHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVu
ZGVmaW5lZDsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBs
b2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAg
YSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8
PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0
IGdldCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtd
OworCisgICAgbGV0IGEgPSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAg
ICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7
CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAi
ICIgKyBhOworfSwgImdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0geworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAg
IHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBs
b2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9Owor
CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxv
Zy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVk
OworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsK
KyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQg
Z2V0IDQyIik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAg
ICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVu
dCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBj
bGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7Cisg
ICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1j
aGlsZCIpOworICAgICAgICAgICAgc3VwZXIuYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB0cnVlOworICAgIHguYSB8fD0gNDI7
CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5f
YTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAg
IHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAg
ICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4
dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
Z2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAg
ICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAg
ICAgICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBu
ZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8
PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQt
Y2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGls
ZCBnZXQtcGFyZW50IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cg
PSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAg
ICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOwor
ICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQt
cGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQor
ICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAg
ICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIu
YTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
c2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9CisgICAg
fQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4
LmEgfHw9IDQyOworICAgIHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSAr
ICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJl
bnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2Eg
fHw9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBh
KHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1
cGVyWyJhIl0gfHw9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGls
ZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEiXSB8fD0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNo
aWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAg
ICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8
fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7
CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOwor
ICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEo
dikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3Vw
ZXJbImEiXSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxk
OworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEiXSB8fD0g
NDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNo
aWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQg
Z2V0LXBhcmVudCA0MiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAg
ICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBh
cmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAg
ICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJh
Il07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2go
InNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSB8fD0gdjsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7Cisg
ICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5q
b2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGls
ZCBnZXQtcGFyZW50IHNldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFi
bGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgdHJ1ZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRh
YmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5l
UHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdy
aXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQg
eCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFs
dWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4g
eC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAi
dXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
eCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNl
LAorICAgIH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hv
dWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307
CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5k
ZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHgu
YSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAg
ICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAg
cmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7Cisg
ICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOwor
ICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsK
KyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAg
IH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAg
ICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOwor
fSwgdHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsK
KyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAg
ICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7Cisg
ICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhm
dW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisg
ICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0
MjsKK30sIFR5cGVFcnJvcik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB4IHx8PSA0MjsKKyAgICB9KSgp
OworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IHggfHw9IDQyOworICAgIH0pKCk7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAg
IHJldHVybiB4IHx8PSA0MjsKKyAgICB9KSgpOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAg
ICB4IHx8PSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3Vs
ZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1
bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCB8fD0gNDI7CisgICAgfSkoKTsKK30sIFR5cGVF
cnJvcik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmlu
ZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggfHw9IDQyOwor
ICAgIH0pKCk7Cit9LCBUeXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSB0cnVlOworICAgIHggfHw9ICsrY291
bnQ7CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICB0cnkgewor
ICAgICAgICB4IHx8PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291
bnQ7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsK
KworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgdHJ5IHsKKyAgICAgICAgeCB8fD0gKytj
b3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKKwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3Qg
eCA9IHRydWU7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHg7IH0KKworICAgIHgg
fHw9ICsrY291bnQ7CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAg
ICBmdW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4geDsgfQorCisgICAgdHJ5IHsKKyAgICAgICAg
eCB8fD0gKytjb3VudDsKKyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwg
MSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBj
b25zdCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9
CisKKyAgICB0cnkgeworICAgICAgICB4IHx8PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisK
KyAgICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkg
eworICAgIHggfHw9IDQyOworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30sIFJl
ZmVyZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB1
bmRlZmluZWQgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBudWxs
IHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlIHx8PSA0MmApOworCitz
aG91bGRUaHJvd1N5bnRheEVycm9yKGBmYWxzZSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50
YXhFcnJvcihgMCB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSB8fD0gNDJg
KTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgIiIgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93
U3ludGF4RXJyb3IoYCJ0ZXN0IiB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihg
e30gfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYFtdIHx8PSA0MmApOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2Nv
bmZpZy55YW1sCmluZGV4IDBiNmI1NmU4YzFkMmNlMTBhNmU2M2NiNDcwMmY4MDk0MGM3ZTBhNTgu
LjBjNjdhNGRlNjMzZTJkNTVkOWM5MzU0N2Q2OGMwNGQ2NGIxYzAzZjcgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlh
bWwKQEAgLTQsNiArNCw3IEBAIGZsYWdzOgogICBCaWdJbnQ6IHVzZUJpZ0ludAogICBXZWFrUmVm
OiB1c2VXZWFrUmVmcwogICBjbGFzcy1maWVsZHMtcHVibGljOiB1c2VQdWJsaWNDbGFzc0ZpZWxk
cworICBsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzOiB1c2VMb2dpY2FsQXNzaWdubWVudE9w
ZXJhdG9ycwogc2tpcDoKICAgZmVhdHVyZXM6CiAgICAgLSBTaGFyZWRBcnJheUJ1ZmZlcgpAQCAt
MjAsOCArMjEsNiBAQCBza2lwOgogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMjQ3NQogICAgIC0gcmVnZXhwLW1hdGNoLWluZGljZXMKICAgICAtIHRvcC1s
ZXZlbC1hd2FpdAotICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwOTcxNgotICAgIC0gbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycwogICAgICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjU2NgogICAgIC0gUHJvbWlzZS5h
bnkKICAgICAtIEFnZ3JlZ2F0ZUVycm9yCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXgg
NGFlMmE3NzAyZDdlMTA1NWFiOTVmZmYwMGU0YmY3ZTY5YmEwMDMxNS4uNjMwZmFjOWViMGYxZmQx
Zjk5NTdkN2U3OTZkOTA3MDFiNjI0YjVhZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApA
QCAtMjcxOCw2ICsyNzE4LDEyIEBAIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvaW1wb3J0Lm1l
dGEvc3ludGF4L2ludmFsaWQtYXNzaWdubWVudC10YXJnZXQtZm9yLW9mLWxvCiB0ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2luc3RhbmNlb2YvcHJvdG90eXBlLWdldHRlci13aXRoLXByaW1pdGl2
ZS5qczoKICAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogZ2V0dGVyIGZvciAncHJvdG90eXBlJyBj
YWxsZWQiCiAgIHN0cmljdCBtb2RlOiAiVGVzdDI2MkVycm9yOiBnZXR0ZXIgZm9yICdwcm90b3R5
cGUnIGNhbGxlZCIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50
L2xnY2wtYW5kLWFzc2lnbm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanM6CisgIGRlZmF1
bHQ6ICJUZXN0MjYyOiBUaGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4iCit0
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gt
YXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3Qy
NjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKK3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVy
YXRvci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
bmV3L2N0b3JFeHByLWZuLXJlZi1iZWZvcmUtYXJncy1ldmFsLWZuLXdyYXB1cC5qczoKICAgZGVm
YXVsdDogIlR5cGVFcnJvcjogMSBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3
IHgoeCA9IDEpJykiCiAgIHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiAxIGlzIG5vdCBhIGNvbnN0
cnVjdG9yIChldmFsdWF0aW5nICduZXcgeCh4ID0gMSknKSIKZGlmZiAtLWdpdCBhL3Jlc3VsdHMv
LmhlbHBlcnMvYnl0ZWNvZGUtY2FjaGUtdGVzdC1oZWxwZXIuc2ggYi9yZXN1bHRzLy5oZWxwZXJz
L2J5dGVjb2RlLWNhY2hlLXRlc3QtaGVscGVyLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MmZhMjI5N2Q5MjRl
ODU4ZDc3ZGU2NmI3Y2VhYWRkY2Q1ZGUyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHRzLy5o
ZWxwZXJzL2J5dGVjb2RlLWNhY2hlLXRlc3QtaGVscGVyLnNoCkBAIC0wLDAgKzEsNTIgQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworc2V0IC1lCisKK215c3lzKCkgeworICAgIHNl
dCArZQorICAgIGV2YWwgIiQqIgorICAgIGV4aXRDb2RlPSQ/CisgICAgaWYgWyAkZXhpdENvZGUg
IT0gMCBdOyB0aGVuCisgICAgICAgIGVjaG8gIkNvbW1hbmQgJyQqJyBmYWlsZWQiCisgICAgICAg
IGV4aXQgJGV4aXRDb2RlCisgICAgZmkKK30KKworcGF0aFRvVk09JDEKK3NoaWZ0CitpbnB1dEZp
bGU9JDEKK3NoaWZ0CitleHRyYU9wdGlvbnM9KCAiJEAiICkKK2Rpc2tDYWNoZVBhdGg9JChta3Rl
bXAgLWQgLXQgImJ5dGVjb2RlLWNhY2hlIikKKworX3RyYXBfZXhpdCgpIHsgcm0gLXJmICIkZGlz
a0NhY2hlUGF0aCI7IH0KK3RyYXAgX3RyYXBfZXhpdCBFWElUCisKK2V4cG9ydCBKU0NfZGlza0Nh
Y2hlUGF0aD0kZGlza0NhY2hlUGF0aAorbXlzeXMgIiRwYXRoVG9WTSIgIiRpbnB1dEZpbGUiICIk
e2V4dHJhT3B0aW9uc1tAXX0iCisKK2lmIFsgLXogIiRKU0NfZm9yY2VEaXNrQ2FjaGUiIF07IHRo
ZW4KKyAgICBleHBvcnQgSlNDX2ZvcmNlRGlza0NhY2hlPXRydWUKK2ZpCitteXN5cyAiJHBhdGhU
b1ZNIiAiJGlucHV0RmlsZSIgIiR7ZXh0cmFPcHRpb25zW0BdfSIKZGlmZiAtLWdpdCBhL3Jlc3Vs
dHMvLmhlbHBlcnMvanMtZXhjZXB0aW9uLWZ1enogYi9yZXN1bHRzLy5oZWxwZXJzL2pzLWV4Y2Vw
dGlvbi1mdXp6Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmMzBlOGNjZmQxZDE2MzVhNDVhZmFhYzFiNjdhMjBkNWU2
ZmZkMGEKLS0tIC9kZXYvbnVsbAorKysgYi9yZXN1bHRzLy5oZWxwZXJzL2pzLWV4Y2VwdGlvbi1m
dXp6CkBAIC0wLDAgKzEsMTQ5IEBACisjIS91c3IvYmluL2VudiBwZXJsCisKKyMgQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCit1c2Ugc3RyaWN0OwordXNlIEZpbmRCaW47Cit1c2UgR2V0
b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdoKTsKK3VzZSBQT1NJWDsKKworIyBXZSBm
aXJzdCB3YW50IHRvIHJ1biB0aGUgdGVzdCBvbmNlIHRvIGRldGVybWluZSB3aGF0IHRoZSBudW1i
ZXIgb2YgZW5jb3VudGVyZWQKKyMgY2hlY2tzIGlzLiBUaGVuIHdlIHdhbnQgdG8gcnVuIGl0IGFn
YWluIHNvbWUgbnVtYmVyIG9mIHRpbWVzIHdpdGggcmFuZG9tIGNoZWNrCisjIGFtb3VudHMuIFRo
ZSB0ZXN0IGlzIHN1Y2Nlc3NmdWwgaWYgYWZ0ZXIgcHJpbnRpbmcgYSBtZXNzYWdlIHRoYXQgd2Un
cmUKKyMgaW50ZW5kaW5nIHRvIHRocm93IHRoZSBmdXp6IGV4Y2VwdGlvbiwgaXQgcHJpbnRzIGFu
b3RoZXIgbWVzc2FnZSBzYXlpbmcgdGhhdCBpdAorIyBjYXVnaHQgdGhlIGV4Y2VwdGlvbi4KKwor
bXkgJHJlcGVhdCA9IDEwMDsKK215ICRzZWVkID0gdGltZSgpOworbXkgJHZlcmJvc2UgPSAwOwor
CisjIFdlIGFsbG93IGZsYWdzIHRvIGJlIHBhc3NlZCB2aWEgZW52aXJvbm1lbnQgdmFyaWFibGVz
LCB3aGljaCBpcyByYXRoZXIgdXNlZnVsIGZvcgorIyBydW5uaW5nIHdpdGggdGhlIHJ1bi1qc2Mt
c3RyZXNzLXRlc3RzIGhhcm5lc3MuCitpZiAoZGVmaW5lZCgkRU5We0pTX0VGVVpaX1JFUEVBVH0p
KSB7CisgICAgJHJlcGVhdCA9ICRFTlZ7SlNfRUZVWlpfUkVQRUFUfTsKK30KK2lmIChkZWZpbmVk
KCRFTlZ7SlNfRUZVWlpfU0VFRH0pKSB7CisgICAgJHNlZWQgPSAkRU5We0pTX0VGVVpaX1NFRUR9
OworfQoraWYgKGRlZmluZWQoJEVOVntKU19FRlVaWl9WRVJCT1NFfSkpIHsKKyAgICAkdmVyYm9z
ZSA9ICRFTlZ7SlNfRUZVWlpfVkVSQk9TRX07Cit9CisKK0dldE9wdGlvbnMoCisgICAgJ3JlcGVh
dD1zJyA9PiBcJHJlcGVhdCwKKyAgICAnc2VlZD1zJyA9PiBcJHNlZWQsCisgICAgJ3ZlcmJvc2Un
ID0+IFwkdmVyYm9zZQorKTsKKworbXkgJGNvbW1hbmRTdHJpbmcgPSBzaGlmdCBAQVJHVjsKKwor
bXkgJGNoZWNrQ291bnQ7CisKK3N1YiBmYWlsIHsKKyAgICBteSAkY29udGV4dCA9IHNoaWZ0Owor
ICAgIHNlbGVjdCgoc2VsZWN0KFNURE9VVCksICQgfD0gMSlbMF0pOyAjIFRoaXMgaXMgYSBwZXJs
aXNtIGZvciBmbHVzaC4gV2UgbmVlZCB0byBkbyBpdCB0aGlzIHdheSB0byBzdXBwb3J0IG9sZGVy
IHBlcmxzLgorICAgIHNlbGVjdCgoc2VsZWN0KFNUREVSUiksICQgfD0gMSlbMF0pOworICAgIGRp
ZSAiRmFpbHVyZSBmb3IgY29tbWFuZCAkY29tbWFuZFN0cmluZyB3aXRoIHNlZWQgJHNlZWQsIHJl
cGVhdCAkcmVwZWF0OiAkY29udGV4dCI7Cit9CisKK2lmIChzaGlmdCBAQVJHVikgeworICAgIGRp
ZSAiSWdub3JpbmcgZ2FyYmFnZSBhcmd1bWVudHM7IG9ubHkgdGhlIGZpcnN0IG5vbi1vcHRpb24g
YXJndW1lbnQgaXMgdXNlZCBhcyB0aGUgY29tbWFuZCBzdHJpbmcuIjsKK30KKworb3BlbiAobXkg
JHRlc3RJbnB1dCwgIiRjb21tYW5kU3RyaW5nIHwiKSBvciBmYWlsKCJDYW5ub3QgZXhlY3V0ZSBp
bml0aWFsIGNvbW1hbmQgd2hlbiBnZXR0aW5nIGNoZWNrIGNvdW50Iik7Cit3aGlsZSAobXkgJGlu
cHV0TGluZSA9IDwkdGVzdElucHV0PikgeworICAgIGNob21wKCRpbnB1dExpbmUpOworICAgIG15
ICRoYW5kbGVkID0gMDsKKyAgICBpZiAoJGlucHV0TGluZSA9fiAvXkpTQyBFWENFUFRJT04gRlVa
WjovKSB7CisgICAgICAgIGlmICgkJyA9fiAvZW5jb3VudGVyZWQgKFswLTldKykgY2hlY2tzXC4v
KSB7CisgICAgICAgICAgICAkY2hlY2tDb3VudCA9ICQxOworICAgICAgICB9CisgICAgICAgICRo
YW5kbGVkID0gMTsKKyAgICB9CisgICAgaWYgKCEkaGFuZGxlZCB8fCAkdmVyYm9zZSkgeworICAg
ICAgICBwcmludCAiY2hlY2tDb3VudDogJGlucHV0TGluZVxuIjsKKyAgICB9Cit9CitjbG9zZSgk
dGVzdElucHV0KTsKKworaWYgKCR2ZXJib3NlKSB7CisgICAgcHJpbnQgIkNoZWNrIGNvdW50OiAk
Y2hlY2tDb3VudFxuIjsKKyAgICBwcmludCAiU2VlZDogJHNlZWRcbiI7Cit9CisKK2lmICghJGNo
ZWNrQ291bnQpIHsKKyAgICBwcmludCAiRXhjZXB0aW9uIGZ1enogdGVzdGluZyBub3Qgc3VwcG9y
dGVkIGJ5IGpzYyBiaW5hcnkuXG4iOworICAgIGV4aXQgMDsKK30KKworc3JhbmQoJHNlZWQpOwor
Citmb3IgKG15ICRpdGVyYXRpb24gPSAwOyAkaXRlcmF0aW9uIDwgJHJlcGVhdDsgKyskaXRlcmF0
aW9uKSB7CisgICAgbXkgJHRhcmdldCA9IGludChyYW5kKCkgKiAoJGNoZWNrQ291bnQgLSAxKSkg
KyAyOworICAgIGlmICgkdmVyYm9zZSkgeworICAgICAgICBwcmludCAiaXRlcmF0aW9uKCRpdGVy
YXRpb24pIHRhcmdldCgkdGFyZ2V0KTogUnVubmluZy5cbiI7CisgICAgfQorICAgIG9wZW4gKCR0
ZXN0SW5wdXQsICIkY29tbWFuZFN0cmluZyAtLWZpcmVFeGNlcHRpb25GdXp6QXQ9JHRhcmdldCB8
Iikgb3IgZmFpbCgiQ2Fubm90IGV4ZWN1dGUgY29tbWFuZCBvbiBpdGVyYXRpb24gJGl0ZXJhdGlv
biIpOworICAgIG15ICRzdGF0ZSA9ICJ3YWl0aW5nIjsKKyAgICB3aGlsZSAobXkgJGlucHV0TGlu
ZSA9IDwkdGVzdElucHV0PikgeworICAgICAgICBjaG9tcCgkaW5wdXRMaW5lKTsKKyAgICAgICAg
bXkgJGhhbmRsZWQgPSAwOworICAgICAgICBpZiAoJGlucHV0TGluZSA9fiAvXkpTQyBFWENFUFRJ
T04gRlVaWjovKSB7CisgICAgICAgICAgICBpZiAoJCcgPX4gL1Rocm93aW5nIGZ1enogZXhjZXB0
aW9uLykgeworICAgICAgICAgICAgICAgIGlmICgkdmVyYm9zZSkgeworICAgICAgICAgICAgICAg
ICAgICBwcmludCAiaXRlcmF0aW9uKCRpdGVyYXRpb24pIHRhcmdldCgkdGFyZ2V0KTogVGhyZXcg
ZnV6eiBleGNlcHRpb24uXG4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBp
ZiAoJHN0YXRlIGVxICJ3YWl0aW5nIikgeworICAgICAgICAgICAgICAgICAgICAkc3RhdGUgPSAi
dGhyb3duIjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBm
YWlsKCJVbmV4cGVjdGVkICRpbnB1dExpbmUgd2hpbGUgaW4gc3RhdGUgJHN0YXRlIGZvciB0YXJn
ZXQgJHRhcmdldCIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzaWYgKCQn
ID1+IC9DYXVnaHQgZXhjZXB0aW9uLykgeworICAgICAgICAgICAgICAgIGlmICgkdmVyYm9zZSkg
eworICAgICAgICAgICAgICAgICAgICBwcmludCAiaXRlcmF0aW9uKCRpdGVyYXRpb24pIHRhcmdl
dCgkdGFyZ2V0KTogQ2F1Z2h0IGZ1enogZXhjZXB0aW9uLlxuIjsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgaWYgKCRzdGF0ZSBlcSAidGhyb3duIikgeworICAgICAgICAgICAg
ICAgICAgICAkc3RhdGUgPSAid2FpdGluZyI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgZmFpbCgiVW5leHBlY3RlZCAkaW5wdXRMaW5lIHdoaWxlIGluIHN0
YXRlICRzdGF0ZSBmb3IgdGFyZ2V0ICR0YXJnZXQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICAkaGFuZGxlZCA9IDE7CisgICAgICAgIH0KKyAgICAgICAg
aWYgKCEkaGFuZGxlZCB8fCAkdmVyYm9zZSkgeworICAgICAgICAgICAgcHJpbnQgIml0ZXJhdGlv
bigkaXRlcmF0aW9uKSB0YXJnZXQoJHRhcmdldCk6ICRpbnB1dExpbmVcbiI7CisgICAgICAgIH0K
KyAgICB9CisgICAgaWYgKCRzdGF0ZSBuZSAid2FpdGluZyIpIHsKKyAgICAgICAgZmFpbCgiVW5l
eHBlY3RlZCBzdGF0ZSAkc3RhdGUgYXQgZW5kIGZvciB0YXJnZXQgJHRhcmdldCIpOworICAgIH0K
KyAgICBjbG9zZSgkdGVzdElucHV0KTsKKyAgICBpZiAoJD8gIT0gMCkgeworICAgICAgICBmYWls
KCJVbmV4cGVjdGVkIGV4aXQgc3RhdHVzICQ/IGZvciB0YXJnZXQgJHRhcmdldCIpOworICAgIH0K
K30KKworaWYgKCR2ZXJib3NlKSB7CisgICAgcHJpbnQgIlN1Y2Nlc3MhXG4iOworfQpkaWZmIC0t
Z2l0IGEvcmVzdWx0cy8uaGVscGVycy9qcy1leGVjdXRhYmxlLWFsbG9jYXRpb24tZnV6eiBiL3Jl
c3VsdHMvLmhlbHBlcnMvanMtZXhlY3V0YWJsZS1hbGxvY2F0aW9uLWZ1enoKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTlmYTdlOGUyZWQxMDAzODIzMDQ1NDMxYWM3ZTdjZDc3OTAzZWRhYQotLS0gL2Rldi9udWxsCisr
KyBiL3Jlc3VsdHMvLmhlbHBlcnMvanMtZXhlY3V0YWJsZS1hbGxvY2F0aW9uLWZ1enoKQEAgLTAs
MCArMSwxMjYgQEAKKyMhL3Vzci9iaW4vZW52IHBlcmwKKworIyBDb3B5cmlnaHQgKEMpIDIwMTQs
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
IyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisjIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK3VzZSBzdHJpY3Q7Cit1c2UgRmluZEJpbjsKK3VzZSBHZXRvcHQ6
OkxvbmcgcXcoOmNvbmZpZyBwYXNzX3Rocm91Z2gpOwordXNlIFBPU0lYOworCisjIFdlIGZpcnN0
IHdhbnQgdG8gcnVuIHRoZSB0ZXN0IG9uY2UgdG8gZGV0ZXJtaW5lIHdoYXQgdGhlIG51bWJlciBv
ZiBlbmNvdW50ZXJlZAorIyBjaGVja3MgaXMuIFRoZW4gd2Ugd2FudCB0byBydW4gaXQgYWdhaW4g
c29tZSBudW1iZXIgb2YgdGltZXMgd2l0aCByYW5kb20gY2hlY2sKKyMgYW1vdW50cy4gVGhlIHRl
c3QgaXMgc3VjY2Vzc2Z1bCBpZiBpdCBkb2Vzbid0IGNyYXNoLgorCitteSAkcmVwZWF0ID0gMjA7
CitteSAkc2VlZCA9IHRpbWUoKTsKK215ICR2ZXJib3NlID0gMDsKKworIyBXZSBhbGxvdyBmbGFn
cyB0byBiZSBwYXNzZWQgdmlhIGVudmlyb25tZW50IHZhcmlhYmxlcywgd2hpY2ggaXMgcmF0aGVy
IHVzZWZ1bCBmb3IKKyMgcnVubmluZyB3aXRoIHRoZSBydW4tanNjLXN0cmVzcy10ZXN0cyBoYXJu
ZXNzLgoraWYgKGRlZmluZWQoJEVOVntKU19FQUZVWlpfUkVQRUFUfSkpIHsKKyAgICAkcmVwZWF0
ID0gJEVOVntKU19FQUZVWlpfUkVQRUFUfTsKK30KK2lmIChkZWZpbmVkKCRFTlZ7SlNfRUFGVVpa
X1NFRUR9KSkgeworICAgICRzZWVkID0gJEVOVntKU19FQUZVWlpfU0VFRH07Cit9CitpZiAoZGVm
aW5lZCgkRU5We0pTX0VBRlVaWl9WRVJCT1NFfSkpIHsKKyAgICAkdmVyYm9zZSA9ICRFTlZ7SlNf
RUFGVVpaX1ZFUkJPU0V9OworfQorCitHZXRPcHRpb25zKAorICAgICdyZXBlYXQ9cycgPT4gXCRy
ZXBlYXQsCisgICAgJ3NlZWQ9cycgPT4gXCRzZWVkLAorICAgICd2ZXJib3NlJyA9PiBcJHZlcmJv
c2UKKyk7CisKK215ICRjb21tYW5kU3RyaW5nID0gc2hpZnQgQEFSR1Y7CisKK215ICRjaGVja0Nv
dW50OworCitzdWIgZmFpbCB7CisgICAgbXkgJGNvbnRleHQgPSBzaGlmdDsKKyAgICBzZWxlY3Qo
KHNlbGVjdChTVERPVVQpLCAkIHw9IDEpWzBdKTsgIyBUaGlzIGlzIGEgcGVybGlzbSBmb3IgZmx1
c2guIFdlIG5lZWQgdG8gZG8gaXQgdGhpcyB3YXkgdG8gc3VwcG9ydCBvbGRlciBwZXJscy4KKyAg
ICBzZWxlY3QoKHNlbGVjdChTVERFUlIpLCAkIHw9IDEpWzBdKTsKKyAgICBkaWUgIkZhaWx1cmUg
Zm9yIGNvbW1hbmQgJGNvbW1hbmRTdHJpbmcgd2l0aCBzZWVkICRzZWVkLCByZXBlYXQgJHJlcGVh
dDogJGNvbnRleHQiOworfQorCitpZiAoc2hpZnQgQEFSR1YpIHsKKyAgICBkaWUgIklnbm9yaW5n
IGdhcmJhZ2UgYXJndW1lbnRzOyBvbmx5IHRoZSBmaXJzdCBub24tb3B0aW9uIGFyZ3VtZW50IGlz
IHVzZWQgYXMgdGhlIGNvbW1hbmQgc3RyaW5nLiI7Cit9CisKK29wZW4gKG15ICR0ZXN0SW5wdXQs
ICIkY29tbWFuZFN0cmluZyAtLXVzZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ej10cnVlIHwiKSBv
ciBmYWlsKCJDYW5ub3QgZXhlY3V0ZSBpbml0aWFsIGNvbW1hbmQgd2hlbiBnZXR0aW5nIGNoZWNr
IGNvdW50Iik7Cit3aGlsZSAobXkgJGlucHV0TGluZSA9IDwkdGVzdElucHV0PikgeworICAgIGNo
b21wKCRpbnB1dExpbmUpOworICAgIG15ICRoYW5kbGVkID0gMDsKKyAgICBpZiAoJGlucHV0TGlu
ZSA9fiAvSlNDIEVYRUNVVEFCTEUgQUxMT0NBVElPTiBGVVpaOiBlbmNvdW50ZXJlZCAoWzAtOV0r
KSBjaGVja3NcLi8pIHsKKyAgICAgICAgJGNoZWNrQ291bnQgPSAkMTsKKyAgICAgICAgJGhhbmRs
ZWQgPSAxOworICAgIH0KKyAgICBpZiAoISRoYW5kbGVkIHx8ICR2ZXJib3NlKSB7CisgICAgICAg
IHByaW50ICJjaGVja0NvdW50OiAkaW5wdXRMaW5lXG4iOworICAgIH0KK30KK2Nsb3NlKCR0ZXN0
SW5wdXQpOworCitpZiAoJHZlcmJvc2UpIHsKKyAgICBwcmludCAiQ2hlY2sgY291bnQ6ICRjaGVj
a0NvdW50XG4iOworICAgIHByaW50ICJTZWVkOiAkc2VlZFxuIjsKK30KKworaWYgKCEkY2hlY2tD
b3VudCkgeworICAgIHByaW50ICJFeGVjdXRhYmxlIGFsbG9jYXRpb24gZnV6eiB0ZXN0aW5nIG5v
dCBzdXBwb3J0ZWQgYnkganNjIGJpbmFyeS5cbiI7CisgICAgZXhpdCAwOworfQorCisjIEZpcnN0
IGRvIHNvbWUgdGVzdHMgd2hlcmUgd2UgaGF2ZSBvbmUtb2ZmIGZhaWx1cmVzLgorc3JhbmQoJHNl
ZWQpOworCitmb3IgKG15ICRpdGVyYXRpb24gPSAwOyAkaXRlcmF0aW9uIDwgJHJlcGVhdDsgKysk
aXRlcmF0aW9uKSB7CisgICAgbXkgJHRhcmdldCA9IGludChyYW5kKCkgKiAkY2hlY2tDb3VudCkg
KyAxOworICAgIGlmICgkdmVyYm9zZSkgeworICAgICAgICBwcmludCAiaXRlcmF0aW9uKCRpdGVy
YXRpb24pIHRhcmdldCgkdGFyZ2V0KSBvbmUtc2hvdDogUnVubmluZy5cbiI7CisgICAgfQorICAg
IG15ICRyZXN1bHQgPSBzeXN0ZW0oIiRjb21tYW5kU3RyaW5nIC0tdXNlRXhlY3V0YWJsZUFsbG9j
YXRpb25GdXp6PXRydWUgLS1maXJlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6QXQ9JHRhcmdldCIp
OworICAgIGlmICgkcmVzdWx0ICE9IDApIHsKKyAgICAgICAgZmFpbCgiQ2Fubm90IGV4ZWN1dGUg
Y29tbWFuZCBvbiBpdGVyYXRpb24gJGl0ZXJhdGlvbiwgc3RhdHVzICQ/IGZvciB0YXJnZXQgJHRh
cmdldCIpOworICAgIH0KK30KKworIyBUaGVuIGRvIHNvbWUgdGVzdHMgd2hlcmUgd2Ugc3RhcnQg
ZmFpbGluZyBhdCBhIHBhcnRpY3VsYXIgcG9pbnQsIGFuZCB0aGVuIHBlcm1hZmFpbC4KK3NyYW5k
KCRzZWVkKTsKKworZm9yIChteSAkaXRlcmF0aW9uID0gMDsgJGl0ZXJhdGlvbiA8ICRyZXBlYXQ7
ICsrJGl0ZXJhdGlvbikgeworICAgIG15ICR0YXJnZXQgPSBpbnQocmFuZCgpICogJGNoZWNrQ291
bnQpICsgMTsKKyAgICBpZiAoJHZlcmJvc2UpIHsKKyAgICAgICAgcHJpbnQgIml0ZXJhdGlvbigk
aXRlcmF0aW9uKSB0YXJnZXQoJHRhcmdldCkgYXQtb3ItYWZ0ZXI6IFJ1bm5pbmcuXG4iOworICAg
IH0KKyAgICBteSAkcmVzdWx0ID0gc3lzdGVtKCIkY29tbWFuZFN0cmluZyAtLXVzZUV4ZWN1dGFi
bGVBbGxvY2F0aW9uRnV6ej10cnVlIC0tZmlyZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ekF0T3JB
ZnRlcj0kdGFyZ2V0Iik7CisgICAgaWYgKCRyZXN1bHQgIT0gMCkgeworICAgICAgICBmYWlsKCJD
YW5ub3QgZXhlY3V0ZSBjb21tYW5kIG9uIGl0ZXJhdGlvbiAkaXRlcmF0aW9uLCBzdGF0dXMgJD8g
Zm9yIHRhcmdldCAkdGFyZ2V0Iik7CisgICAgfQorfQorCitpZiAoJHZlcmJvc2UpIHsKKyAgICBw
cmludCAiU3VjY2VzcyFcbiI7Cit9CmRpZmYgLS1naXQgYS9yZXN1bHRzLy5oZWxwZXJzL2pzLW9z
ci1leGl0LWZ1enogYi9yZXN1bHRzLy5oZWxwZXJzL2pzLW9zci1leGl0LWZ1enoKbmV3IGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzExZmUwMzIwMmJkM2Q2ZGM4ODQ0ZmUzOTM1NTg5NjM4MDhiZDU1YgotLS0gL2Rldi9udWxs
CisrKyBiL3Jlc3VsdHMvLmhlbHBlcnMvanMtb3NyLWV4aXQtZnV6egpAQCAtMCwwICsxLDE1MSBA
QAorIyEvdXNyL2Jpbi9lbnYgcGVybAorCisjIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorIyBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCit1c2Ugc3RyaWN0OwordXNlIEZpbmRCaW47Cit1c2UgR2V0b3B0OjpMb25nIHF3KDpj
b25maWcgcGFzc190aHJvdWdoKTsKK3VzZSBQT1NJWDsKKworIyBGaXJzdCB3ZSBydW4gdGhlIHRl
c3Qgb25jZSB0byBkZXRlcm1pbmUgd2hhdCB0aGUgbnVtYmVyIG9mIHN0YXRpYyBPU1IgZXhpdHMg
aXMuIFRoZW4KKyMgd2UgcnVuIGl0IGZvciBlYWNoIHN0YXRpYyBPU1IgZXhpdCBpbmRleCwgYW5k
IGZvciBlYWNoIGluZGV4LCB3ZSBmb3JjZSBleGl0IG9uIHRoZQorIyBmaXJzdCBkeW5hbWljIHRp
bWUgdGhhdCBleGl0IGlzIHRha2VuLCB0aGUgbGFzdCwgYW5kIHNvbWV0aGluZyBpbiB0aGUgbWlk
ZGxlLgorCitteSAkdmVyYm9zZSA9IDA7CisKKyMgV2UgYWxsb3cgZmxhZ3MgdG8gYmUgcGFzc2Vk
IHZpYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIHdoaWNoIGlzIHJhdGhlciB1c2VmdWwgZm9yCisj
IHJ1bm5pbmcgd2l0aCB0aGUgcnVuLWpzYy1zdHJlc3MtdGVzdHMgaGFybmVzcy4KK2lmIChkZWZp
bmVkKCRFTlZ7SlNfT1NSRlVaWl9WRVJCT1NFfSkpIHsKKyAgICAkdmVyYm9zZSA9ICRFTlZ7SlNf
T1NSRlVaWl9WRVJCT1NFfTsKK30KKworR2V0T3B0aW9ucygKKyAgICAndmVyYm9zZScgPT4gXCR2
ZXJib3NlCispOworCitteSAkY29tbWFuZFN0cmluZyA9IHNoaWZ0IEBBUkdWOworCitteSAkc3Rh
dGljQ2hlY2tDb3VudDsKKworc3ViIGZhaWwgeworICAgIG15ICRjb250ZXh0ID0gc2hpZnQ7Cisg
ICAgc2VsZWN0KChzZWxlY3QoU1RET1VUKSwgJCB8PSAxKVswXSk7ICMgVGhpcyBpcyBhIHBlcmxp
c20gZm9yIGZsdXNoLiBXZSBuZWVkIHRvIGRvIGl0IHRoaXMgd2F5IHRvIHN1cHBvcnQgb2xkZXIg
cGVybHMuCisgICAgc2VsZWN0KChzZWxlY3QoU1RERVJSKSwgJCB8PSAxKVswXSk7CisgICAgZGll
ICJGYWlsdXJlIGZvciBjb21tYW5kICRjb21tYW5kU3RyaW5nOiAkY29udGV4dCI7Cit9CisKK2lm
IChzaGlmdCBAQVJHVikgeworICAgIGRpZSAiSWdub3JpbmcgZ2FyYmFnZSBhcmd1bWVudHM7IG9u
bHkgdGhlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQgaXMgdXNlZCBhcyB0aGUgY29tbWFuZCBz
dHJpbmcuIjsKK30KKworb3BlbiAobXkgJHRlc3RJbnB1dCwgIiRjb21tYW5kU3RyaW5nIHwiKSBv
ciBmYWlsKCJDYW5ub3QgZXhlY3V0ZSBpbml0aWFsIGNvbW1hbmQgd2hlbiBnZXR0aW5nIHN0YXRp
YyBPU1IgZXhpdCBjb3VudCIpOword2hpbGUgKG15ICRpbnB1dExpbmUgPSA8JHRlc3RJbnB1dD4p
IHsKKyAgICBjaG9tcCgkaW5wdXRMaW5lKTsKKyAgICBteSAkaGFuZGxlZCA9IDA7CisgICAgaWYg
KCRpbnB1dExpbmUgPX4gL15KU0MgT1NSIEVYSVQgRlVaWjovKSB7CisgICAgICAgIGlmICgkJyA9
fiAvZW5jb3VudGVyZWQgKFswLTldKykgc3RhdGljIGNoZWNrc1wuLykgeworICAgICAgICAgICAg
JHN0YXRpY0NoZWNrQ291bnQgPSAkMTsKKyAgICAgICAgfQorICAgICAgICAkaGFuZGxlZCA9IDE7
CisgICAgfQorICAgIGlmICghJGhhbmRsZWQgfHwgJHZlcmJvc2UpIHsKKyAgICAgICAgcHJpbnQg
InN0YXRpY0NoZWNrQ291bnQ6ICRpbnB1dExpbmVcbiI7CisgICAgfQorfQorY2xvc2UoJHRlc3RJ
bnB1dCk7CisKK2lmICgkdmVyYm9zZSkgeworICAgIHByaW50ICJTdGF0aWMgY2hlY2sgY291bnQ6
ICRzdGF0aWNDaGVja0NvdW50XG4iOworfQorCitpZiAoISRzdGF0aWNDaGVja0NvdW50KSB7Cisg
ICAgcHJpbnQgIk9TUiBleGl0IGZ1enogdGVzdGluZyBub3Qgc3VwcG9ydGVkIGJ5IGpzYyBiaW5h
cnkuXG4iOworICAgIGV4aXQgMDsKK30KKworZm9yIChteSAkc3RhdGljQ2hlY2tJbmRleCA9IDE7
ICRzdGF0aWNDaGVja0luZGV4IDw9ICRzdGF0aWNDaGVja0NvdW50OyArKyRzdGF0aWNDaGVja0lu
ZGV4KSB7CisgICAgaWYgKCR2ZXJib3NlKSB7CisgICAgICAgIHByaW50ICJEZXRlY3RpbmcgbnVt
YmVyIG9mIGR5bmFtaWMgY2hlY2tzIGZvciBzdGF0aWMgY2hlY2sgYXQgaW5kZXggJHN0YXRpY0No
ZWNrSW5kZXguXG4iOworICAgIH0KKyAgICBvcGVuIChteSAkdGVzdElucHV0LCAiJGNvbW1hbmRT
dHJpbmcgLS1maXJlT1NSRXhpdEZ1enpBdFN0YXRpYz0kc3RhdGljQ2hlY2tJbmRleCB8Iikgb3Ig
ZmFpbCgiQ2Fubm90IGV4ZWN1dGUgY29tbWFuZCBmb3Igc3RhdGljIGNoZWNrIGluZGV4ICRzdGF0
aWNDaGVja0luZGV4Iik7CisgICAgbXkgJGR5bmFtaWNDaGVja0NvdW50OworICAgIHdoaWxlICht
eSAkaW5wdXRMaW5lID0gPCR0ZXN0SW5wdXQ+KSB7CisgICAgICAgIGNob21wKCRpbnB1dExpbmUp
OworICAgICAgICBteSAkaGFuZGxlZCA9IDA7CisgICAgICAgIGlmICgkaW5wdXRMaW5lID1+IC9e
SlNDIE9TUiBFWElUIEZVWlo6LykgeworICAgICAgICAgICAgaWYgKCQnID1+IC9lbmNvdW50ZXJl
ZCAoWzAtOV0rKSBkeW5hbWljIGNoZWNrc1wuLykgeworICAgICAgICAgICAgICAgICRkeW5hbWlj
Q2hlY2tDb3VudCA9ICQxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgJGhhbmRsZWQgPSAx
OworICAgICAgICB9CisgICAgICAgIGlmICghJGhhbmRsZWQgfHwgJHZlcmJvc2UpIHsKKyAgICAg
ICAgICAgIHByaW50ICJkeW5hbWljQ2hlY2tDb3VudDogJGlucHV0TGluZVxuIjsKKyAgICAgICAg
fQorICAgIH0KKyAgICBjbG9zZSgkdGVzdElucHV0KTsKKyAgICAKKyAgICBpZiAoJHZlcmJvc2Up
IHsKKyAgICAgICAgcHJpbnQgIkR5bmFtaWMgY2hlY2sgY291bnQ6ICRkeW5hbWljQ2hlY2tDb3Vu
dFxuIjsKKyAgICB9CisgICAgCisgICAgIyBOb3cgdGVzdCB0cmlnZ2VyaW5nIHRoZSBleGl0IGF0
IHRocmVlIHBvaW50czogYWx3YXlzLCBpbW1lZGlhdGVseSwgYXQgdGhlIGxhc3QgcG9zc2libGUK
KyAgICAjIG1vbWVudCwgYW5kIHNvbWV3aGVyZSBpbiBiZXR3ZWVuLiBXZSB1c2UgIjAiIHRvIG1l
YW4gYWx3YXlzLgorICAgIG15IEB0cmlnZ2VycyA9ICgwLCAxLCBpbnQoKDEgKyAkZHluYW1pY0No
ZWNrQ291bnQpIC8gMiksICRkeW5hbWljQ2hlY2tDb3VudCk7CisgICAgZm9yIChteSAkdHJpZ2dl
ckluZGV4ID0gMDsgJHRyaWdnZXJJbmRleCA8IHNjYWxhciBAdHJpZ2dlcnM7ICsrJHRyaWdnZXJJ
bmRleCkgeworICAgICAgICBteSAkZHluYW1pY0NoZWNrSW5kZXggPSAkdHJpZ2dlcnNbJHRyaWdn
ZXJJbmRleF07CisgICAgICAgIGlmICgkdmVyYm9zZSkgeworICAgICAgICAgICAgaWYgKCRkeW5h
bWljQ2hlY2tJbmRleCA9PSAwKSB7CisgICAgICAgICAgICAgICAgcHJpbnQgIlJ1bm5pbmcgd2l0
aCBzdGF0aWMgY2hlY2sgaW5kZXggPSAkc3RhdGljQ2hlY2tJbmRleCBhbmQgYWxsIGR5bmFtaWMg
Y2hlY2sgaW5kaWNlcy5cbiI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IHByaW50ICJSdW5uaW5nIHdpdGggc3RhdGljIGNoZWNrIGluZGV4ID0gJHN0YXRpY0NoZWNrSW5k
ZXggYW5kIGR5bmFtaWMgY2hlY2sgaW5kZXggPSAkZHluYW1pY0NoZWNrSW5kZXguXG4iOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG15ICRvcHRpb25Ub1VzZTsKKyAgICAgICAg
aWYgKCRkeW5hbWljQ2hlY2tJbmRleCA9PSAwKSB7CisgICAgICAgICAgICAkb3B0aW9uVG9Vc2Ug
PSAiLS1maXJlT1NSRXhpdEZ1enpBdE9yQWZ0ZXI9MSI7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAkb3B0aW9uVG9Vc2UgPSAiLS1maXJlT1NSRXhpdEZ1enpBdD0kZHluYW1pY0NoZWNr
SW5kZXgiOworICAgICAgICB9CisgICAgICAgIG9wZW4gKCR0ZXN0SW5wdXQsICIkY29tbWFuZFN0
cmluZyAtLWZpcmVPU1JFeGl0RnV6ekF0U3RhdGljPSRzdGF0aWNDaGVja0luZGV4ICRvcHRpb25U
b1VzZSB8Iikgb3IgZmFpbCgiQ2Fubm90IGV4ZWN1dGUgY29tbWFuZCBmb3Igc3RhdGljIGNoZWNr
IGluZGV4ICRzdGF0aWNDaGVja0luZGV4IGFuZCBkeW5hbWljIGNoZWNrIGluZGV4ICRkeW5hbWlj
Q2hlY2tJbmRleCIpOworICAgICAgICB3aGlsZSAobXkgJGlucHV0TGluZSA9IDwkdGVzdElucHV0
PikgeworICAgICAgICAgICAgY2hvbXAoJGlucHV0TGluZSk7CisgICAgICAgICAgICBteSAkaGFu
ZGxlZCA9IDA7CisgICAgICAgICAgICBpZiAoJGlucHV0TGluZSA9fiAvXkpTQyBPU1IgRVhJVCBG
VVpaOi8pIHsKKyAgICAgICAgICAgICAgICAkaGFuZGxlZCA9IDE7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBpZiAoISRoYW5kbGVkIHx8ICR2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAg
cHJpbnQgInRlc3RSdW46ICRpbnB1dExpbmVcbiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgY2xvc2UoJHRlc3RJbnB1dCk7CisgICAgfQorICAgIGlmICgkdmVyYm9zZSkgewor
ICAgICAgICBwcmludCAiXG4iOworICAgIH0KK30KKworaWYgKCR2ZXJib3NlKSB7CisgICAgcHJp
bnQgIlN1Y2Nlc3MhXG4iOworfQorCmRpZmYgLS1naXQgYS9yZXN1bHRzLy5oZWxwZXJzL3Byb2Zp
bGVyLXRlc3QtaGVscGVyIGIvcmVzdWx0cy8uaGVscGVycy9wcm9maWxlci10ZXN0LWhlbHBlcgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMmJhYmQ3OWExZWY3NzZlYmZhMmFjYjcxMjE2MWZkMzc0YTFhYjUwCi0tLSAv
ZGV2L251bGwKKysrIGIvcmVzdWx0cy8uaGVscGVycy9wcm9maWxlci10ZXN0LWhlbHBlcgpAQCAt
MCwwICsxLDM1IEBACisjIS91c3IvYmluL2VudiBydWJ5CisKKyMgQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
IyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCityZXF1aXJlICdydWJ5Z2VtcycKK3JlcXVpcmUgJ2pzb24nCityZXF1aXJl
ICdzaGVsbHdvcmRzJworCitkZWYgbXlzeXMoKmNtZCkKKyAgICByYWlzZSAiQ29tbWFuZCAje2Nt
ZC5pbnNwZWN0fSBmYWlsZWQ6ICN7JD8uaW5zcGVjdH0iIHVubGVzcyBzeXN0ZW0oKmNtZCkKK2Vu
ZAorCitteXN5cygqQVJHVlsyLi4tMV0pCitteXN5cygiZWNobyBxdWl0IHwgI3tTaGVsbHdvcmRz
LnNoZWxsZXNjYXBlKEFSR1ZbMF0pfSAje1NoZWxsd29yZHMuc2hlbGxlc2NhcGUoQVJHVlsxXSl9
IikKZGlmZiAtLWdpdCBhL3Jlc3VsdHMvLmhlbHBlcnMvc2hlbGwtcnVubmVyLnNoIGIvcmVzdWx0
cy8uaGVscGVycy9zaGVsbC1ydW5uZXIuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVkNDBkNTIxOTgyMzBiODE1
MDI2MmM2YmU3MWFjMmQ4Y2E3MTJmZQotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdHMvLmhlbHBl
cnMvc2hlbGwtcnVubmVyLnNoCkBAIC0wLDAgKzEsNzkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
IyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitudW1Qcm9jcz1gc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdSAyPi9kZXYvbnVs
bGAKK2lmIFsgJD8gLWd0IDAgXQordGhlbgorICAgIG51bVByb2NzPWBucHJvYyAtLWFsbCAyPi9k
ZXYvbnVsbGAKKyAgICBpZiBbICQ/IC1ndCAwIF0KKyAgICB0aGVuCisgICAgICAgIG51bVByb2Nz
PTEKKyAgICBmaQorZmkKKworaW5kZXhGaWxlPSIuaW5kZXgiCit0ZXN0TGlzdD0iLmFsbF90ZXN0
cy50eHQiCit0ZW1wRmlsZT0iLnRlbXAudHh0IgorbG9ja0Rpcj0iLmxvY2tfZGlyIgorCit0cmFw
ICJraWxsIC05IDAiIElOVCBIVVAgVEVSTQorCitlY2hvIDAgPiAke2luZGV4RmlsZX0KK2ZpbmQg
LiAtbWF4ZGVwdGggMSAtbmFtZSAndGVzdF9zY3JpcHRfKicgfCBzb3J0IC10ICdfJyAtazNuciA+
ICR7dGVzdExpc3R9CisKK2xvY2tfdGVzdF9saXN0KCkgeworICAgIHVudGlsIG1rZGlyICR7bG9j
a0Rpcn0gMj4gL2Rldi9udWxsOyBkbyBzbGVlcCAwOyBkb25lCit9CisKK3VubG9ja190ZXN0X2xp
c3QoKSB7CisgICAgcm1kaXIgJHtsb2NrRGlyfQorfQorCitpZiBbIC1kICR7bG9ja0Rpcn0gXQor
dGhlbgorICAgIHJtZGlyICR7bG9ja0Rpcn0KK2ZpCisKK2ZvciBwcm9jIGluIGBzZXEgJHtudW1Q
cm9jc31gCitkbworICAgICgKKyAgICAgICAgbG9ja190ZXN0X2xpc3QKKyAgICAgICAgd2hpbGUg
WyAtcyAke3Rlc3RMaXN0fSBdCisgICAgICAgIGRvCisgICAgICAgICAgICBpbmRleD1gY2F0ICR7
aW5kZXhGaWxlfWAKKyAgICAgICAgICAgIGluZGV4PSQoKGluZGV4ICsgMSkpCisgICAgICAgICAg
ICBlY2hvICIke2luZGV4fSIgPiAke2luZGV4RmlsZX0KKworICAgICAgICAgICAgbmV4dFRlc3Q9
YHRhaWwgLW4gMSAke3Rlc3RMaXN0fWAKKyAgICAgICAgICAgIHNlZCAnJGQnIDwgJHt0ZXN0TGlz
dH0gPiAke3RlbXBGaWxlfQorICAgICAgICAgICAgbXYgJHt0ZW1wRmlsZX0gJHt0ZXN0TGlzdH0K
KyAgICAgICAgICAgIHVubG9ja190ZXN0X2xpc3QKKworICAgICAgICAgICAgc2ggJHtuZXh0VGVz
dH0KKworICAgICAgICAgICAgbG9ja190ZXN0X2xpc3QKKyAgICAgICAgZG9uZQorICAgICAgICB1
bmxvY2tfdGVzdF9saXN0CisgICAgKSYKK2RvbmUKK3dhaXQKZGlmZiAtLWdpdCBhL3Jlc3VsdHMv
LnJ1bm5lci9NYWtlZmlsZS4wIGIvcmVzdWx0cy8ucnVubmVyL01ha2VmaWxlLjAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDM0ZjAyZTQ5YzdiNGEyOWE5ZTlkNGRkMzhkOTFhOWZjZDgxNDNmZgotLS0gL2Rldi9udWxs
CisrKyBiL3Jlc3VsdHMvLnJ1bm5lci9NYWtlZmlsZS4wCkBAIC0wLDAgKzEgQEAKK2FsbDogCmRp
ZmYgLS1naXQgYS9yZXN1bHRzLy52bS9KYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgYi9yZXN1bHRz
Ly52bS9KYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjgyNzQyOWQxMGNjMjAx
NjM1NjU4NzBlOTllYzAwNDQ3MzBiODFmZAotLS0gL2Rldi9udWxsCisrKyBiL3Jlc3VsdHMvLnZt
L0phdmFTY3JpcHRDb3JlLmZyYW1ld29yawpAQCAtMCwwICsxIEBACisvVm9sdW1lcy9EQVRBL0J1
aWxkL1JlbGVhc2UvSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvcmVzdWx0cy9yZXN1bHRzQnlGYW1pbHkgYi9yZXN1bHRzL3Jl
c3VsdHNCeUZhbWlseQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhj
MmU0OGM1MzkxCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396500</attachid>
            <date>2020-04-14 22:28:22 -0700</date>
            <delta_ts>2020-04-15 00:03:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209716-20200414232820.patch</filename>
            <type>text/plain</type>
            <size>117270</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDgxYjgyY2IwMTY1MWUyNjk5MWRiY2Y3YzdhNTEw
NGE1MmVlNGY4N2EuLmM3MWNiYjI2ZDFlNDEyMWI5NmZiMzFiYzU2NmJmYWNiN2M0Yzc4YTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA0LTE0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1l
bnQgbG9naWNhbCBhc3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9z
cyBLaXJzbGluZy4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGxvZ2ljYWwgYXNzaWdubWVudCBv
cGVyYXRvcnMgcHJvcG9zYWwsIHdoaWNoIGlzIG5vdyBTdGFnZSAzLiBJdCBpbnRyb2R1Y2VzCisg
ICAgICAgIHRocmVlIG5ldyBhc3NpZ25tZW50IG9wZXJhdG9ycyB3aGljaCB3aWxsIG9ubHkgc3Rv
cmUgdGhlIHJlc3VsdCBvZiB0aGUgcmhzIGluIHRoZSBsaHMgaWYgdGhlCisgICAgICAgIGxocyBt
ZWV0cyB0aGUgZ2l2ZW4gY29uZGl0aW9uOgorICAgICAgICAgLSBgPz89YCwgZm9yIGlmIHRoZSBs
aHMgaXMgbnVsbGlzaCAoYG51bGxgIG9yIGB1bmRlZmluZWRgKQorICAgICAgICAgLSBgfHw9YCwg
Zm9yIGlmIHRoZSBsaHMgaXMgZmFsc3kKKyAgICAgICAgIC0gYCYmPWAsIGZvciBpZiB0aGUgbGhz
IGlzIHRydXRoeQorCisgICAgICAgIFRoaXMgc2hvcnQgY2lyY3VpdGluZyBjYW4gYmUgYmVuZWZp
Y2lhbCBhcyBpdCBjYW4gYXZvaWQgYSByZWR1bmRhbnQgc3RvcmUgd2hlbiB1c2VkIGluIHRoZQor
ICAgICAgICBjb21tb24gSmF2YVNjcmlwdCBwcm9ncmFtbWluZyBwYXR0ZXJuIG9mICJkZWZhdWx0
aW5nIiBhIHBhcmFtZXRlci4KKworICAgICAgICBgYGBqcworICAgICAgICAgICAgZnVuY3Rpb24g
Zm9vKHgpIHsKKyAgICAgICAgICAgICAgICB4ID0geCB8fCA0MjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgYGBgCisKKyAgICAgICAgSWYgYHhgIGlzIGEgdHJ1dGh5IHZhbHVlLCBpdCB3b3VsZCBy
ZXN1bHQgaW4gdGhlIHJocyBgeGAgYmVpbmcgc3RvcmVkIGJhY2sgaW50byB0aGUgbGhzIGB4YC4K
KyAgICAgICAgSW4gc29tZSBzaXR1YXRpb25zLCB0aGlzIGNhbiBoYXZlIG5lZ2F0aXZlIHVuaW50
ZW5kZWQgc2lkZS1lZmZlY3RzLCBzdWNoIGFzIGZvciBgaW5uZXJIVE1MYC4KKworICAgICAgICBM
b2dpY2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzLCBob3dldmVyLCBhcmUgZGVmaW5lZCBzdWNoIHRo
YXQgdGhleSBvbmx5IHN0b3JlIGlmIHRoZSByaHMgaXMKKyAgICAgICAgdG8gYWN0dWFsbHkgYmUg
bmVlZGVkL3VzZWQsIHNraXBwaW5nIHRoZSByZWR1bmRhbnQgc3RvcmUgYW5kIHNpbXBseSByZXR1
cm5pbmcgbGhzIG90aGVyd2lzZS4KKworICAgICAgICBJbiB0aGUgY2FzZSBvZiByZWFkb25seSBy
ZWZlcmVuY2VzLCB0aGlzIG1lYW5zIHRoYXQgYW4gZXJyb3IgaXMgb25seSB0aHJvd24gd2hlbiB0
aGUKKyAgICAgICAgYXNzaWdubWVudCBvY2N1cnMsIG1lYW5pbmcgdGhhdCBpZiB0aGUgbGhzIGFs
cmVhZHkgc2F0aXNmaWVzIHRoZSBjb25kaXRpb24gaXQgd2lsbCBiZSB1c2VkCisgICAgICAgIGFu
ZCByZXR1cm5lZCB3aXRoIG5vIGVycm9yLgorCisgICAgICAgICogcGFyc2VyL1BhcnNlclRva2Vu
cy5oOgorICAgICAgICAqIHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6OkxleGVyPFQ+
OjpsZXhXaXRob3V0Q2xlYXJpbmdMaW5lVGVybWluYXRvcik6CisgICAgICAgICogcGFyc2VyL1Bh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1l
bnRFeHByZXNzaW9uKToKKworICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAg
IChKU0M6OkFTVEJ1aWxkZXI6Om1ha2VBc3NpZ25Ob2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9k
ZXMuaDoKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlND
OjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2Rp
ZnlSZXNvbHZlTm9kZSk6IEFkZGVkLgorICAgICAgICAoSlNDOjpTaG9ydENpcmN1aXRSZWFkTW9k
aWZ5QnJhY2tldE5vZGU6OlNob3J0Q2lyY3VpdFJlYWRNb2RpZnlCcmFja2V0Tm9kZSk6IEFkZGVk
LgorICAgICAgICAoSlNDOjpTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6U2hvcnRDaXJj
dWl0UmVhZE1vZGlmeURvdE5vZGUpOiBBZGRlZC4KKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6ZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQp
OiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2Rl
OjplbWl0Qnl0ZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U2hvcnRDaXJjdWl0UmVhZE1v
ZGlmeURvdE5vZGU6OmVtaXRCeXRlY29kZSk6IEFkZGVkLgorICAgICAgICAoSlNDOjpTaG9ydENp
cmN1aXRSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZSk6IEFkZGVkLgorCisgICAg
ICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorICAgICAgICBBZGQgYSBgdXNlTG9naWNhbEFz
c2lnbm1lbnRPcGVyYXRvcnNgIHNldHRpbmcgZm9yIGNvbnRyb2xsaW5nIHRoaXMgZmVhdHVyZS4K
KwogMjAyMC0wNC0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXI6IGFkZCBhIFN0ZXAgbmV4dCB0aGF0IHN0ZXBzIGJ5
IGV4cHJlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcAppbmRleCBkNGZkYjRkZDU0ZDQ5MmY5MGQyZDcyMWZkN2RhYzEyZmY3
ZDJmODUwLi41NGMzYTlmODE5ZGUwNTQ2ZDk0N2VmNjc0ZWQ1MDFhZTQ2YjFjYjhhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
CkBAIC0yODYyLDYgKzI4NjIsMTA5IEBAIFJlZ2lzdGVySUQqIFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlCiAgICAgcmV0
dXJuIHJldHVyblJlc3VsdDsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitzdGF0aWMgQUxXQVlTX0lOTElORSB2b2lkIGVtaXRTaG9ydENpcmN1
aXRBc3NpZ25tZW50KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIHZh
bHVlLCBPcGVyYXRvciBvcGVyLCBMYWJlbCYgYWZ0ZXJBc3NpZ25tZW50KQoreworICAgIHN3aXRj
aCAob3BlcikgeworICAgIGNhc2UgT3BlcmF0b3I6Ok51bGxpc2hFcToKKyAgICAgICAgZ2VuZXJh
dG9yLmVtaXRKdW1wSWZGYWxzZShnZW5lcmF0b3IuZW1pdElzVW5kZWZpbmVkT3JOdWxsKGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgdmFsdWUpLCBhZnRlckFzc2lnbm1lbnQpOworICAgICAgICBi
cmVhazsKKworICAgIGNhc2UgT3BlcmF0b3I6Ok9yRXE6CisgICAgICAgIGdlbmVyYXRvci5lbWl0
SnVtcElmVHJ1ZSh2YWx1ZSwgYWZ0ZXJBc3NpZ25tZW50KTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIE9wZXJhdG9yOjpBbmRFcToKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZGYWxz
ZSh2YWx1ZSwgYWZ0ZXJBc3NpZ25tZW50KTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0
OgorICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKK1JlZ2lzdGVySUQqIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlSZXNvbHZlTm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQq
IGRzdCkKK3sKKyAgICBKU1RleHRQb3NpdGlvbiBuZXdEaXZvdCA9IGRpdm90U3RhcnQoKSArIG1f
aWRlbnQubGVuZ3RoKCk7CisKKyAgICBWYXJpYWJsZSB2YXIgPSBnZW5lcmF0b3IudmFyaWFibGUo
bV9pZGVudCk7CisgICAgYm9vbCBpc1JlYWRPbmx5ID0gdmFyLmlzUmVhZE9ubHkoKTsKKworICAg
IGlmIChSZWZQdHI8UmVnaXN0ZXJJRD4gbG9jYWwgPSB2YXIubG9jYWwoKSkgeworICAgICAgICBn
ZW5lcmF0b3IuZW1pdFREWkNoZWNrSWZOZWNlc3NhcnkodmFyLCBsb2NhbC5nZXQoKSwgbnVsbHB0
cik7CisKKyAgICAgICAgaWYgKGlzUmVhZE9ubHkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxSZWdp
c3RlcklEPiByZXN1bHQgPSBsb2NhbDsKKworICAgICAgICAgICAgUmVmPExhYmVsPiBhZnRlckFz
c2lnbm1lbnQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICAgICAgICAgIGVtaXRTaG9ydENp
cmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBhZnRl
ckFzc2lnbm1lbnQuZ2V0KCkpOworCisgICAgICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1p
dE5vZGUocmVzdWx0LmdldCgpLCBtX3JpZ2h0KTsgLy8gRXhlY3V0ZSBzaWRlIGVmZmVjdHMgZmly
c3QuCisgICAgICAgICAgICBib29sIHRocmV3RXhjZXB0aW9uID0gZ2VuZXJhdG9yLmVtaXRSZWFk
T25seUV4Y2VwdGlvbklmTmVlZGVkKHZhcik7CisKKyAgICAgICAgICAgIGlmICghdGhyZXdFeGNl
cHRpb24pCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQu
Z2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisKKyAgICAgICAgICAgIGdlbmVyYXRv
ci5lbWl0TGFiZWwoYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKyAgICAgICAgICAgIHJldHVybiBn
ZW5lcmF0b3IubW92ZShkc3QsIHJlc3VsdC5nZXQoKSk7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoZ2VuZXJhdG9yLmxlZnRIYW5kU2lkZU5lZWRzQ29weShtX3JpZ2h0SGFzQXNzaWdubWVudHMs
IG1fcmlnaHQtPmlzUHVyZShnZW5lcmF0b3IpKSkgeworICAgICAgICAgICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KTsKKyAgICAgICAg
ICAgIGdlbmVyYXRvci5tb3ZlKHJlc3VsdC5nZXQoKSwgbG9jYWwuZ2V0KCkpOworCisgICAgICAg
ICAgICBSZWY8TGFiZWw+IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwor
ICAgICAgICAgICAgZW1pdFNob3J0Q2lyY3VpdEFzc2lnbm1lbnQoZ2VuZXJhdG9yLCByZXN1bHQu
Z2V0KCksIG1fb3BlcmF0b3IsIGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisKKyAgICAgICAgICAg
IHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZShyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAg
ICAgICAgICAgZ2VuZXJhdG9yLm1vdmUobG9jYWwuZ2V0KCksIHJlc3VsdC5nZXQoKSk7CisgICAg
ICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQoKSwgdmFyLCBkaXZv
dFN0YXJ0KCksIGRpdm90RW5kKCkpOworCisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVs
KGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLm1v
dmUoZHN0LCByZXN1bHQuZ2V0KCkpOworICAgICAgICB9CisKKyAgICAgICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IHJlc3VsdCA9IGxvY2FsOworCisgICAgICAgIFJlZjxMYWJlbD4gYWZ0ZXJBc3NpZ25t
ZW50ID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgICAgIGVtaXRTaG9ydENpcmN1aXRBc3Np
Z25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgpLCBtX29wZXJhdG9yLCBhZnRlckFzc2lnbm1l
bnQuZ2V0KCkpOworCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZShyZXN1bHQu
Z2V0KCksIG1fcmlnaHQpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3Vs
dC5nZXQoKSwgdmFyLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworCisgICAgICAgIGdlbmVy
YXRvci5lbWl0TGFiZWwoYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIGdl
bmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKKyAgICB9CisKKyAgICBnZW5lcmF0b3Iu
ZW1pdEV4cHJlc3Npb25JbmZvKG5ld0Rpdm90LCBkaXZvdFN0YXJ0KCksIG5ld0Rpdm90KTsKKyAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29wZShu
dWxscHRyLCB2YXIpOworCisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlc3VsdCA9IGdlbmVyYXRv
ci5lbWl0R2V0RnJvbVNjb3BlKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgc2NvcGUu
Z2V0KCksIHZhciwgVGhyb3dJZk5vdEZvdW5kKTsKKyAgICBnZW5lcmF0b3IuZW1pdFREWkNoZWNr
SWZOZWNlc3NhcnkodmFyLCByZXN1bHQuZ2V0KCksIG51bGxwdHIpOworCisgICAgUmVmPExhYmVs
PiBhZnRlckFzc2lnbm1lbnQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hvcnRD
aXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwgYWZ0
ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9kZShy
ZXN1bHQuZ2V0KCksIG1fcmlnaHQpOyAvLyBFeGVjdXRlIHNpZGUgZWZmZWN0cyBmaXJzdC4KKwor
ICAgIGJvb2wgdGhyZXdFeGNlcHRpb24gPSBpc1JlYWRPbmx5ID8gZ2VuZXJhdG9yLmVtaXRSZWFk
T25seUV4Y2VwdGlvbklmTmVlZGVkKHZhcikgOiBmYWxzZTsKKworICAgIGlmICghdGhyZXdFeGNl
cHRpb24pCisgICAgICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2
b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKworICAgIGlmICghaXNSZWFkT25seSkgeworICAgICAg
ICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdFB1dFRvU2NvcGUoc2NvcGUuZ2V0KCksIHZhciwgcmVz
dWx0LmdldCgpLCBUaHJvd0lmTm90Rm91bmQsIEluaXRpYWxpemF0aW9uTW9kZTo6Tm90SW5pdGlh
bGl6YXRpb24pOworICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVUeXBlKHJlc3VsdC5nZXQo
KSwgdmFyLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgIH0KKworICAgIGdlbmVyYXRv
ci5lbWl0TGFiZWwoYWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9y
Lm1vdmUoZHN0LCByZXN1bHQuZ2V0KCkpOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gQXNzaWduUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKwogc3RhdGljIEluaXRpYWxpemF0aW9uTW9kZSBpbml0aWFsaXphdGlvbk1vZGVGb3JB
c3NpZ25tZW50Q29udGV4dChBc3NpZ25tZW50Q29udGV4dCBhc3NpZ25tZW50Q29udGV4dCkKIHsK
ICAgICBzd2l0Y2ggKGFzc2lnbm1lbnRDb250ZXh0KSB7CkBAIC0yODc3LDggKzI5ODAsNiBAQCBz
dGF0aWMgSW5pdGlhbGl6YXRpb25Nb2RlIGluaXRpYWxpemF0aW9uTW9kZUZvckFzc2lnbm1lbnRD
b250ZXh0KEFzc2lnbm1lbnRDb250ZQogICAgIHJldHVybiBJbml0aWFsaXphdGlvbk1vZGU6Ok5v
dEluaXRpYWxpemF0aW9uOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
QXNzaWduUmVzb2x2ZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQog
UmVnaXN0ZXJJRCogQXNzaWduUmVzb2x2ZU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAgVmFyaWFibGUgdmFyID0g
Z2VuZXJhdG9yLnZhcmlhYmxlKG1faWRlbnQpOwpAQCAtMjk3OCw2ICszMDc5LDM3IEBAIFJlZ2lz
dGVySUQqIFJlYWRNb2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvciwgUmVnaXN0CiAgICAgcmV0dXJuIHJldDsKIH0KIAorLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1JlZ2lzdGVySUQqIFNob3J0Q2lyY3VpdFJl
YWRNb2RpZnlEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRv
ciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2Vu
ZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFzZSwgbV9yaWdodEhhc0Fzc2lnbm1l
bnRzLCBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IHRoaXNWYWx1ZTsKKworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQ7CisKKyAgICBnZW5l
cmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHN1YmV4cHJlc3Npb25EaXZvdCgpLCBzdWJleHByZXNz
aW9uU3RhcnQoKSwgc3ViZXhwcmVzc2lvbkVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5pc1N1cGVy
Tm9kZSgpKSB7CisgICAgICAgIHRoaXNWYWx1ZSA9IGdlbmVyYXRvci5lbnN1cmVUaGlzKCk7Cisg
ICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3IudGVtcERlc3Rp
bmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIHRoaXNWYWx1ZS5nZXQoKSwgbV9pZGVudCk7CisgICAg
fSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlJZChnZW5lcmF0b3Iu
dGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCksIG1faWRlbnQpOworCisgICAgUmVmPExh
YmVsPiBhZnRlckFzc2lnbm1lbnQgPSBnZW5lcmF0b3IubmV3TGFiZWwoKTsKKyAgICBlbWl0U2hv
cnRDaXJjdWl0QXNzaWdubWVudChnZW5lcmF0b3IsIHJlc3VsdC5nZXQoKSwgbV9vcGVyYXRvciwg
YWZ0ZXJBc3NpZ25tZW50LmdldCgpKTsKKworICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0Tm9k
ZShyZXN1bHQuZ2V0KCksIG1fcmlnaHQpOworICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbklu
Zm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICBpZiAobV9iYXNlLT5p
c1N1cGVyTm9kZSgpKQorICAgICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFz
ZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBtX2lkZW50LCByZXN1bHQuZ2V0KCkpOworICAgIGVs
c2UKKyAgICAgICAgcmVzdWx0ID0gZ2VuZXJhdG9yLmVtaXRQdXRCeUlkKGJhc2UuZ2V0KCksIG1f
aWRlbnQsIHJlc3VsdC5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1
bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1p
dExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQoKSk7CisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3Zl
KGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIEFzc2lnbkVycm9yTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CiBSZWdpc3RlcklEKiBBc3NpZ25FcnJvck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKikKQEAgLTMwNDIsNiArMzE3NCwzOCBAQCBSZWdp
c3RlcklEKiBSZWFkTW9kaWZ5QnJhY2tldE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBSZQogICAgIHJldHVybiB1cGRhdGVkVmFsdWU7CiB9CiAKKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJhY2tl
dE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnaXN0ZXJJRCog
U2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQoreworICAgIFJlZlB0cjxSZWdp
c3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKG1fYmFzZSwg
bV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyB8fCBtX3JpZ2h0SGFzQXNzaWdubWVudHMsIG1fc3Vi
c2NyaXB0LT5pc1B1cmUoZ2VuZXJhdG9yKSAmJiBtX3JpZ2h0LT5pc1B1cmUoZ2VuZXJhdG9yKSk7
CisgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5ID0gZ2VuZXJhdG9yLmVtaXROb2RlRm9y
TGVmdEhhbmRTaWRlRm9yUHJvcGVydHkobV9zdWJzY3JpcHQsIG1fcmlnaHRIYXNBc3NpZ25tZW50
cywgbV9yaWdodC0+aXNQdXJlKGdlbmVyYXRvcikpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0
aGlzVmFsdWU7CisKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVzdWx0OworCisgICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3QoKSwgc3ViZXhwcmVzc2lv
blN0YXJ0KCksIHN1YmV4cHJlc3Npb25FbmQoKSk7CisgICAgaWYgKG1fYmFzZS0+aXNTdXBlck5v
ZGUoKSkgeworICAgICAgICB0aGlzVmFsdWUgPSBnZW5lcmF0b3IuZW5zdXJlVGhpcygpOworICAg
ICAgICByZXN1bHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5VmFsKGdlbmVyYXRvci50ZW1wRGVzdGlu
YXRpb24oZHN0KSwgYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSk7
CisgICAgfSBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0R2V0QnlWYWwoZ2Vu
ZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSk7
CisKKyAgICBSZWY8TGFiZWw+IGFmdGVyQXNzaWdubWVudCA9IGdlbmVyYXRvci5uZXdMYWJlbCgp
OworICAgIGVtaXRTaG9ydENpcmN1aXRBc3NpZ25tZW50KGdlbmVyYXRvciwgcmVzdWx0LmdldCgp
LCBtX29wZXJhdG9yLCBhZnRlckFzc2lnbm1lbnQuZ2V0KCkpOworCisgICAgcmVzdWx0ID0gZ2Vu
ZXJhdG9yLmVtaXROb2RlKHJlc3VsdC5nZXQoKSwgbV9yaWdodCk7CisgICAgZ2VuZXJhdG9yLmVt
aXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAg
IGlmIChtX2Jhc2UtPmlzU3VwZXJOb2RlKCkpCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5l
bWl0UHV0QnlWYWwoYmFzZS5nZXQoKSwgdGhpc1ZhbHVlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSwg
cmVzdWx0LmdldCgpKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGdlbmVyYXRvci5lbWl0
UHV0QnlWYWwoYmFzZS5nZXQoKSwgcHJvcGVydHkuZ2V0KCksIHJlc3VsdC5nZXQoKSk7CisgICAg
Z2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZShyZXN1bHQuZ2V0KCksIGRpdm90U3RhcnQoKSwgZGl2
b3RFbmQoKSk7CisKKyAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGFmdGVyQXNzaWdubWVudC5nZXQo
KSk7CisgICAgcmV0dXJuIGdlbmVyYXRvci5tb3ZlKGRzdCwgcmVzdWx0LmdldCgpKTsKK30KKwog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvbW1hTm9kZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogUmVnaXN0ZXJJRCogQ29tbWFOb2RlOjplbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAppbmRleCA0M2IxNzFmYmM0ZTdi
MzU5ZGJlNjgyN2ZhNWRjNWI4NWE4OWViZmMwLi41ZTM1M2JkMTc2M2Q5ZTJmNzRkMzY0MjQ0YTBi
MGRhZGQyMjU4MmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FT
VEJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIu
aApAQCAtMTU0OCw2ICsxNTQ4LDcgQEAgRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VB
c3NpZ25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHIKIAogICAgIGlm
IChsb2MtPmlzUmVzb2x2ZU5vZGUoKSkgewogICAgICAgICBSZXNvbHZlTm9kZSogcmVzb2x2ZSA9
IHN0YXRpY19jYXN0PFJlc29sdmVOb2RlKj4obG9jKTsKKwogICAgICAgICBpZiAob3AgPT0gT3Bl
cmF0b3I6OkVxdWFsKSB7CiAgICAgICAgICAgICBpZiAoZXhwci0+aXNCYXNlRnVuY0V4cHJOb2Rl
KCkpIHsKICAgICAgICAgICAgICAgICBhdXRvIG1ldGFkYXRhID0gc3RhdGljX2Nhc3Q8QmFzZUZ1
bmNFeHByTm9kZSo+KGV4cHIpLT5tZXRhZGF0YSgpOwpAQCAtMTU1OCwyMSArMTU1OSw0MiBAQCBF
eHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUFzc2lnbk5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiBsb2NhdGlvbiwgRXhwcgogICAgICAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24o
bm9kZSwgc3RhcnQsIGRpdm90LCBlbmQpOwogICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAg
ICAgIH0KKworICAgICAgICBpZiAob3AgPT0gT3BlcmF0b3I6Ok51bGxpc2hFcSB8fCBvcCA9PSBP
cGVyYXRvcjo6T3JFcSB8fCBvcCA9PSBPcGVyYXRvcjo6QW5kRXEpCisgICAgICAgICAgICByZXR1
cm4gbmV3IChtX3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUo
bG9jYXRpb24sIHJlc29sdmUtPmlkZW50aWZpZXIoKSwgb3AsIGV4cHIsIGV4cHJIYXNBc3NpZ25t
ZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOworCiAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2Vy
QXJlbmEpIFJlYWRNb2RpZnlSZXNvbHZlTm9kZShsb2NhdGlvbiwgcmVzb2x2ZS0+aWRlbnRpZmll
cigpLCBvcCwgZXhwciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwgc3RhcnQsIGVuZCk7CiAg
ICAgfQorCiAgICAgaWYgKGxvYy0+aXNCcmFja2V0QWNjZXNzb3JOb2RlKCkpIHsKICAgICAgICAg
QnJhY2tldEFjY2Vzc29yTm9kZSogYnJhY2tldCA9IHN0YXRpY19jYXN0PEJyYWNrZXRBY2Nlc3Nv
ck5vZGUqPihsb2MpOworCiAgICAgICAgIGlmIChvcCA9PSBPcGVyYXRvcjo6RXF1YWwpCiAgICAg
ICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBBc3NpZ25CcmFja2V0Tm9kZShsb2Nh
dGlvbiwgYnJhY2tldC0+YmFzZSgpLCBicmFja2V0LT5zdWJzY3JpcHQoKSwgZXhwciwgbG9jSGFz
QXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25tZW50cywgYnJhY2tldC0+ZGl2b3QoKSwgc3RhcnQs
IGVuZCk7CisKKyAgICAgICAgaWYgKG9wID09IE9wZXJhdG9yOjpOdWxsaXNoRXEgfHwgb3AgPT0g
T3BlcmF0b3I6Ok9yRXEgfHwgb3AgPT0gT3BlcmF0b3I6OkFuZEVxKSB7CisgICAgICAgICAgICBh
dXRvKiBub2RlID0gbmV3IChtX3BhcnNlckFyZW5hKSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5QnJh
Y2tldE5vZGUobG9jYXRpb24sIGJyYWNrZXQtPmJhc2UoKSwgYnJhY2tldC0+c3Vic2NyaXB0KCks
IG9wLCBleHByLCBsb2NIYXNBc3NpZ25tZW50cywgZXhwckhhc0Fzc2lnbm1lbnRzLCBkaXZvdCwg
c3RhcnQsIGVuZCk7CisgICAgICAgICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhicmFj
a2V0LT5kaXZvdCgpLCBicmFja2V0LT5kaXZvdEVuZCgpLm9mZnNldCk7CisgICAgICAgICAgICBy
ZXR1cm4gbm9kZTsKKyAgICAgICAgfQorCiAgICAgICAgIFJlYWRNb2RpZnlCcmFja2V0Tm9kZSog
bm9kZSA9IG5ldyAobV9wYXJzZXJBcmVuYSkgUmVhZE1vZGlmeUJyYWNrZXROb2RlKGxvY2F0aW9u
LCBicmFja2V0LT5iYXNlKCksIGJyYWNrZXQtPnN1YnNjcmlwdCgpLCBvcCwgZXhwciwgbG9jSGFz
QXNzaWdubWVudHMsIGV4cHJIYXNBc3NpZ25tZW50cywgZGl2b3QsIHN0YXJ0LCBlbmQpOwogICAg
ICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhicmFja2V0LT5kaXZvdCgpLCBicmFja2V0
LT5kaXZvdEVuZCgpLm9mZnNldCk7CiAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0KKwogICAg
IEFTU0VSVChsb2MtPmlzRG90QWNjZXNzb3JOb2RlKCkpOwogICAgIERvdEFjY2Vzc29yTm9kZSog
ZG90ID0gc3RhdGljX2Nhc3Q8RG90QWNjZXNzb3JOb2RlKj4obG9jKTsKKwogICAgIGlmIChvcCA9
PSBPcGVyYXRvcjo6RXF1YWwpCiAgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIEFz
c2lnbkRvdE5vZGUobG9jYXRpb24sIGRvdC0+YmFzZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgZXhw
ciwgZXhwckhhc0Fzc2lnbm1lbnRzLCBkb3QtPmRpdm90KCksIHN0YXJ0LCBlbmQpOwogCisgICAg
aWYgKG9wID09IE9wZXJhdG9yOjpOdWxsaXNoRXEgfHwgb3AgPT0gT3BlcmF0b3I6Ok9yRXEgfHwg
b3AgPT0gT3BlcmF0b3I6OkFuZEVxKSB7CisgICAgICAgIGF1dG8qIG5vZGUgPSBuZXcgKG1fcGFy
c2VyQXJlbmEpIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlEb3ROb2RlKGxvY2F0aW9uLCBkb3QtPmJh
c2UoKSwgZG90LT5pZGVudGlmaWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMsIGRp
dm90LCBzdGFydCwgZW5kKTsKKyAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oZG90
LT5kaXZvdCgpLCBkb3QtPmRpdm90RW5kKCkub2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuIG5vZGU7
CisgICAgfQorCiAgICAgUmVhZE1vZGlmeURvdE5vZGUqIG5vZGUgPSBuZXcgKG1fcGFyc2VyQXJl
bmEpIFJlYWRNb2RpZnlEb3ROb2RlKGxvY2F0aW9uLCBkb3QtPmJhc2UoKSwgZG90LT5pZGVudGlm
aWVyKCksIG9wLCBleHByLCBleHBySGFzQXNzaWdubWVudHMsIGRpdm90LCBzdGFydCwgZW5kKTsK
ICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhkb3QtPmRpdm90KCksIGRvdC0+ZGl2b3RF
bmQoKS5vZmZzZXQpOwogICAgIHJldHVybiBub2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L0xleGVyLmNwcAppbmRleCA0ZmI4M2NhM2EwYTdjOGFhOTkyZDIwMjllOTA5YTAzMmMxNWQ5MDA2
Li5iYWU1ZjZmODM5MjliMDg1Njg1MzNhODJmMjE2NDM5Mzc4M2IyMmQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAtMjA4Niw2ICsyMDg2LDExIEBAIHN0YXJ0Ogog
ICAgICAgICBzaGlmdCgpOwogICAgICAgICBpZiAobV9jdXJyZW50ID09ICcmJykgewogICAgICAg
ICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VMb2dp
Y2FsQXNzaWdubWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9PSAnPScpKSB7CisgICAgICAg
ICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9IEFOREVRVUFMOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICAgICAgdG9rZW4gPSBB
TkQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjEyMyw2ICsyMTI4LDExIEBA
IHN0YXJ0OgogICAgICAgICB9CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJ3wnKSB7CiAgICAg
ICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZUxv
Z2ljYWxBc3NpZ25tZW50T3BlcmF0b3JzKCkgJiYgbV9jdXJyZW50ID09ICc9JykpIHsKKyAgICAg
ICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAgIHRva2VuID0gT1JFUVVBTDsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRva2VuID0g
T1I7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMjE1OSw2ICsyMTY5LDExIEBA
IHN0YXJ0OgogICAgICAgICBzaGlmdCgpOwogICAgICAgICBpZiAobV9jdXJyZW50ID09ICc/Jykg
ewogICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25z
Ojp1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycygpICYmIG1fY3VycmVudCA9PSAnPScpKSB7
CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgICAgICB0b2tlbiA9IE5VTExJ
U0hFUVVBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIHRva2VuID0gQ09BTEVTQ0U7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAppbmRleCBm
ZDk3YTBjYTkzNWU3ZTU3NzhhMDkzODUwMjJmOTg2NzgwMTRhMzI0Li45ZDVmOTMxZTcyZjZhNWU4
NTI1ZDA2MjQzYjEzYWFkYTE5NGJhMWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaApAQCAtNzE4LDYgKzcxOCwxNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICB7CiAgICAgfQogCisgICAgaW5saW5lIFNob3J0Q2lyY3VpdFJlYWRNb2RpZnlS
ZXNvbHZlTm9kZTo6U2hvcnRDaXJjdWl0UmVhZE1vZGlmeVJlc29sdmVOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBPcGVyYXRvciBv
cGVyLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQorICAgICAgICA6IEV4cHJlc3Npb25O
b2RlKGxvY2F0aW9uKQorICAgICAgICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBk
aXZvdFN0YXJ0LCBkaXZvdEVuZCkKKyAgICAgICAgLCBtX2lkZW50KGlkZW50KQorICAgICAgICAs
IG1fcmlnaHQocmlnaHQpCisgICAgICAgICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAsIG1f
cmlnaHRIYXNBc3NpZ25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisK
ICAgICBpbmxpbmUgQXNzaWduUmVzb2x2ZU5vZGU6OkFzc2lnblJlc29sdmVOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBFeHByZXNz
aW9uTm9kZSogcmlnaHQsIEFzc2lnbm1lbnRDb250ZXh0IGFzc2lnbm1lbnRDb250ZXh0KQogICAg
ICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQogICAgICAgICAsIG1faWRlbnQoaWRlbnQp
CkBAIC03MzksNiArNzQ5LDE4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKKyAg
ICBpbmxpbmUgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlOjpTaG9ydENpcmN1aXRS
ZWFkTW9kaWZ5QnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhw
cmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yIG9w
ZXIsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cywg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpCisgICAgICAgIDogRXhwcmVzc2lvbk5vZGUobG9jYXRpb24pCisgICAgICAgICwgVGhy
b3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEoZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKQorICAg
ICAgICAsIG1fYmFzZShiYXNlKQorICAgICAgICAsIG1fc3Vic2NyaXB0KHN1YnNjcmlwdCkKKyAg
ICAgICAgLCBtX3JpZ2h0KHJpZ2h0KQorICAgICAgICAsIG1fb3BlcmF0b3Iob3BlcikKKyAgICAg
ICAgLCBtX3N1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzKHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzKQor
ICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25tZW50cyhyaWdodEhhc0Fzc2lnbm1lbnRzKQorICAg
IHsKKyAgICB9CisKICAgICBpbmxpbmUgQXNzaWduQnJhY2tldE5vZGU6OkFzc2lnbkJyYWNrZXRO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBiYXNl
LCBFeHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wg
c3Vic2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQogICAgICAgICA6IEV4cHJlc3Npb25Ob2Rl
KGxvY2F0aW9uKQogICAgICAgICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBkaXZv
dFN0YXJ0LCBkaXZvdEVuZCkKQEAgLTc3MSw2ICs3OTMsMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgewogICAgIH0KIAorICAgIGlubGluZSBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5RG90Tm9kZTo6
U2hvcnRDaXJjdWl0UmVhZE1vZGlmeURvdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2Nh
dGlvbiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBPcGVy
YXRvciBvcGVyLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50
cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQorICAgICAgICA6IEV4cHJl
c3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIFRocm93YWJsZVN1YkV4cHJlc3Npb25EYXRh
KGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCkKKyAgICAgICAgLCBtX2Jhc2UoYmFzZSkKKyAg
ICAgICAgLCBtX2lkZW50KGlkZW50KQorICAgICAgICAsIG1fcmlnaHQocmlnaHQpCisgICAgICAg
ICwgbV9vcGVyYXRvcihvcGVyKQorICAgICAgICAsIG1fcmlnaHRIYXNBc3NpZ25tZW50cyhyaWdo
dEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAgICB9CisKICAgICBpbmxpbmUgQXNzaWduRXJyb3JO
b2RlOjpBc3NpZ25FcnJvck5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQogICAgICAgICA6IEV4cHJlc3Npb25O
b2RlKGxvY2F0aW9uKQogICAgICAgICAsIFRocm93YWJsZUV4cHJlc3Npb25EYXRhKGRpdm90LCBk
aXZvdFN0YXJ0LCBkaXZvdEVuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAppbmRl
eCAyMmRmNWFlNGQwOGU1ODZlNzhmOGIzOWIyYmJmNWE2OGZmMThlNjVkLi5iNTE1NjA0YTY4YWE2
YmU0MzhmNGRmZTc5YWI0YTgwNDJjOGFmZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCkBAIC02OCw2ICs2OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBCaXRPckVx
LAogICAgICAgICBNb2RFcSwKICAgICAgICAgUG93RXEsCisgICAgICAgIE51bGxpc2hFcSwKKyAg
ICAgICAgT3JFcSwKKyAgICAgICAgQW5kRXEsCiAgICAgICAgIExTaGlmdCwKICAgICAgICAgUlNo
aWZ0LAogICAgICAgICBVUlNoaWZ0CkBAIC0xMzg5LDYgKzEzOTIsMTkgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzOwogICAgIH07CiAKKyAgICBj
bGFzcyBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUgZmluYWwgOiBwdWJsaWMgRXhw
cmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGlj
OgorICAgICAgICBTaG9ydENpcmN1aXRSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSog
IHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwor
CisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgICAgIEV4cHJlc3Npb25O
b2RlKiBtX3JpZ2h0OworICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yOworICAgICAgICBib29s
IG1fcmlnaHRIYXNBc3NpZ25tZW50czsKKyAgICB9OworCiAgICAgY2xhc3MgQXNzaWduUmVzb2x2
ZU5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHBy
ZXNzaW9uRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBBc3NpZ25SZXNvbHZlTm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgRXhwcmVzc2lvbk5vZGUqIHJp
Z2h0LCBBc3NpZ25tZW50Q29udGV4dCk7CkBAIC0xNDE4LDYgKzE0MzQsMjEgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKICAgICB9Owog
CisgICAgY2xhc3MgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlIGZpbmFsIDogcHVi
bGljIEV4cHJlc3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlU3ViRXhwcmVzc2lvbkRhdGEgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgU2hvcnRDaXJjdWl0UmVhZE1vZGlmeUJyYWNrZXROb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBFeHByZXNzaW9uTm9k
ZSogc3Vic2NyaXB0LCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNj
cmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
IG92ZXJyaWRlOworCisgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CisgICAgICAgIEV4
cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmln
aHQ7CisgICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9zdWJzY3Jp
cHRIYXNBc3NpZ25tZW50cyA6IDE7CisgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRz
IDogMTsKKyAgICB9OworCiAgICAgY2xhc3MgQXNzaWduQnJhY2tldE5vZGUgZmluYWwgOiBwdWJs
aWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJvd2FibGVFeHByZXNzaW9uRGF0YSB7CiAgICAg
cHVibGljOgogICAgICAgICBBc3NpZ25CcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBFeHByZXNzaW9uTm9kZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhwcmVz
c2lvbk5vZGUqIHJpZ2h0LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0
SGFzQXNzaWdubWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CkBA
IC0xNDU5LDYgKzE0OTAsMjAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9yaWdo
dEhhc0Fzc2lnbm1lbnRzIDogMTsKICAgICB9OwogCisgICAgY2xhc3MgU2hvcnRDaXJjdWl0UmVh
ZE1vZGlmeURvdE5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUsIHB1YmxpYyBUaHJv
d2FibGVTdWJFeHByZXNzaW9uRGF0YSB7CisgICAgcHVibGljOgorICAgICAgICBTaG9ydENpcmN1
aXRSZWFkTW9kaWZ5RG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9k
ZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmln
aHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90RW5kKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisKKyAg
ICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKKyAgICAgICAgY29uc3QgSWRlbnRpZmllciYg
bV9pZGVudDsKKyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CisgICAgICAgIE9wZXJh
dG9yIG1fb3BlcmF0b3I7CisgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsK
KyAgICB9OworCiAgICAgY2xhc3MgQXNzaWduRXJyb3JOb2RlIGZpbmFsIDogcHVibGljIEV4cHJl
c3Npb25Ob2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgewogICAgIHB1YmxpYzoK
ICAgICAgICAgQXNzaWduRXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlci5jcHAKaW5kZXggZGQyNTFmN2FiZTc1YmZiY2UwYTM5YjhjMGVlZjU1YjJkNDFiZjcw
OS4uOTc2NzU3YmQ0OTRkZmE5MGJiZDAyOGY3M2RjNjkzYTM1MDQ5MmMyZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMzg0Nyw3ICszODQ3LDcgQEAgdGVtcGxh
dGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBl
Pjo6cGFyc2VBc3NpZ25tZW4KIAogICAgIGZhaWxJZkZhbHNlKGxocywgIkNhbm5vdCBwYXJzZSBl
eHByZXNzaW9uIik7CiAgICAgaWYgKGluaXRpYWxOb25MSFNDb3VudCAhPSBtX3BhcnNlclN0YXRl
Lm5vbkxIU0NvdW50KSB7Ci0gICAgICAgIGlmIChtX3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBt
X3Rva2VuLm1fdHlwZSA8PSBCSVRPUkVRVUFMKQorICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUg
Pj0gRVFVQUwgJiYgbV90b2tlbi5tX3R5cGUgPD0gQU5ERVFVQUwpCiAgICAgICAgICAgICBzZW1h
bnRpY0ZhaWwoIkxlZnQgaGFuZCBzaWRlIG9mIG9wZXJhdG9yICciLCBnZXRUb2tlbigpLCAiJyBt
dXN0IGJlIGEgcmVmZXJlbmNlIik7CiAKICAgICAgICAgcmV0dXJuIGxoczsKQEAgLTM4NzEsNiAr
Mzg3MSw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24g
UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAgICAgICAgIGNhc2UgQklUT1JFUVVB
TDogb3AgPSBPcGVyYXRvcjo6Qml0T3JFcTsgYnJlYWs7CiAgICAgICAgIGNhc2UgTU9ERVFVQUw6
IG9wID0gT3BlcmF0b3I6Ok1vZEVxOyBicmVhazsKICAgICAgICAgY2FzZSBQT1dFUVVBTDogb3Ag
PSBPcGVyYXRvcjo6UG93RXE7IGJyZWFrOworICAgICAgICBjYXNlIE5VTExJU0hFUVVBTDogb3Ag
PSBPcGVyYXRvcjo6TnVsbGlzaEVxOyBicmVhazsKKyAgICAgICAgY2FzZSBPUkVRVUFMOiBvcCA9
IE9wZXJhdG9yOjpPckVxOyBicmVhazsKKyAgICAgICAgY2FzZSBBTkRFUVVBTDogb3AgPSBPcGVy
YXRvcjo6QW5kRXE7IGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZ290byBl
bmQ7CiAgICAgICAgIH0KQEAgLTM4OTAsNyArMzg5Myw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBU
cmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdu
bWVuCiAgICAgICAgIGxocyA9IHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24oY29udGV4dCk7CiAg
ICAgICAgIGZhaWxJZkZhbHNlKGxocywgIkNhbm5vdCBwYXJzZSB0aGUgcmlnaHQgaGFuZCBzaWRl
IG9mIGFuIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiIpOwogICAgICAgICBpZiAoaW5pdGlhbE5vbkxI
U0NvdW50ICE9IG1fcGFyc2VyU3RhdGUubm9uTEhTQ291bnQpIHsKLSAgICAgICAgICAgIGlmICht
X3Rva2VuLm1fdHlwZSA+PSBFUVVBTCAmJiBtX3Rva2VuLm1fdHlwZSA8PSBCSVRPUkVRVUFMKQor
ICAgICAgICAgICAgaWYgKG1fdG9rZW4ubV90eXBlID49IEVRVUFMICYmIG1fdG9rZW4ubV90eXBl
IDw9IEFOREVRVUFMKQogICAgICAgICAgICAgICAgIHNlbWFudGljRmFpbCgiTGVmdCBoYW5kIHNp
ZGUgb2Ygb3BlcmF0b3IgJyIsIGdldFRva2VuKCksICInIG11c3QgYmUgYSByZWZlcmVuY2UiKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXJUb2tlbnMuaAppbmRleCA0ODE4MWFlMGQ0YjkzMzg5NGY4ZTRmMmJkZmRiNjJl
ODEzODNkMmM1Li5kMWM0N2VmZTJjZmJhNDNjYzhjNmZmMDBhZjJlOTgyNGNhZWM2OTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKQEAgLTEzNCw2ICsx
MzQsOSBAQCBlbnVtIEpTVG9rZW5UeXBlIHsKICAgICBCSVRBTkRFUVVBTCwKICAgICBCSVRYT1JF
UVVBTCwKICAgICBCSVRPUkVRVUFMLAorICAgIE5VTExJU0hFUVVBTCwKKyAgICBPUkVRVUFMLAor
ICAgIEFOREVRVUFMLAogICAgIERPVERPVERPVCwKICAgICBBUlJPV0ZVTkNUSU9OLAogICAgIFFV
RVNUSU9ORE9ULApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9uc0xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgK
aW5kZXggOTk2OTRkMDEyN2JhZTFjZWE1Y2Y2M2ZhOWNkZDk3NzAwMGNiN2FhNC4uYzI4YmZjMzRi
ZmU4MGY3NjM0YTQwZTFmMzhkMDI5N2I2YTcwZDcxZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zTGlzdC5oCkBAIC01MDAsNiArNTAwLDcgQEAgY29uc3RleHByIGJv
b2wgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGkgPSBmYWxzZTsKICAgICB2KEJvb2wsIGZv
cmNlT1NSRXhpdFRvTExJbnQsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSBhbHdheXMgZXhp
dCB0byB0aGUgTExJbnQuIElmIGZhbHNlLCB3ZSBleGl0IHRvIHdoYXRldmVyIGlzIG1vc3QgY29u
dmVuaWVudC4iKSBcCiAgICAgdihVbnNpZ25lZCwgZ2V0QnlWYWxJQ01heE51bWJlck9mSWRlbnRp
ZmllcnMsIDQsIE5vcm1hbCwgIk51bWJlciBvZiBpZGVudGlmaWVycyB3ZSBzZWUgaW4gdGhlIExM
SW50IHRoYXQgY291bGQgY2F1c2UgdXMgdG8gYmFpbCBvbiBnZW5lcmF0aW5nIGFuIElDIGZvciBn
ZXRfYnlfdmFsLiIpIFwKICAgICB2KEJvb2wsIHVzZVB1YmxpY0NsYXNzRmllbGRzLCB0cnVlLCBO
b3JtYWwsICJJZiB0cnVlLCB0aGUgcGFyc2VyIHdpbGwgdW5kZXJzdGFuZCBwdWJsaWMgZGF0YSBm
aWVsZHMgaW5zaWRlIGNsYXNzZXMuIikgXAorICAgIHYoQm9vbCwgdXNlTG9naWNhbEFzc2lnbm1l
bnRPcGVyYXRvcnMsIGZhbHNlLCBOb3JtYWwsICJFbmFibGUgc3VwcG9ydCBmb3IgXD9cPz0sIHx8
PSwgYW5kICYmPSBsb2dpY2FsIGFzc2lnbm1lbnQgb3BlcmF0b3JzLiIpIFwKICAgICB2KEJvb2ws
IHVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb24sIGZhbHNlLCBOb3JtYWws
ICJGb3IgdGhlIGFybTY0IEV4ZWN1dGFibGVBbGxvY2F0b3IsIGlmIHRydWUsIHNlbGVjdCB3aGlj
aCByZWdpb24gdG8gdXNlIHJhbmRvbWx5LiBUaGlzIGlzIHVzZWZ1bCBmb3IgdGVzdGluZyB0aGF0
IGp1bXAgaXNsYW5kcyB3b3JrLiIpIFwKIAogZW51bSBPcHRpb25FcXVpdmFsZW5jZSB7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTMxMjYyOWQz
Mjg1MGZiNjg2MmZjMmNlMTJlYTVlNjk3YzIwYTFjNy4uZjcwMWQ3MGE0ZDVmNjUzNWQzYWEzMDFj
NjRjNzBhOGEwZDY1NTlmNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA0LTE0ICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbRVNOZXh0XSBJbXBsZW1lbnQgbG9naWNhbCBh
c3NpZ25tZW50IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9zcyBLaXJzbGluZy4K
KworICAgICAgICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIwMjAtMDQtMTQg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBpbnRlcmZh
Y2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRl
c3RzCmluZGV4IDdiZGE2MTc3ZDY0MDA5YzI2NWJjN2M0MDg3MWEzMGY3NDQ3ZDUxNmIuLmM0ZTA4
ZjBmZjRmNmRiYmE3ODEzZmFhYzllODcxNjNhZmJjODA0NzcgMTAwNzU1Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0
cmVzcy10ZXN0cwpAQCAtNzg3LDYgKzc4NywxMCBAQCBkZWYgcnVuTWluaU1vZGUoKm9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykKICAgICBydW4oIm1pbmktbW9kZSIsICItLWZvcmNlTWluaVZN
TW9kZT10cnVlIiwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKIGVuZAogCitkZWYgcnVu
TG9naWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkKCpvcHRpb25hbFRlc3RTcGVjaWZpY09w
dGlvbnMpCisgICAgcnVuKCJsb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3JzLWVuYWJsZWQiLCAi
LS11c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycz10cnVlIiAsICooRlRMX09QVElPTlMgKyBv
cHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQorZW5kCisKIGRlZiBkZWZhdWx0UnVuCiAgICAg
aWYgJG1vZGUgPT0gInF1aWNrIgogICAgICAgICBkZWZhdWx0UXVpY2tSdW4KZGlmZiAtLWdpdCBh
L0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWRjOTg5YzU1YjQz
NGVmZjZmZDNlZjRkYTNhNTIzYzdmZDU3M2FiMi4uY2Y3OGQwZjFhMjQ3ZDNiMTE2ZmI3MTc2OTky
MDgzYWI0OThkNDRjZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNC0xNCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW0VTTmV4dF0gSW1wbGVtZW50IGxvZ2ljYWwg
YXNzaWdubWVudCBvcGVyYXRvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwOTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IFJvc3MgS2lyc2xpbmcu
CisKKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yLWFuZC5qczog
QWRkZWQuCisgICAgICAgICogc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1udWxs
aXNoLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvbG9naWNhbC1hc3NpZ25tZW50LW9wZXJh
dG9yLW9yLmpzOiBBZGRlZC4KKworICAgICAgICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6CisgICAg
ICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKyAgICAgICAgUmlnaHQgbm93LCB0ZXN0
MjYyIGV4cGVjdHMgYW4gZWFybHkgZXJyb3IgdG8gYmUgdGhyb3duIGlmIHRoZSBsaHMgaXMgbm90
IHNpbXBsZSwgd2hpY2ggZG9lcworICAgICAgICBub3QgbWF0Y2ggd2hhdCB3ZSBkbyB3aXRoIG90
aGVyIHJlYWQtbW9kaWZ5IGFzc2lnbm1lbnQgb3BlcmF0b3JzLiBUaGlzIGlzIGxpa2VseSB0byBj
aGFuZ2UKKyAgICAgICAgaW4gdGhlIGZ1dHVyZSB0byBtYXRjaCBleGlzdGluZyBiZWhhdmlvciAo
dGhyb3cgYSBgUmVmZXJlbmNlRXJyb3JgKSBbMV0uCisKKyAgICAgICAgWzFdOiA8aHR0cHM6Ly9n
aXRodWIuY29tL3RjMzkvZWNtYTI2Mi9pc3N1ZXMvMjU3I2lzc3VlY29tbWVudC01MDI4Nzg3MDg+
CisKIDIwMjAtMDQtMTQgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgU2tpcCBhbGwgbG93IGV4ZWN1dGFibGUgbWVtb3J5IHdhc20gdGVzdHMgb24gYXJtNjQKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2xvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvci1hbmQu
anMgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItYW5kLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY5NzU3YTU0OWM2MTVlMzE2NmQxNDMwZWJmM2M4MWY2OTA4YmIwZGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3It
YW5kLmpzCkBAIC0wLDAgKzEsMTY4NCBAQAorLy9AIHJ1bkxvZ2ljYWxBc3NpZ25tZW50T3BlcmF0
b3JzRW5hYmxlZAorCitmdW5jdGlvbiBzaG91bGRCZShmdW5jLCBleHBlY3RlZCkgeworICAgIGxl
dCBhY3R1YWwgPSBmdW5jKCk7CisgICAgaWYgKHR5cGVvZiBleHBlY3RlZCA9PT0gImZ1bmN0aW9u
IiA/ICEoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIDogYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGV4cGVj
dGVkKX0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KGFjdHVhbCl9YCk7Cit9CisKK2Z1bmN0aW9u
IHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkg
eworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7
CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBlcnJvclR5cGUpKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkICR7ZXJyb3JUeXBlLm5hbWV9IGJ1dCBzYXcgJHtl
cnJvciAmJiBlcnJvci5uYW1lfSFgKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3dTeW50YXhF
cnJvcihzY3JpcHQpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChz
Y3JpcHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKwor
ICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKQorICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoYEV4cGVjdGVkIFN5bnRheEVycm9yIGJ1dCBzYXcgJHtlcnJvciAmJiBlcnJvci5u
YW1lfSFgKTsKK30KKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgcmV0
dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHg7CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB1bmRlZmluZWQpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1
cm4geCAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIHVu
ZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAg
ICByZXR1cm4geCAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBudWxsOworICAgIHggJiY9IDQyOworICAgIHJldHVybiB4OworfSwgbnVsbCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4g
eCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
dHJ1ZTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7Cisg
ICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHggJiY9IDQyOworICAg
IHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
MTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gMTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAiIjsKKyAgICByZXR1cm4geCAm
Jj0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7
CisgICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gInRlc3QiOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAidGVzdCI7CisgICAgeCAm
Jj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHggJiY9IDQyOworICAgIHJldHVy
biB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOwor
ICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbXTsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsKK30sIDQyKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAg
cmV0dXJuIHggJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsK
K30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBu
dWxsOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICB4ICYmPSA0MjsKKyAgICByZXR1cm4geDsK
K30sIG51bGwpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1
ZTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwg
ZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gZmFsc2U7Cisg
ICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIDApOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICB4ICYmPSA0MjsK
KyAgICByZXR1cm4geDsKK30sIDApOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gMTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAgcmV0dXJuIHggJiY9IDQy
OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7Cisg
ICAgeCAmJj0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCAiIik7CisKK3Nob3VsZFRocm93KGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSAidGVzdCI7CisgICAgcmV0dXJuIHggJiY9IDQyOworfSwg
VHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9
OworICAgIHJldHVybiB4ICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93KGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geCAmJj0gNDI7Cit9LCBU
eXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsK
KyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5h
OworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAg
eC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHguYSAmJj0g
NDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTog
bnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgbnVsbCk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4
LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiB0cnVlfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1
cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30s
IGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07Cisg
ICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogMH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
MCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJl
dHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAxfTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICByZXR1
cm4geC5hICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7YTogIiJ9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICIiKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICBy
ZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAg
ICByZXR1cm4geC5hICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YToge319OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAg
IHJldHVybiB4LmEgJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiBbXX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
NDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAg
IHJldHVybiB4LmEgJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHguYSAmJj0gNDI7CisgICAgcmV0dXJuIHguYTsK
K30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAg
ICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4LmEg
JiY9IDQyOworfSwgbnVsbCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogbnVsbH07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgbnVsbCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAg
cmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hICYmPSA0MjsKKyAgICByZXR1cm4geC5hOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNl
fTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5hICYmPSA0MjsKKyAgICBy
ZXR1cm4geC5hOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwgMCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgeC5hICYmPSA0MjsKKyAg
ICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogMX07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeC5hICYmPSA0MjsKKyAg
ICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sICIiKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeC5hICYmPSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICB4
LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHJldHVybiB4LmEgJiY9IDQyOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAg
ICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAgIHJldHVybiB4LmEgJiY9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsK
KyAgICB4LmEgJiY9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKKworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQy
OworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9Owor
ICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gJiY9IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsK
K30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBudWxs
fTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBudWxsKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0dXJu
IHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9
OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBmYWxzZX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDApOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0gJiY9
IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogMX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHhbImEi
XSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOwor
fSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07Cisg
ICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgIiIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJh
Il0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAg
IHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJdICYmPSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBb
XX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge307CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdICYm
PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4WyJh
Il0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJu
IHhbImEiXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCBudWxsKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4
WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBudWxsKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJd
ICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiB0cnVlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9Owor
ICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCAwKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4WyJhIl0g
JiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAg
ICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0g
JiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6ICIifTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAiIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAg
ICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiAidGVzdCJ9OworICAgIHhbImEiXSAmJj0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHhbImEiXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogW119OworICAg
IHhbImEiXSAmJj0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHhbMF0gJiY9IDQy
OworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBb
XTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHVuZGVmaW5lZCk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0
dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sIHVuZGVmaW5lZCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gW251bGxdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIG51bGwpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtudWxsXTsKKyAgICB4WzBdICYmPSA0MjsKKyAg
ICByZXR1cm4geFswXTsKK30sIG51bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAgIHhbMF0gJiY9IDQyOwor
ICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgeFswXSAmJj0g
NDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDApOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFswXTsKKyAgICB4WzBdICYmPSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IFsxXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFsiIl07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJu
IHhbMF07Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyJ0
ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0gJiY9IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFt7fV07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0dXJu
IHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1td
XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sIDQyKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBb
XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgeFswXSAmJj0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCB1bmRlZmluZWQpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gW3VuZGVmaW5lZF07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgdW5kZWZp
bmVkKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRd
OworICAgIHhbMF0gJiY9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgdW5kZWZpbmVkKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICByZXR1cm4g
eFswXSAmJj0gNDI7Cit9LCBudWxsKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9IFtudWxsXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIG51
bGwpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW3RydWVdOworICAg
IHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4geFswXTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtmYWxzZV07
CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFswXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFswXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1
cm4geFswXTsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
WzFdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFsxXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsi
Il07CisgICAgcmV0dXJuIHhbMF0gJiY9IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdICYmPSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsi
dGVzdCJdOworICAgIHJldHVybiB4WzBdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAgIHhbMF0gJiY9IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhbMF0gJiY9IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSAmJj0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbW11dOworICAgIHhbMF0gJiY9IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4ICYmPSB5ICsgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4ICYmPSB5ID0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4ICYmPSB5ICYmIHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1
cm4geCAmJj0geSA/PyB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggJiY9IHkgfHwgejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJl
dHVybiB4ICYmPSB5ICYmPSB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAg
cmV0dXJuIHggJiY9IHkgPz89IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAg
ICByZXR1cm4geCAmJj0geSB8fD0gejsKK30sIGZhbHNlKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ICYmPSB5ICsgejsKK30sIDMpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAg
ICByZXR1cm4geCAmJj0geSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0
dXJuIHggJiY9IHkgJiYgejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICByZXR1cm4g
eCAmJj0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ICYm
PSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0
cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkg
JiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVl
OworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgPz89
IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOwor
ICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggJiY9IHkgfHw9IHo7
Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsK
KworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAg
ICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOwor
ICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSAmJj0gNDI7
CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsK
K30sICJnZXQgc2V0IGdldCBzZXQgNDIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICBy
ZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKwor
ICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigi
ICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxl
dCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsK
KyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7Cisg
ICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAg
fSwKKyAgICB9OworCisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9IDQyOworCisgICAgcmV0
dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBnZXQgdW5kZWZpbmVkIik7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQg
YSA9IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAg
bG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAg
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAg
IGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhb
ImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAi
Z2V0IHNldCBnZXQgc2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBs
b2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdl
dCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJu
IGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4
WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4o
IiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBs
ZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7
CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAg
IH0sCisgICAgfTsKKworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsiYSJdICYmPSA0MjsKKwor
ICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgZ2V0IHVuZGVmaW5l
ZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisg
ICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVz
aCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0K
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsK
KyAgICAgICAgICAgIHRoaXMuX2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3Mg
Q2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAg
ICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQi
KTsKKyAgICAgICAgICAgIHN1cGVyLmEgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBs
ZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4LmEgJiY9IDQyOworICAg
IHguYSAmJj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9
LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBn
ZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IDQyIik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAg
IHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAg
ICAgICB0aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4
dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
Z2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAg
ICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAg
ICAgICAgICBzdXBlci5hICYmPSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBu
ZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHguYSAmJj0gNDI7CisgICAgeC5hICYm
PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQt
Y2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgewor
ICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7Cisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7
CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5f
YSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVu
dCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIp
OworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEo
dikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3Vw
ZXIuYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOwor
ICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeC5hICYmPSA0MjsKKyAgICB4LmEgJiY9IDQyOwor
CisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBn
ZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5lZCIpOworCisKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOwor
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikg
eworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMu
X2EgJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJl
bnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQi
KTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNl
dCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAg
IHN1cGVyWyJhIl0gJiY9IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBD
aGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gJiY9IDQyOworICAgIHhbImEiXSAm
Jj0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0
LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hp
bGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IDQyIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVu
dCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQi
KTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBh
KHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0
aGlzLl9hICYmPSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMg
UGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNo
aWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXJbImEiXTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAg
ICAgICBzdXBlclsiYSJdICYmPSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBu
ZXcgQ2hpbGQ7CisgICAgeC5fYSA9IGZhbHNlOworICAgIHhbImEiXSAmJj0gNDI7CisgICAgeFsi
YSJdICYmPSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30s
ICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCBmYWxzZSIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJl
bnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50
Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQg
YSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAg
dGhpcy5fYSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1j
aGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAg
ICAgICAgc3VwZXJbImEiXSAmJj0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0g
bmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsiYSJdICYmPSA0MjsKKyAg
ICB4WyJhIl0gJiY9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9h
OworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHVuZGVmaW5l
ZCIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAg
ICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAg
ICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30s
IGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBP
YmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQs
CisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hICYmPSA0
MjsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAi
dXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHko
eCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAorICAgICAgICB3cml0YWJsZTogZmFsc2Us
CisgICAgfSk7CisgICAgcmV0dXJuIHguYSAmJj0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwK
KyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4LmEgJiY9IDQy
OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7
CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7Cisg
ICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9
KTsKKyAgICByZXR1cm4geC5hICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisKKworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxz
ZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZh
bHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgZmFsc2UpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3Jp
dGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5k
ZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0
IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsK
KyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsK
KyAgICByZXR1cm4geFsiYSJdICYmPSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAg
ICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSAmJj0gNDI7Cit9
LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAg
ICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAg
ICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOwor
ICAgIHJldHVybiB4WyJhIl0gJiY9IDQyOworfSwgdW5kZWZpbmVkKTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAg
ICAgIHggJiY9IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIChmdW5jdGlv
bigpIHsKKyAgICAgICAgcmV0dXJuIHggJiY9IDQyOworICAgIH0pKCk7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVy
biAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4ICYmPSA0MjsKKyAgICB9KSgpOworfSwg
dW5kZWZpbmVkKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB0cnVlOworICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgeCAmJj0gNDI7CisgICAgfSkoKTsK
KyAgICByZXR1cm4geDsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICBy
ZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkg
eworICAgICAgICByZXR1cm4geCAmJj0gNDI7CisgICAgfSkoKTsKK30sIHVuZGVmaW5lZCk7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29u
c3QgeCA9IHRydWU7CisgICAgdHJ5IHsKKyAgICAgICAgeCAmJj0gKytjb3VudDsKKyAgICB9IGNh
dGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCAm
Jj0gKytjb3VudDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsK
KyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKKworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9
IHRydWU7CisgICAgZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHg7IH0KKworICAgIHRyeSB7
CisgICAgICAgIHggJiY9ICsrY291bnQ7CisgICAgfSBjYXRjaCB7IH0KKworICAgIHJldHVybiBj
b3VudDsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAw
OworCisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVy
biB4OyB9CisKKyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25z
dCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisK
KyAgICB4ICYmPSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKKworCitz
aG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICB4ICYmPSA0MjsKKyAgICBsZXQgeCA9IHRydWU7
CisgICAgcmV0dXJuIHg7Cit9LCBSZWZlcmVuY2VFcnJvcik7CisKKworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICByZXR1cm4gdW5kZWZpbmVkICYmPSA0MjsKK30sIHVuZGVmaW5lZCk7CisK
K3Nob3VsZFRocm93U3ludGF4RXJyb3IoYG51bGwgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3lu
dGF4RXJyb3IoYHRydWUgJiY9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYGZhbHNl
ICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGAwICYmPSA0MmApOworCitzaG91
bGRUaHJvd1N5bnRheEVycm9yKGAxICYmPSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9y
KGAiIiAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgInRlc3QiICYmPSA0MmAp
OworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGB7fSAmJj0gNDJgKTsKKworc2hvdWxkVGhyb3dT
eW50YXhFcnJvcihgW10gJiY9IDQyYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9sb2dp
Y2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qcyBiL0pTVGVzdHMvc3RyZXNzL2xvZ2lj
YWwtYXNzaWdubWVudC1vcGVyYXRvci1udWxsaXNoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NDY1Y2M4NWRi
MDFlMjIyMzYzYzJlMGEyYmI1NjI2Y2U5ZGJjN2QKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9sb2dpY2FsLWFzc2lnbm1lbnQtb3BlcmF0b3ItbnVsbGlzaC5qcwpAQCAtMCwwICsx
LDE2OTkgQEAKKy8vQCBydW5Mb2dpY2FsQXNzaWdubWVudE9wZXJhdG9yc0VuYWJsZWQKKworZnVu
Y3Rpb24gc2hvdWxkQmUoZnVuYywgZXhwZWN0ZWQpIHsKKyAgICBsZXQgYWN0dWFsID0gZnVuYygp
OworICAgIGlmICh0eXBlb2YgZXhwZWN0ZWQgPT09ICJmdW5jdGlvbiIgPyAhKGFjdHVhbCBpbnN0
YW5jZW9mIGV4cGVjdGVkKSA6IGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcihgZXhwZWN0ZWQgJHtKU09OLnN0cmluZ2lmeShleHBlY3RlZCl9IGJ1dCBnb3QgJHtK
U09OLnN0cmluZ2lmeShhY3R1YWwpfWApOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5j
LCBlcnJvclR5cGUpIHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygp
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlm
ICghKGVycm9yIGluc3RhbmNlb2YgZXJyb3JUeXBlKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KGBFeHBlY3RlZCAke2Vycm9yVHlwZS5uYW1lfSBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3IubmFt
ZX0hYCk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93U3ludGF4RXJyb3Ioc2NyaXB0KSB7Cisg
ICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBp
bnN0YW5jZW9mIFN5bnRheEVycm9yKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3Rl
ZCBTeW50YXhFcnJvciBidXQgc2F3ICR7ZXJyb3IgJiYgZXJyb3IubmFtZX0hYCk7Cit9CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4OworICAgIHJldHVybiB4ID8/PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHg7CisgICAgeCA/Pz0gNDI7
CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmluZWQ7CisgICAgeCA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gbnVsbDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAg
IHJldHVybiB4ID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHRydWU7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICByZXR1cm4g
eCA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gZmFsc2U7CisgICAgeCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCBmYWxzZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMDsKKyAgICByZXR1cm4geCA/Pz0gNDI7
Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAwOworICAgIHgg
Pz89IDQyOworICAgIHJldHVybiB4OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCB4ID0gMTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSAxOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4
OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAg
cmV0dXJuIHggPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9ICIiOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgIiIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCA/Pz0g
NDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0
ZXN0IjsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sICJ0ZXN0Iik7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHggPz89IDQyOwor
fSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAg
ICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW107CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgQXJyYXkp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHggPz89IDQy
OworICAgIHJldHVybiB4OworfSwgQXJyYXkpOworCisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBU
eXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVs
bDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAg
eCA/Pz0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIGZhbHNl
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZhbHNlOworICAgIHgg
Pz89IDQyOworICAgIHJldHVybiB4OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBjb25zdCB4ID0gMDsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCAwKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IDA7CisgICAgeCA/Pz0gNDI7CisgICAg
cmV0dXJuIHg7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IDE7CisgICAgcmV0dXJuIHggPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSAxOworICAgIHggPz89IDQyOworICAgIHJldHVybiB4OworfSwgMSk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAiIjsKKyAgICByZXR1cm4g
eCA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSAiIjsKKyAgICB4ID8/PSA0MjsKKyAgICByZXR1cm4geDsKK30sICIiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCA/Pz0gNDI7
Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gInRl
c3QiOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geCA/Pz0gNDI7Cit9LCBPYmpl
Y3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0
dXJuIHggPz89IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFtdOworICAgIHJldHVybiB4ID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJldHVybiB4ID8/PSA0MjsK
K30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307
CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge307CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9
OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0
dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogbnVsbH07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHguYSA/Pz0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hID8/PSA0MjsK
KyAgICByZXR1cm4geC5hOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHgu
YSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAw
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeC5h
ID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgMSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDF9OworICAgIHguYSA/Pz0g
NDI7CisgICAgcmV0dXJuIHguYTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgeCA9IHthOiAiIn07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAiIik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICB4LmEgPz89IDQy
OworICAgIHJldHVybiB4LmE7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCAidGVzdCIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAg
IHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsK
K30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHt9
fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBPYmplY3QpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgcmV0dXJuIHguYSA/
Pz0gNDI7Cit9LCBBcnJheSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0g
e2E6IFtdfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7CisK
KworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJu
IHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICBy
ZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiBu
dWxsfTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiBudWxsfTsKKyAgICB4LmEgPz89IDQyOworICAgIHJl
dHVybiB4LmE7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogdHJ1ZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICB4LmEgPz89IDQy
OworICAgIHJldHVybiB4LmE7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBmYWxz
ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9Owor
ICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICByZXR1cm4geC5hID8/PSA0
MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9
OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDApOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHJldHVybiB4LmEgPz89IDQy
OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMX07
CisgICAgeC5hID8/PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4LmEgPz89IDQy
OworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIi
fTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAiIik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geC5h
ID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogInRlc3QifTsKKyAgICB4LmEgPz89IDQyOworICAgIHJldHVybiB4LmE7Cit9LCAi
dGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsK
KyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSB7YToge319OworICAgIHguYSA/Pz0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7YTogW119OworICAgIHJldHVybiB4LmEgPz89IDQyOworfSwgQXJyYXkpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICB4LmEgPz89IDQyOwor
ICAgIHJldHVybiB4LmE7Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIHhbImEiXSA/Pz0gNDI7
CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdW5kZWZpbmVk
fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4
WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiBudWxsfTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9Owor
ICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0ge2E6IHRydWV9OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0
dXJuIHhbImEiXTsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiBmYWxzZX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJh
Il0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQy
OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IDB9Owor
ICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDApOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdID8/
PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAx
fTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAxKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogIiJ9OworICAgIHJldHVybiB4WyJh
Il0gPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHthOiAiIn07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgIiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAidGVzdCJ9OworICAg
IHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHJl
dHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBPYmplY3QpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgeFsiYSJd
ID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHJldHVybiB4WyJhIl0gPz89IDQy
OworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiBb
XX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgQXJyYXkpOwor
CisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHJldHVy
biB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0ge307CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5l
ZH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZpbmVkfTsKKyAgICB4WyJhIl0gPz89IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCA0
Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07Cisg
ICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHRydWV9OworICAgIHJldHVybiB4WyJh
Il0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogZmFs
c2V9OworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsKKyAgICB4WyJhIl0gPz89IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAw
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAwfTsKKyAgICB4
WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiAxfTsKKyAgICByZXR1cm4geFsiYSJdID8/PSA0
MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9
OworICAgIHhbImEiXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbImEiXTsKK30sIDEpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICByZXR1cm4geFsi
YSJdID8/PSA0MjsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IHthOiAiIn07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
IiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07
CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeFsiYSJdID8/PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEiXSA/Pz0gNDI7Cit9LCBP
YmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsK
KyAgICB4WyJhIl0gPz89IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCBPYmplY3QpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4g
eFsiYSJdID8/PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiBbXX07CisgICAgeFsiYSJdID8/PSA0MjsKKyAgICByZXR1cm4geFsiYSJd
OworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBb
XTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gW107CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07
Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5l
ZF07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFt1bmRlZmluZWRdOworICAgIHhbMF0gPz89IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFtudWxsXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHhbMF0gPz89IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbdHJ1ZV07CisgICAgeFswXSA/Pz0gNDI7CisgICAg
cmV0dXJuIHhbMF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbZmFsc2VdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbZmFsc2VdOworICAgIHhbMF0gPz89IDQy
OworICAgIHJldHVybiB4WzBdOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFswXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAwKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07CisgICAgeFswXSA/Pz0gNDI7Cisg
ICAgcmV0dXJuIHhbMF07Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbMV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVy
biB4WzBdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWyIi
XTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAiIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gWyIiXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFsw
XTsKK30sICIiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRlc3Qi
XTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCAidGVzdCIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IFsidGVzdCJdOworICAgIHhbMF0gPz89IDQyOworICAgIHJl
dHVybiB4WzBdOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBbe31dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICB4WzBdID8/PSA0MjsKKyAg
ICByZXR1cm4geFswXTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gW1tdXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCBBcnJheSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW1tdXTsKKyAgICB4WzBdID8/PSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbXTsKKyAgICByZXR1cm4geFswXSA/Pz0gNDI7Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbXTsKKyAgICB4WzBdID8/PSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt1bmRlZmluZWRdOwor
ICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBdID8/PSA0
MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxs
XTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxk
QmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFt0cnVlXTsKKyAgICByZXR1cm4geFswXSA/
Pz0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IFt0cnVlXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHRydWUpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICByZXR1
cm4geFswXSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbZmFsc2VdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOwor
fSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gWzBdOwor
ICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBjb25zdCB4ID0gWzBdOworICAgIHhbMF0gPz89IDQyOworICAgIHJldHVybiB4WzBdOwor
fSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAg
cmV0dXJuIHhbMF0gPz89IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbMV07CisgICAgeFswXSA/Pz0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCAx
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsiIl07CisgICAgcmV0
dXJuIHhbMF0gPz89IDQyOworfSwgIiIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBj
b25zdCB4ID0gWyIiXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICIi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsidGVzdCJdOworICAg
IHJldHVybiB4WzBdID8/PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAgICB4WzBdID8/PSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbe31dOworICAgIHJldHVybiB4WzBdID8/PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhbMF0gPz89IDQyOworICAg
IHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gPz89IDQyOworfSwgQXJyYXkpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAgICB4WzBdID8/PSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsK
KyAgICByZXR1cm4geCA/Pz0geSArIHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsK
KyAgICByZXR1cm4geCA/Pz0geSA9IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsK
KyAgICByZXR1cm4geCA/Pz0geSAmJiB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7
CisgICAgcmV0dXJuIHggPz89IHkgPz8gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ID8/PSB5IHx8IHo7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCA/Pz0geSAmJj0gejsKK30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4ID8/PSB5ID8/PSB6OworfSwgZmFsc2UpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgfHw9IHo7Cit9LCBmYWxzZSk7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAg
IGxldCB6ID0gMjsKKyAgICByZXR1cm4geCA/Pz0geSArIHo7Cit9LCAzKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggPz89IHkgPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAy
OworICAgIHJldHVybiB4ID8/PSB5ICYmIHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7Cisg
ICAgcmV0dXJuIHggPz89IHkgPz8gejsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICBy
ZXR1cm4geCA/Pz0geSB8fCB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4ID8/PSB5ICYmPSB6OworfSwgMik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4
ID8/PSB5ID8/PSB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVybiB4ID8/
PSB5IHx8PSB6OworfSwgMSk7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
bG9nID0gW107CisKKyAgICBsZXQgYSA9IHRydWU7CisgICAgbGV0IHggPSB7CisgICAgICAgIGdl
dCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAgICAgcmV0dXJu
IGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07CisKKyAgICB4
LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSAr
ICIgIiArIGE7Cit9LCAiZ2V0IGdldCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gZmFsc2U7CisgICAgbGV0IHggPSB7Cisg
ICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAgICAgICAg
ICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAorICAgIH07
CisKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpv
aW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IGdldCBmYWxzZSIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAg
ICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
Iik7CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikg
eworICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAg
ICAgIH0sCisgICAgfTsKKworICAgIHguYSA/Pz0gNDI7CisgICAgeC5hID8/PSA0MjsKKworICAg
IHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOwor
CisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0
IGEgPSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAg
ICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAg
ICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdID8/PSA0MjsKKyAgICB4
WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwg
ImdldCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0g
W107CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOwor
ICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0
Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJd
ID8/PSA0MjsKKyAgICB4WyJhIl0gPz89IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikg
KyAiICIgKyBhOworfSwgImdldCBnZXQgZmFsc2UiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSB1bmRlZmluZWQ7CisgICAgbGV0IHgg
PSB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldCIpOworICAg
ICAgICAgICAgcmV0dXJuIGE7CisgICAgICAgIH0sCisgICAgICAgIHNldCBhKHYpIHsKKyAgICAg
ICAgICAgIGxvZy5wdXNoKCJzZXQiKTsKKyAgICAgICAgICAgIGEgPSB2OworICAgICAgICB9LAor
ICAgIH07CisKKyAgICB4WyJhIl0gPz89IDQyOworICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICBy
ZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIGE7Cit9LCAiZ2V0IHNldCBnZXQgNDIiKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNz
IFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1w
YXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAg
IHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAg
ICAgICB0aGlzLl9hID8/PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4
dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgi
Z2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAg
ICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAg
ICAgICAgICBzdXBlci5hID8/PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBu
ZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHRydWU7CisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEgPz89
IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1j
aGlsZCBnZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IHRydWUiKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAg
ICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2Eg
Pz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQg
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHJldHVybiBzdXBlci5hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYp
IHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVy
LmEgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAg
ICB4Ll9hID0gZmFsc2U7CisgICAgeC5hID8/PSA0MjsKKyAgICB4LmEgPz89IDQyOworCisgICAg
cmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFy
ZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IGZhbHNlIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAgICAgIGdldCBh
KCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAg
IGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hID8/PSB2OworICAg
ICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAg
Z2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAg
ICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5hID8/PSB2Owor
ICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVu
ZGVmaW5lZDsKKyAgICB4LmEgPz89IDQyOworICAgIHguYSA/Pz0gNDI7CisKKyAgICByZXR1cm4g
bG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0
LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOwor
CisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xh
c3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAg
ICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQg
ZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9
CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBs
ZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdHJ1ZTsKKyAgICB4WyJhIl0gPz89IDQyOwor
ICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHgu
X2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFz
cyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQt
cGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAg
ICAgICAgdGhpcy5fYSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBl
eHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0K
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOwor
ICAgICAgICAgICAgc3VwZXJbImEiXSA/Pz0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxl
dCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBmYWxzZTsKKyAgICB4WyJhIl0gPz89IDQyOwor
ICAgIHhbImEiXSA/Pz0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHgu
X2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgZmFsc2Ui
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xh
c3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0
LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAg
ICAgICAgIHRoaXMuX2EgPz89IHY7CisgICAgICAgIH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQg
ZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNo
KCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJldHVybiBzdXBlclsiYSJdOworICAgICAgICB9
CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsK
KyAgICAgICAgICAgIHN1cGVyWyJhIl0gPz89IHY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBs
ZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0gdW5kZWZpbmVkOworICAgIHhbImEiXSA/Pz0g
NDI7CisgICAgeFsiYSJdID8/PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAi
ICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBz
ZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQyIik7CisKKworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAi
YSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAg
ICB9KTsKKyAgICByZXR1cm4geC5hID8/PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAi
YSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisg
ICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgs
ICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3cml0YWJsZTogZmFs
c2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCA0Mik7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAor
ICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7
Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgInVzZSBzdHJpY3QiOwor
ICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJhIiwgeworICAg
ICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAg
ICByZXR1cm4geC5hID8/PSA0MjsKK30sIGZhbHNlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24o
KSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAgICB3
cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSA/Pz0gNDI7Cit9LCBUeXBl
RXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAg
ICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVlLAor
ICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/Pz0g
NDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBmYWxz
ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0g
Pz89IDQyOworfSwgZmFsc2UpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVy
biB4WyJhIl0gPz89IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZh
bHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgdHJ1ZSk7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9Owor
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZhbHNl
LAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSA/
Pz0gNDI7Cit9LCBmYWxzZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ug
c3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAi
YSIsIHsKKyAgICAgICAgdmFsdWU6IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNl
LAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gPz89IDQyOworfSwgVHlwZUVycm9yKTsKKwor
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rp
b24oKSB7CisgICAgICAgIHggPz89IDQyOworICAgIH0pKCk7CisgICAgcmV0dXJuIHg7Cit9LCB0
cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBmYWxzZTsKKyAgICBy
ZXR1cm4gKGZ1bmN0aW9uKCkgeworICAgICAgICByZXR1cm4geCA/Pz0gNDI7CisgICAgfSkoKTsK
K30sIGZhbHNlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB1bmRlZmlu
ZWQ7CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggPz89IDQyOwor
ICAgIH0pKCk7Cit9LCA0Mik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0gdHJ1ZTsKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHggPz89IDQyOworICAgIH0p
KCk7CisgICAgcmV0dXJuIHg7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgY29uc3QgeCA9IGZhbHNlOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJl
dHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOworfSwgZmFsc2UpOworCitzaG91bGRUaHJvdyhmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24o
KSB7CisgICAgICAgIHJldHVybiB4ID8/PSA0MjsKKyAgICB9KSgpOworfSwgVHlwZUVycm9yKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBj
b25zdCB4ID0gdHJ1ZTsKKyAgICB4ID8/PSArK2NvdW50OworCisgICAgcmV0dXJuIGNvdW50Owor
fSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAg
ICBjb25zdCB4ID0gZmFsc2U7CisgICAgeCA/Pz0gKytjb3VudDsKKworICAgIHJldHVybiBjb3Vu
dDsKK30sIDApOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOwor
CisgICAgY29uc3QgeCA9IHVuZGVmaW5lZDsKKyAgICB0cnkgeworICAgICAgICB4ID8/PSArK2Nv
dW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKworCisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4
ID0gdHJ1ZTsKKyAgICBmdW5jdGlvbiBjYXB0dXJlKCkgeyByZXR1cm4geDsgfQorCisgICAgeCA/
Pz0gKytjb3VudDsKKworICAgIHJldHVybiBjb3VudDsKK30sIDApOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IGZhbHNlOworICAg
IGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB4ID8/PSArK2NvdW50Owor
CisgICAgcmV0dXJuIGNvdW50OworfSwgMCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZpbmVkOworICAgIGZ1bmN0aW9u
IGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB0cnkgeworICAgICAgICB4ID8/PSArK2Nv
dW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKworCisK
K3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIHggPz89IDQyOworICAgIGxldCB4ID0gdHJ1
ZTsKKyAgICByZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsKKworCisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIHJldHVybiB1bmRlZmluZWQgPz89IDQyOworfSwgNDIpOworCitzaG91
bGRUaHJvd1N5bnRheEVycm9yKGBudWxsID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVy
cm9yKGB0cnVlID8/PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBmYWxzZSA/Pz0g
NDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMCA/Pz0gNDJgKTsKKworc2hvdWxkVGhy
b3dTeW50YXhFcnJvcihgMSA/Pz0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgIiIg
Pz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCJ0ZXN0IiA/Pz0gNDJgKTsKKwor
c2hvdWxkVGhyb3dTeW50YXhFcnJvcihge30gPz89IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4
RXJyb3IoYFtdID8/PSA0MmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1h
c3NpZ25tZW50LW9wZXJhdG9yLW9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvbG9naWNhbC1hc3NpZ25t
ZW50LW9wZXJhdG9yLW9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlODk0YzRmYmIxOWY5MmQwMjYyMTc2Zjdm
NmFkYTJjMGQzNTlhZTAKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9sb2dpY2Fs
LWFzc2lnbm1lbnQtb3BlcmF0b3Itb3IuanMKQEAgLTAsMCArMSwxNjg1IEBACisvL0AgcnVuTG9n
aWNhbEFzc2lnbm1lbnRPcGVyYXRvcnNFbmFibGVkCisKK2Z1bmN0aW9uIHNob3VsZEJlKGZ1bmMs
IGV4cGVjdGVkKSB7CisgICAgbGV0IGFjdHVhbCA9IGZ1bmMoKTsKKyAgICBpZiAodHlwZW9mIGV4
cGVjdGVkID09PSAiZnVuY3Rpb24iID8gIShhY3R1YWwgaW5zdGFuY2VvZiBleHBlY3RlZCkgOiBh
Y3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7
SlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWQpfSBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkoYWN0dWFs
KX1gKTsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CisgICAg
bGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9m
IGVycm9yVHlwZSkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgJHtlcnJvclR5
cGUubmFtZX0gYnV0IHNhdyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQorCitmdW5jdGlv
biBzaG91bGRUaHJvd1N5bnRheEVycm9yKHNjcmlwdCkgeworICAgIGxldCBlcnJvcjsKKyAgICB0
cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBl
cnJvciA9IGU7CisgICAgfQorCisgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJv
cikpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgU3ludGF4RXJyb3IgYnV0IHNh
dyAke2Vycm9yICYmIGVycm9yLm5hbWV9IWApOworfQorCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4OworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHVuZGVmaW5lZDsKKyAg
ICByZXR1cm4geCB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gdW5kZWZpbmVkOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgcmV0dXJu
IHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IG51bGw7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9
LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAg
IHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9u
KCkgeworICAgIGxldCB4ID0gZmFsc2U7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IGZhbHNlOworICAgIHggfHw9IDQy
OworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IDA7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IDA7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gMTsKKyAgICByZXR1
cm4geCB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSAxOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gIiI7CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICIiOworICAgIHggfHw9IDQy
OworICAgIHJldHVybiB4OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9ICJ0ZXN0IjsKKyAgICB4IHx8PSA0MjsKKyAg
ICByZXR1cm4geDsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge307CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4g
eDsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW107
CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IFtdOworICAgIHggfHw9IDQyOworICAgIHJldHVybiB4OworfSwgQXJy
YXkpOworCisKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHVuZGVm
aW5lZDsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJv
dyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gbnVsbDsKKyAgICByZXR1cm4geCB8fD0gNDI7
Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
dHJ1ZTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHRydWU7CisgICAgeCB8fD0gNDI7CisgICAgcmV0dXJuIHg7
Cit9LCB0cnVlKTsKKworc2hvdWxkVGhyb3coZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IGZh
bHNlOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIFR5cGVFcnJvcik7CisKK3Nob3VsZFRocm93
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAwOworICAgIHJldHVybiB4IHx8PSA0MjsKK30s
IFR5cGVFcnJvcik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSAxOwor
ICAgIHJldHVybiB4IHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0gMTsKKyAgICB4IHx8PSA0MjsKKyAgICByZXR1cm4geDsKK30sIDEpOworCitz
aG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gIiI7CisgICAgcmV0dXJuIHgg
fHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29u
c3QgeCA9ICJ0ZXN0IjsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gInRlc3QiOworICAgIHJldHVybiB4IHx8
PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSB7fTsKKyAgICByZXR1cm4geCB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgcmV0dXJuIHggfHw9IDQyOworfSwgT2Jq
ZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtdOworICAgIHJl
dHVybiB4IHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IFtdOworICAgIHJldHVybiB4IHx8PSA0MjsKK30sIEFycmF5KTsKKworCisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgcmV0dXJuIHguYSB8fD0g
NDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge307Cisg
ICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgfHw9
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB1
bmRlZmluZWR9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgcmV0dXJu
IHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4
ID0ge2E6IG51bGx9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogdHJ1ZX07CisgICAgcmV0
dXJuIHguYSB8fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogdHJ1ZX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
dHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IGZhbHNlfTsK
KyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHgu
YTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMH07
CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IDB9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogMX07Cisg
ICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSB7YTogMX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwg
MSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6ICIifTsKKyAgICBy
ZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IHggPSB7YTogIiJ9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAg
ICByZXR1cm4geC5hIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YToge319OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YToge319OworICAgIHguYSB8fD0gNDI7CisgICAg
cmV0dXJuIHguYTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxl
dCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIEFycmF5KTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119OworICAgIHguYSB8fD0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIEFycmF5KTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7fTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHt9OworICAgIHguYSB8fD0gNDI7
CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHthOiB1bmRlZmluZWR9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07
CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IG51bGx9OworICAgIHJldHVybiB4LmEgfHw9
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
IG51bGx9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4g
eC5hIHx8PSA0MjsKK30sIHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25z
dCB4ID0ge2E6IHRydWV9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJuIHguYTsKK30sIHRy
dWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNlfTsK
KyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgY29uc3QgeCA9IHthOiBmYWxzZX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4g
eC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
IDB9OworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDB9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IHth
OiAxfTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAgIHguYSB8fD0gNDI7CisgICAgcmV0dXJu
IHguYTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
ICIifTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IHthOiAiIn07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1
cm4geC5hOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0g
e2E6ICJ0ZXN0In07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCAidGVzdCIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICJ0ZXN0In07CisgICAgeC5hIHx8
PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgInRlc3QiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgY29uc3QgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBP
YmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsK
KyAgICB4LmEgfHw9IDQyOworICAgIHJldHVybiB4LmE7Cit9LCBPYmplY3QpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICByZXR1cm4geC5hIHx8
PSA0MjsKK30sIEFycmF5KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9
IHthOiBbXX07CisgICAgeC5hIHx8PSA0MjsKKyAgICByZXR1cm4geC5hOworfSwgQXJyYXkpOwor
CisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICByZXR1cm4g
eFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSB7fTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07Cisg
ICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGxldCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiBudWxsfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigp
IHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30s
IHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB0cnVlfTsK
KyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCB0cnVlKTsKKworc2hv
dWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4
WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiBmYWxzZX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAwfTsKKyAg
ICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7
CisgICAgbGV0IHggPSB7YTogMH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAx
fTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiAxfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVy
biB4WyJhIl07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
YTogIiJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiAiIn07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAg
ICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBs
ZXQgeCA9IHthOiAidGVzdCJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgInRlc3Qi
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogInRlc3QifTsKKyAg
ICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHthOiB7fX07CisgICAgcmV0dXJuIHhbImEi
XSB8fD0gNDI7Cit9LCBPYmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQg
eCA9IHthOiB7fX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
T2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7YTogW119Owor
ICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IHthOiBbXX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1
cm4geFsiYSJdOworfSwgQXJyYXkpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHt9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge307CisgICAgeFsiYSJdIHx8PSA0MjsK
KyAgICByZXR1cm4geFsiYSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBjb25zdCB4ID0ge2E6IHVuZGVmaW5lZH07CisgICAgcmV0dXJuIHhbImEiXSB8fD0gNDI7Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdW5kZWZp
bmVkfTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisK
K3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgcmV0
dXJuIHhbImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YTogbnVsbH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6
IHRydWV9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogdHJ1ZX07CisgICAgeFsiYSJdIHx8PSA0
MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSB7YTogZmFsc2V9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOwor
fSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IGZhbHNl
fTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3No
b3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogMH07CisgICAgcmV0dXJuIHhb
ImEiXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0
IHggPSB7YTogMH07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsiYSJdOworfSwg
NDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IDF9OworICAg
IHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSB7YTogMX07CisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICByZXR1cm4geFsi
YSJdOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTog
IiJ9OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6ICIifTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAg
IHJldHVybiB4WyJhIl07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNv
bnN0IHggPSB7YTogInRlc3QifTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sICJ0ZXN0
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7YTogInRlc3QifTsK
KyAgICB4WyJhIl0gfHw9IDQyOworICAgIHJldHVybiB4WyJhIl07Cit9LCAidGVzdCIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IHt9fTsKKyAgICByZXR1cm4g
eFsiYSJdIHx8PSA0MjsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSB7YToge319OworICAgIHhbImEiXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbImEi
XTsKK30sIE9iamVjdCk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB7
YTogW119OworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgQXJyYXkpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0ge2E6IFtdfTsKKyAgICB4WyJhIl0gfHw9IDQy
OworICAgIHJldHVybiB4WyJhIl07Cit9LCBBcnJheSk7CisKKworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgeCA9IFtdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDQyKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbXTsKKyAgICB4WzBdIHx8PSA0
MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IHggPSBbdW5kZWZpbmVkXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gW3VuZGVmaW5lZF07CisgICAg
eFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW251bGxdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30s
IDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbbnVsbF07CisgICAg
eFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW3RydWVdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30s
IHRydWUpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt0cnVlXTsKKyAg
ICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQy
OworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtmYWxzZV07
CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gWzBdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsK
K30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbMF07CisgICAg
eFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gWzFdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIDEp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsxXTsKKyAgICB4WzBdIHx8
PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDEpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IFsiIl07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitz
aG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFsiIl07CisgICAgeFswXSB8fD0gNDI7
CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gWyJ0ZXN0Il07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgInRlc3QiKTsK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBbInRlc3QiXTsKKyAgICB4WzBd
IHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0gW3t9XTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCBP
YmplY3QpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFt7fV07CisgICAg
eFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBPYmplY3QpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOwor
fSwgQXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IFtbXV07Cisg
ICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCBBcnJheSk7CisKKworCitzaG91
bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107CisgICAgcmV0dXJuIHhbMF0gfHw9
IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW107
CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdW5kZWZpbmVkXTsKKyAgICByZXR1cm4geFsw
XSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbdW5kZWZpbmVkXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIDQy
KTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtudWxsXTsKKyAgICBy
ZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGNvbnN0IHggPSBbbnVsbF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhbMF07Cit9
LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbdHJ1ZV07Cisg
ICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkg
eworICAgIGNvbnN0IHggPSBbdHJ1ZV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJuIHhb
MF07Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFtm
YWxzZV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBjb25zdCB4ID0gW2ZhbHNlXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICBy
ZXR1cm4geFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3Qg
eCA9IFswXTsKKyAgICByZXR1cm4geFswXSB8fD0gNDI7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbMF07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0
dXJuIHhbMF07Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHgg
PSBbMV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGNvbnN0IHggPSBbMV07CisgICAgeFswXSB8fD0gNDI7CisgICAgcmV0dXJu
IHhbMF07Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsi
Il07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBjb25zdCB4ID0gWyIiXTsKKyAgICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4g
eFswXTsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgY29uc3QgeCA9IFsi
dGVzdCJdOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbInRlc3QiXTsKKyAgICB4WzBdIHx8PSA0MjsK
KyAgICByZXR1cm4geFswXTsKK30sICJ0ZXN0Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGNvbnN0IHggPSBbe31dOworICAgIHJldHVybiB4WzBdIHx8PSA0MjsKK30sIE9iamVjdCk7
CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSBbe31dOworICAgIHhbMF0g
fHw9IDQyOworICAgIHJldHVybiB4WzBdOworfSwgT2JqZWN0KTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgY29uc3QgeCA9IFtbXV07CisgICAgcmV0dXJuIHhbMF0gfHw9IDQyOworfSwg
QXJyYXkpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBjb25zdCB4ID0gW1tdXTsKKyAg
ICB4WzBdIHx8PSA0MjsKKyAgICByZXR1cm4geFswXTsKK30sIEFycmF5KTsKKworCisKK3Nob3Vs
ZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAg
bGV0IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICsgejsKK30sIHRydWUpOworCitzaG91bGRC
ZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxl
dCB6ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA9IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUo
ZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQg
eiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiYgejsKK30sIHRydWUpOworCitzaG91bGRCZShm
dW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6
ID0gMjsKKyAgICByZXR1cm4geCB8fD0geSA/PyB6OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHog
PSAyOworICAgIHJldHVybiB4IHx8PSB5IHx8IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9
IDI7CisgICAgcmV0dXJuIHggfHw9IHkgJiY9IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9
IDI7CisgICAgcmV0dXJuIHggfHw9IHkgfHw9IHo7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVu
Y3Rpb24oKSB7CisgICAgbGV0IHggPSB0cnVlOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9
IDI7CisgICAgcmV0dXJuIHggfHw9IHkgPz89IHo7Cit9LCB0cnVlKTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0
IHogPSAyOworICAgIHJldHVybiB4IHx8PSB5ICsgejsKK30sIDMpOworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0g
MjsKKyAgICByZXR1cm4geCB8fD0geSA9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24o
KSB7CisgICAgbGV0IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7Cisg
ICAgcmV0dXJuIHggfHw9IHkgJiYgejsKK30sIDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsK
KyAgICBsZXQgeCA9IG51bGw7CisgICAgbGV0IHkgPSAxOworICAgIGxldCB6ID0gMjsKKyAgICBy
ZXR1cm4geCB8fD0geSA/PyB6OworfSwgMSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAg
IGxldCB4ID0gbnVsbDsKKyAgICBsZXQgeSA9IDE7CisgICAgbGV0IHogPSAyOworICAgIHJldHVy
biB4IHx8PSB5IHx8IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0
IHggPSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHgg
fHw9IHkgJiY9IHo7Cit9LCAyKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHgg
PSBudWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9
IHkgfHw9IHo7Cit9LCAxKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSBu
dWxsOworICAgIGxldCB5ID0gMTsKKyAgICBsZXQgeiA9IDI7CisgICAgcmV0dXJuIHggfHw9IHkg
Pz89IHo7Cit9LCAxKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cg
PSBbXTsKKworICAgIGxldCBhID0gdHJ1ZTsKKyAgICBsZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEo
KSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICByZXR1cm4gYTsK
KyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNl
dCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKworICAgIHguYSB8
fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAi
ICsgYTsKK30sICJnZXQgZ2V0IHRydWUiKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEgPSBmYWxzZTsKKyAgICBsZXQgeCA9IHsKKyAgICAg
ICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7CisgICAgICAgICAgICBy
ZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAgIH0sCisgICAgfTsKKwor
ICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJldHVybiBsb2cuam9pbigi
ICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCitzaG91bGRCZShmdW5jdGlv
bigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBsZXQgYSA9IHVuZGVmaW5lZDsKKyAgICBs
ZXQgeCA9IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0Iik7
CisgICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgfSwKKyAgICAgICAgc2V0IGEodikgewor
ICAgICAgICAgICAgbG9nLnB1c2goInNldCIpOworICAgICAgICAgICAgYSA9IHY7CisgICAgICAg
IH0sCisgICAgfTsKKworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJl
dHVybiBsb2cuam9pbigiICIpICsgIiAiICsgYTsKK30sICJnZXQgc2V0IGdldCA0MiIpOworCisK
Kworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGxvZyA9IFtdOworCisgICAgbGV0IGEg
PSB0cnVlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxv
Zy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBh
ID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJh
Il0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdl
dCBnZXQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107
CisKKyAgICBsZXQgYSA9IGZhbHNlOworICAgIGxldCB4ID0geworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBhOworICAg
ICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0Iik7
CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgeFsiYSJdIHx8
PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAi
ICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgewor
ICAgIGxldCBsb2cgPSBbXTsKKworICAgIGxldCBhID0gdW5kZWZpbmVkOworICAgIGxldCB4ID0g
eworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQiKTsKKyAgICAg
ICAgICAgIHJldHVybiBhOworICAgICAgICB9LAorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAg
ICAgICBsb2cucHVzaCgic2V0Iik7CisgICAgICAgICAgICBhID0gdjsKKyAgICAgICAgfSwKKyAg
ICB9OworCisgICAgeFsiYSJdIHx8PSA0MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0
dXJuIGxvZy5qb2luKCIgIikgKyAiICIgKyBhOworfSwgImdldCBzZXQgZ2V0IDQyIik7CisKKwor
CitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQ
YXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFy
ZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBz
ZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAg
ICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRl
bmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdl
dC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmE7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAg
ICAgICAgc3VwZXIuYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3
IENoaWxkOworICAgIHguX2EgPSB0cnVlOworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0
MjsKKworICAgIHJldHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hp
bGQgZ2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCB0cnVlIik7CisKK3Nob3VsZEJlKGZ1
bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNsYXNzIFBhcmVudCB7CisgICAg
ICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1wYXJlbnQiKTsKKyAgICAg
ICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAg
ICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAgICAgICAgICB0aGlzLl9hIHx8
PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxkIGV4dGVuZHMgUGFyZW50IHsK
KyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LWNoaWxkIik7Cisg
ICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7
CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7CisgICAgICAgICAgICBzdXBlci5h
IHx8PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHggPSBuZXcgQ2hpbGQ7CisgICAg
eC5fYSA9IGZhbHNlOworICAgIHguYSB8fD0gNDI7CisgICAgeC5hIHx8PSA0MjsKKworICAgIHJl
dHVybiBsb2cuam9pbigiICIpICsgIiAiICsgeC5fYTsKK30sICJnZXQtY2hpbGQgZ2V0LXBhcmVu
dCBzZXQtY2hpbGQgZ2V0LXBhcmVudCBzZXQtcGFyZW50IGdldC1jaGlsZCBnZXQtcGFyZW50IDQy
Iik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCBsb2cgPSBbXTsKKworICAgIGNs
YXNzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdl
dC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hOworICAgICAgICB9CisgICAg
ICAgIHNldCBhKHYpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJzZXQtcGFyZW50Iik7CisgICAg
ICAgICAgICB0aGlzLl9hIHx8PSB2OworICAgICAgICB9CisgICAgfQorICAgIGNsYXNzIENoaWxk
IGV4dGVuZHMgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7CisgICAgICAgICAgICBsb2cucHVz
aCgiZ2V0LWNoaWxkIik7CisgICAgICAgICAgICByZXR1cm4gc3VwZXIuYTsKKyAgICAgICAgfQor
ICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LWNoaWxkIik7Cisg
ICAgICAgICAgICBzdXBlci5hIHx8PSB2OworICAgICAgICB9CisgICAgfQorCisgICAgbGV0IHgg
PSBuZXcgQ2hpbGQ7CisgICAgeC5fYSA9IHVuZGVmaW5lZDsKKyAgICB4LmEgfHw9IDQyOworICAg
IHguYSB8fD0gNDI7CisKKyAgICByZXR1cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9
LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBn
ZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgbGV0IGxvZyA9IFtdOworCisgICAgY2xhc3MgUGFyZW50IHsKKyAgICAgICAgZ2V0IGEoKSB7
CisgICAgICAgICAgICBsb2cucHVzaCgiZ2V0LXBhcmVudCIpOworICAgICAgICAgICAgcmV0dXJu
IHRoaXMuX2E7CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9n
LnB1c2goInNldC1wYXJlbnQiKTsKKyAgICAgICAgICAgIHRoaXMuX2EgfHw9IHY7CisgICAgICAg
IH0KKyAgICB9CisgICAgY2xhc3MgQ2hpbGQgZXh0ZW5kcyBQYXJlbnQgeworICAgICAgICBnZXQg
YSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHJl
dHVybiBzdXBlclsiYSJdOworICAgICAgICB9CisgICAgICAgIHNldCBhKHYpIHsKKyAgICAgICAg
ICAgIGxvZy5wdXNoKCJzZXQtY2hpbGQiKTsKKyAgICAgICAgICAgIHN1cGVyWyJhIl0gfHw9IHY7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsZXQgeCA9IG5ldyBDaGlsZDsKKyAgICB4Ll9hID0g
dHJ1ZTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEiXSB8fD0gNDI7CisKKyAgICByZXR1
cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQg
Z2V0LWNoaWxkIGdldC1wYXJlbnQgdHJ1ZSIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAg
ICBsZXQgbG9nID0gW107CisKKyAgICBjbGFzcyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsK
KyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQtcGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fYTsKKyAgICAgICAgfQorICAgICAgICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cu
cHVzaCgic2V0LXBhcmVudCIpOworICAgICAgICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAg
fQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBleHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBh
KCkgeworICAgICAgICAgICAgbG9nLnB1c2goImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0
dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0KKyAgICAgICAgc2V0IGEodikgeworICAgICAgICAg
ICAgbG9nLnB1c2goInNldC1jaGlsZCIpOworICAgICAgICAgICAgc3VwZXJbImEiXSB8fD0gdjsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGxldCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSBm
YWxzZTsKKyAgICB4WyJhIl0gfHw9IDQyOworICAgIHhbImEiXSB8fD0gNDI7CisKKyAgICByZXR1
cm4gbG9nLmpvaW4oIiAiKSArICIgIiArIHguX2E7Cit9LCAiZ2V0LWNoaWxkIGdldC1wYXJlbnQg
c2V0LWNoaWxkIGdldC1wYXJlbnQgc2V0LXBhcmVudCBnZXQtY2hpbGQgZ2V0LXBhcmVudCA0MiIp
OworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgbG9nID0gW107CisKKyAgICBjbGFz
cyBQYXJlbnQgeworICAgICAgICBnZXQgYSgpIHsKKyAgICAgICAgICAgIGxvZy5wdXNoKCJnZXQt
cGFyZW50Iik7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fYTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQgYSh2KSB7CisgICAgICAgICAgICBsb2cucHVzaCgic2V0LXBhcmVudCIpOworICAgICAg
ICAgICAgdGhpcy5fYSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKyAgICBjbGFzcyBDaGlsZCBl
eHRlbmRzIFBhcmVudCB7CisgICAgICAgIGdldCBhKCkgeworICAgICAgICAgICAgbG9nLnB1c2go
ImdldC1jaGlsZCIpOworICAgICAgICAgICAgcmV0dXJuIHN1cGVyWyJhIl07CisgICAgICAgIH0K
KyAgICAgICAgc2V0IGEodikgeworICAgICAgICAgICAgbG9nLnB1c2goInNldC1jaGlsZCIpOwor
ICAgICAgICAgICAgc3VwZXJbImEiXSB8fD0gdjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGxl
dCB4ID0gbmV3IENoaWxkOworICAgIHguX2EgPSB1bmRlZmluZWQ7CisgICAgeFsiYSJdIHx8PSA0
MjsKKyAgICB4WyJhIl0gfHw9IDQyOworCisgICAgcmV0dXJuIGxvZy5qb2luKCIgIikgKyAiICIg
KyB4Ll9hOworfSwgImdldC1jaGlsZCBnZXQtcGFyZW50IHNldC1jaGlsZCBnZXQtcGFyZW50IHNl
dC1wYXJlbnQgZ2V0LWNoaWxkIGdldC1wYXJlbnQgNDIiKTsKKworCisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJh
IiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAg
IH0pOworICAgIHJldHVybiB4LmEgfHw9IDQyOworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0
aW9uKCkgeworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHgsICJh
IiwgeworICAgICAgICB2YWx1ZTogZmFsc2UsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAg
ICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworc2hvdWxkQmUoZnVuY3Rp
b24oKSB7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEi
LCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxlOiBmYWxzZSwK
KyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30sIDQyKTsKKworCisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9OworICAgIE9i
amVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IHRydWUsCisgICAg
ICAgIHdyaXRhYmxlOiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geC5hIHx8PSA0MjsKK30s
IHRydWUpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAgICAidXNlIHN0cmljdCI7Cisg
ICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAg
ICAgIHZhbHVlOiBmYWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAg
IHJldHVybiB4LmEgfHw9IDQyOworfSwgVHlwZUVycm9yKTsKKworc2hvdWxkVGhyb3coZnVuY3Rp
b24oKSB7CisgICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLAorICAgICAg
ICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHguYSB8fD0gNDI7Cit9LCBU
eXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7fTsK
KyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB0cnVl
LAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEiXSB8
fD0gNDI7Cit9LCB0cnVlKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IHggPSB7
fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiBm
YWxzZSwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJh
Il0gfHw9IDQyOworfSwgNDIpOworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9
IHt9OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6
IHVuZGVmaW5lZCwKKyAgICAgICAgd3JpdGFibGU6IGZhbHNlLAorICAgIH0pOworICAgIHJldHVy
biB4WyJhIl0gfHw9IDQyOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7Cisg
ICAgInVzZSBzdHJpY3QiOworICAgIGxldCB4ID0ge307CisgICAgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHgsICJhIiwgeworICAgICAgICB2YWx1ZTogdHJ1ZSwKKyAgICAgICAgd3JpdGFibGU6IGZh
bHNlLAorICAgIH0pOworICAgIHJldHVybiB4WyJhIl0gfHw9IDQyOworfSwgdHJ1ZSk7CisKK3No
b3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgICJ1c2Ugc3RyaWN0IjsKKyAgICBsZXQgeCA9IHt9
OworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh4LCAiYSIsIHsKKyAgICAgICAgdmFsdWU6IGZh
bHNlLAorICAgICAgICB3cml0YWJsZTogZmFsc2UsCisgICAgfSk7CisgICAgcmV0dXJuIHhbImEi
XSB8fD0gNDI7Cit9LCBUeXBlRXJyb3IpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbigpIHsKKyAg
ICAidXNlIHN0cmljdCI7CisgICAgbGV0IHggPSB7fTsKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoeCwgImEiLCB7CisgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICAgIHdyaXRhYmxl
OiBmYWxzZSwKKyAgICB9KTsKKyAgICByZXR1cm4geFsiYSJdIHx8PSA0MjsKK30sIFR5cGVFcnJv
cik7CisKKworCitzaG91bGRCZShmdW5jdGlvbigpIHsKKyAgICBsZXQgeCA9IHRydWU7CisgICAg
KGZ1bmN0aW9uKCkgeworICAgICAgICB4IHx8PSA0MjsKKyAgICB9KSgpOworICAgIHJldHVybiB4
OworfSwgdHJ1ZSk7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gZmFsc2U7
CisgICAgcmV0dXJuIChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggfHw9IDQyOworICAg
IH0pKCk7Cit9LCA0Mik7CisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIGxldCB4ID0gdW5k
ZWZpbmVkOworICAgIHJldHVybiAoZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB4IHx8PSA0
MjsKKyAgICB9KSgpOworfSwgNDIpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
Y29uc3QgeCA9IHRydWU7CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB4IHx8PSA0MjsKKyAg
ICB9KSgpOworICAgIHJldHVybiB4OworfSwgdHJ1ZSk7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9u
KCkgeworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICByZXR1cm4gKGZ1bmN0aW9uKCkgeworICAg
ICAgICByZXR1cm4geCB8fD0gNDI7CisgICAgfSkoKTsKK30sIFR5cGVFcnJvcik7CisKK3Nob3Vs
ZFRocm93KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHggPSB1bmRlZmluZWQ7CisgICAgcmV0dXJu
IChmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHggfHw9IDQyOworICAgIH0pKCk7Cit9LCBU
eXBlRXJyb3IpOworCisKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0g
MDsKKworICAgIGNvbnN0IHggPSB0cnVlOworICAgIHggfHw9ICsrY291bnQ7CisKKyAgICByZXR1
cm4gY291bnQ7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50
ID0gMDsKKworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICB0cnkgeworICAgICAgICB4IHx8PSAr
K2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291bnQ7Cit9LCAxKTsKKwor
c2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAgbGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHgg
PSB1bmRlZmluZWQ7CisgICAgdHJ5IHsKKyAgICAgICAgeCB8fD0gKytjb3VudDsKKyAgICB9IGNh
dGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKKworCitzaG91bGRCZShmdW5j
dGlvbigpIHsKKyAgICBsZXQgY291bnQgPSAwOworCisgICAgY29uc3QgeCA9IHRydWU7CisgICAg
ZnVuY3Rpb24gY2FwdHVyZSgpIHsgcmV0dXJuIHg7IH0KKworICAgIHggfHw9ICsrY291bnQ7CisK
KyAgICByZXR1cm4gY291bnQ7Cit9LCAwKTsKKworc2hvdWxkQmUoZnVuY3Rpb24oKSB7CisgICAg
bGV0IGNvdW50ID0gMDsKKworICAgIGNvbnN0IHggPSBmYWxzZTsKKyAgICBmdW5jdGlvbiBjYXB0
dXJlKCkgeyByZXR1cm4geDsgfQorCisgICAgdHJ5IHsKKyAgICAgICAgeCB8fD0gKytjb3VudDsK
KyAgICB9IGNhdGNoIHsgfQorCisgICAgcmV0dXJuIGNvdW50OworfSwgMSk7CisKK3Nob3VsZEJl
KGZ1bmN0aW9uKCkgeworICAgIGxldCBjb3VudCA9IDA7CisKKyAgICBjb25zdCB4ID0gdW5kZWZp
bmVkOworICAgIGZ1bmN0aW9uIGNhcHR1cmUoKSB7IHJldHVybiB4OyB9CisKKyAgICB0cnkgewor
ICAgICAgICB4IHx8PSArK2NvdW50OworICAgIH0gY2F0Y2ggeyB9CisKKyAgICByZXR1cm4gY291
bnQ7Cit9LCAxKTsKKworCisKK3Nob3VsZFRocm93KGZ1bmN0aW9uKCkgeworICAgIHggfHw9IDQy
OworICAgIGxldCB4ID0gdHJ1ZTsKKyAgICByZXR1cm4geDsKK30sIFJlZmVyZW5jZUVycm9yKTsK
KworCisKK3Nob3VsZEJlKGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB1bmRlZmluZWQgfHw9IDQy
OworfSwgNDIpOworCitzaG91bGRUaHJvd1N5bnRheEVycm9yKGBudWxsIHx8PSA0MmApOworCitz
aG91bGRUaHJvd1N5bnRheEVycm9yKGB0cnVlIHx8PSA0MmApOworCitzaG91bGRUaHJvd1N5bnRh
eEVycm9yKGBmYWxzZSB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMCB8fD0g
NDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihgMSB8fD0gNDJgKTsKKworc2hvdWxkVGhy
b3dTeW50YXhFcnJvcihgIiIgfHw9IDQyYCk7CisKK3Nob3VsZFRocm93U3ludGF4RXJyb3IoYCJ0
ZXN0IiB8fD0gNDJgKTsKKworc2hvdWxkVGhyb3dTeW50YXhFcnJvcihge30gfHw9IDQyYCk7CisK
K3Nob3VsZFRocm93U3ludGF4RXJyb3IoYFtdIHx8PSA0MmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4
IDBiNmI1NmU4YzFkMmNlMTBhNmU2M2NiNDcwMmY4MDk0MGM3ZTBhNTguLjBjNjdhNGRlNjMzZTJk
NTVkOWM5MzU0N2Q2OGMwNGQ2NGIxYzAzZjcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9j
b25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTQsNiArNCw3
IEBAIGZsYWdzOgogICBCaWdJbnQ6IHVzZUJpZ0ludAogICBXZWFrUmVmOiB1c2VXZWFrUmVmcwog
ICBjbGFzcy1maWVsZHMtcHVibGljOiB1c2VQdWJsaWNDbGFzc0ZpZWxkcworICBsb2dpY2FsLWFz
c2lnbm1lbnQtb3BlcmF0b3JzOiB1c2VMb2dpY2FsQXNzaWdubWVudE9wZXJhdG9ycwogc2tpcDoK
ICAgZmVhdHVyZXM6CiAgICAgLSBTaGFyZWRBcnJheUJ1ZmZlcgpAQCAtMjAsOCArMjEsNiBAQCBz
a2lwOgogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQ3
NQogICAgIC0gcmVnZXhwLW1hdGNoLWluZGljZXMKICAgICAtIHRvcC1sZXZlbC1hd2FpdAotICAg
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTcxNgotICAgIC0g
bG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycwogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwMjU2NgogICAgIC0gUHJvbWlzZS5hbnkKICAgICAtIEFnZ3Jl
Z2F0ZUVycm9yCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwg
Yi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggNGFlMmE3NzAyZDdlMTA1
NWFiOTVmZmYwMGU0YmY3ZTY5YmEwMDMxNS4uNjMwZmFjOWViMGYxZmQxZjk5NTdkN2U3OTZkOTA3
MDFiNjI0YjVhZCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1s
CisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMjcxOCw2ICsyNzE4
LDEyIEBAIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvaW1wb3J0Lm1ldGEvc3ludGF4L2ludmFs
aWQtYXNzaWdubWVudC10YXJnZXQtZm9yLW9mLWxvCiB0ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2luc3RhbmNlb2YvcHJvdG90eXBlLWdldHRlci13aXRoLXByaW1pdGl2ZS5qczoKICAgZGVmYXVs
dDogIlRlc3QyNjJFcnJvcjogZ2V0dGVyIGZvciAncHJvdG90eXBlJyBjYWxsZWQiCiAgIHN0cmlj
dCBtb2RlOiAiVGVzdDI2MkVycm9yOiBnZXR0ZXIgZm9yICdwcm90b3R5cGUnIGNhbGxlZCIKK3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbG9naWNhbC1hc3NpZ25tZW50L2xnY2wtYW5kLWFzc2ln
bm1lbnQtb3BlcmF0b3Itbm9uLXNpbXBsZS1saHMuanM6CisgIGRlZmF1bHQ6ICJUZXN0MjYyOiBU
aGlzIHN0YXRlbWVudCBzaG91bGQgbm90IGJlIGV2YWx1YXRlZC4iCit0ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2xvZ2ljYWwtYXNzaWdubWVudC9sZ2NsLW51bGxpc2gtYXNzaWdubWVudC1vcGVy
YXRvci1ub24tc2ltcGxlLWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVt
ZW50IHNob3VsZCBub3QgYmUgZXZhbHVhdGVkLiIKK3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
bG9naWNhbC1hc3NpZ25tZW50L2xnY2wtb3ItYXNzaWdubWVudC1vcGVyYXRvci1ub24tc2ltcGxl
LWxocy5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjI6IFRoaXMgc3RhdGVtZW50IHNob3VsZCBub3Qg
YmUgZXZhbHVhdGVkLiIKIHRlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvbmV3L2N0b3JFeHByLWZu
LXJlZi1iZWZvcmUtYXJncy1ldmFsLWZuLXdyYXB1cC5qczoKICAgZGVmYXVsdDogIlR5cGVFcnJv
cjogMSBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IHgoeCA9IDEpJykiCiAg
IHN0cmljdCBtb2RlOiAiVHlwZUVycm9yOiAxIGlzIG5vdCBhIGNvbnN0cnVjdG9yIChldmFsdWF0
aW5nICduZXcgeCh4ID0gMSknKSIK
</data>

          </attachment>
      

    </bug>

</bugzilla>